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

void frag_new(size_t old_frags_var_max_size)

{
  undefined1 *puVar1;
  fragS *pfVar2;
  relax_stateT rVar3;
  _obstack_chunk *p_Var4;
  list_info_struct *plVar5;
  frchainS *pfVar6;
  char *pcVar7;
  fragS *pfVar8;
  char *pcVar9;
  uint uVar10;
  int iVar11;
  
  pfVar6 = frchain_now;
  pfVar8 = frag_now;
  pfVar2 = frchain_now->frch_last;
  if (pfVar2 != frag_now) {
                    /* WARNING: Subroutine does not return */
    as_abort("../../gas/frags.c",0xa5,"frag_new");
  }
  uVar10 = (uint)abs_section_offset;
  iVar11 = abs_section_offset._4_4_;
  if (now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {
    uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;
    iVar11 = (int)uVar10 >> 0x1f;
  }
  rVar3 = frag_now->fr_type;
  *(uint *)&frag_now->fr_fix = uVar10 - old_frags_var_max_size;
  *(uint *)((int)&pfVar8->fr_fix + 4) = iVar11 - (uint)(uVar10 < old_frags_var_max_size);
  if (rVar3 == rs_dummy) {
                    /* WARNING: Subroutine does not return */
    as_abort("../../gas/frags.c",0xaa,"frag_new");
  }
  pcVar9 = (pfVar6->frch_obstack).next_free;
  if (pcVar9 == (pfVar6->frch_obstack).object_base) {
    puVar1 = &(pfVar6->frch_obstack).field_0x28;
    *puVar1 = *puVar1 | 2;
  }
  uVar10 = (pfVar6->frch_obstack).alignment_mask;
  p_Var4 = (pfVar6->frch_obstack).chunk;
  pcVar7 = (char *)((uint)(pcVar9 + uVar10) & ~uVar10);
  pcVar9 = (pfVar6->frch_obstack).chunk_limit;
  (pfVar6->frch_obstack).next_free = pcVar7;
  if ((uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4)) {
    (pfVar6->frch_obstack).next_free = pcVar9;
    pcVar7 = pcVar9;
  }
  (pfVar6->frch_obstack).object_base = pcVar7;
  pfVar8 = frag_alloc(&pfVar6->frch_obstack);
  frag_now = pfVar8;
  pcVar9 = as_where(&pfVar8->fr_line);
  pfVar8->fr_file = pcVar9;
  plVar5 = listing_tail;
  pfVar8 = frag_now;
  pfVar2->fr_next = frag_now;
  pfVar6->frch_last = pfVar8;
  pfVar8->line = plVar5;
  if (pfVar8 != frchain_now->frch_last) {
                    /* WARNING: Subroutine does not return */
    as_abort("../../gas/frags.c",0xc6,"frag_new");
  }
  pfVar8->fr_next = (frag *)0x0;
  return;
}



void FUN_00024820(uint param_1)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  uint uVar7;
  int iVar8;
  int unaff_EBP;
  
  FUN_0001fe10();
  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);
  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);
  iVar5 = *piVar1;
  iVar3 = *(int *)(iVar2 + 4);
  if (iVar3 != iVar5) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);
  }
  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==
      *(int *)(
              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"
              + unaff_EBP + 0xf2) + 0x180) {
    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);
    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);
  }
  else {
    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);
    iVar8 = (int)uVar7 >> 0x1f;
  }
  iVar8 = iVar8 - (uint)(uVar7 < param_1);
  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;
  *(int *)(iVar5 + 0x14) = iVar8;
  if (*(int *)(iVar5 + 0x44) != 0) {
    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {
      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;
    }
    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);
    uVar7 = *(uint *)(iVar2 + 0x28);
    *(uint *)(iVar2 + 0x24) = uVar4;
    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {
      *(uint *)(iVar2 + 0x24) = uVar7;
      uVar4 = uVar7;
    }
    *(uint *)(iVar2 + 0x20) = uVar4;
    iVar5 = FUN_000246e0(iVar2 + 0x18);
    *piVar1 = iVar5;
    uVar6 = FUN_000264f0(iVar5 + 0x38);
    *(undefined4 *)(iVar5 + 0x34) = uVar6;
    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);
    iVar5 = *piVar1;
    *(int *)(iVar3 + 0x30) = iVar5;
    *(int *)(iVar2 + 4) = iVar5;
    *(undefined4 *)(iVar5 + 0x3c) = uVar6;
    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {
      *(undefined4 *)(iVar5 + 0x30) = 0;
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);
}


PUSH EBP
CALL 0x0001fe10
ADD EBP,0x5b7da
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
LEA EAX,[EBP + 0x9a08]
LEA EBX,[EBP + 0x98a0]
MOV ESI,dword ptr [EAX]
MOV EDI,dword ptr [EBX]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP],EBX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x4],EAX
CMP EAX,EDI
JNZ 0x00024994
MOV EAX,dword ptr [EBP + 0xffffffb0]
LEA EDX,[EBP + 0x973c]
ADD EAX,0x180
CMP dword ptr [EDX],EAX
JZ 0x00024950
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESI + 0x24]
ADD EAX,0x68
SUB ECX,EAX
MOV EAX,ECX
CDQ
MOV ECX,dword ptr [ESP + 0x30]
XOR EBX,EBX
SUB EAX,ECX
MOV ECX,dword ptr [EDI + 0x44]
SBB EDX,EBX
MOV dword ptr [EDI + 0x10],EAX
MOV dword ptr [EDI + 0x14],EDX
TEST ECX,ECX
JZ 0x00024979
LEA EDI,[ESI + 0x18]
MOV EAX,dword ptr [ESI + 0x24]
CMP EAX,dword ptr [ESI + 0x20]
JZ 0x00024940
MOV EDX,dword ptr [ESI + 0x30]
MOV ECX,dword ptr [ESI + 0x1c]
ADD EAX,EDX
NOT EDX
AND EAX,EDX
MOV EDX,dword ptr [ESI + 0x28]
MOV EBX,EAX
MOV dword ptr [ESI + 0x24],EAX
SUB EBX,ECX
MOV dword ptr [ESP + 0xc],EBX
MOV EBX,EDX
SUB EBX,ECX
CMP dword ptr [ESP + 0xc],EBX
JA 0x00024930
SUB ESP,0xc
MOV dword ptr [ESI + 0x20],EAX
MOV EBX,EBP
PUSH EDI
CALL 0x000246e0
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [EAX],EDI
LEA EAX,[EDI + 0x38]
MOV dword ptr [ESP],EAX
CALL 0x000264f0
LEA EDX,[EBP + 0x9938]
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [EDI + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EDX]
MOV EDI,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV dword ptr [ECX + 0x30],EAX
MOV dword ptr [ESI + 0x4],EAX
MOV dword ptr [EAX + 0x3c],EDX
MOV EDX,dword ptr [EDI]
CMP EAX,dword ptr [EDX + 0x4]
JNZ 0x00024960
MOV dword ptr [EAX + 0x30],0x0
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESI + 0x24],EDX
MOV EAX,EDX
JMP 0x000248ce
OR byte ptr [ESI + 0x40],0x2
JMP 0x000248aa
LEA EAX,[EBP + 0x9970]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
JMP 0x00024880
PUSH EAX
LEA EAX,[EBP + 0xfffdeb14]
PUSH EAX
LEA EAX,[EBP + 0xfffdeacb]
PUSH 0xc6
PUSH EAX
CALL 0x0002be80
LEA EAX,[EBP + 0xfffdeb14]
PUSH EDX
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfffdeacb]
PUSH 0xaa
PUSH EAX
CALL 0x0002be80
LEA EAX,[EBP + 0xfffdeb14]
PUSH EBX
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfffdeacb]
PUSH 0xa5
PUSH EAX
CALL 0x0002be80
(translation_unit "void FUN_00024820(uint param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}\n\n" (function_definition "void FUN_00024820(uint param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}" primitive_type (function_declarator "FUN_00024820(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (expression_statement "FUN_0001fe10();" (call_expression "FUN_0001fe10()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar1 = (int *)(&DAT_0006507a + unaff_EBP);" (assignment_expression "piVar1 = (int *)(&DAT_0006507a + unaff_EBP)" identifier = (cast_expression "(int *)(&DAT_0006507a + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006507a + unaff_EBP)" ( (binary_expression "&DAT_0006507a + unaff_EBP" (pointer_expression "&DAT_0006507a" & identifier) + identifier) )))) ;) (expression_statement "iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);" (assignment_expression "iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP)" identifier = (pointer_expression "*(int *)(&DAT_000651e2 + unaff_EBP)" * (cast_expression "(int *)(&DAT_000651e2 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000651e2 + unaff_EBP)" ( (binary_expression "&DAT_000651e2 + unaff_EBP" (pointer_expression "&DAT_000651e2" & identifier) + identifier) ))))) ;) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar3 = *(int *)(iVar2 + 4);" (assignment_expression "iVar3 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != iVar5) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }" if (parenthesized_expression "(iVar3 != iVar5)" ( (binary_expression "iVar3 != iVar5" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }" { comment (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1)" identifier (argument_list "(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1)" ( (binary_expression "unaff_EBP + 0x3a2a5" identifier + number_literal) , number_literal , (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" & identifier) + identifier) , identifier ))) ;) })) (if_statement "if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" if (parenthesized_expression "(*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180)" ( (binary_expression "*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180" (pointer_expression "*(int *)(&DAT_00064f16 + unaff_EBP)" * (cast_expression "(int *)(&DAT_00064f16 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00064f16 + unaff_EBP)" ( (binary_expression "&DAT_00064f16 + unaff_EBP" (pointer_expression "&DAT_00064f16" & identifier) + identifier) )))) == (binary_expression "*(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180" (pointer_expression "*(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" * (cast_expression "(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" ( (binary_expression ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2" (binary_expression ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP" (string_literal ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") + identifier) + number_literal) )))) + number_literal)) )) (compound_statement "{\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }" { (expression_statement "iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);" (assignment_expression "iVar8 = *(int *)(&DAT_0006514e + unaff_EBP)" identifier = (pointer_expression "*(int *)(&DAT_0006514e + unaff_EBP)" * (cast_expression "(int *)(&DAT_0006514e + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006514e + unaff_EBP)" ( (binary_expression "&DAT_0006514e + unaff_EBP" (pointer_expression "&DAT_0006514e" & identifier) + identifier) ))))) ;) (expression_statement "uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);" (assignment_expression "uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP)" identifier = (pointer_expression "*(uint *)(&DAT_0006514a + unaff_EBP)" * (cast_expression "(uint *)(&DAT_0006514a + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006514a + unaff_EBP)" ( (binary_expression "&DAT_0006514a + unaff_EBP" (pointer_expression "&DAT_0006514a" & identifier) + identifier) ))))) ;) }) (else_clause "else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" else (compound_statement "{\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" { (expression_statement "uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);" (assignment_expression "uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68)" identifier = (binary_expression "*(int *)(iVar2 + 0x24) - (iVar3 + 0x68)" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) - (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) ;) (expression_statement "iVar8 = (int)uVar7 >> 0x1f;" (assignment_expression "iVar8 = (int)uVar7 >> 0x1f" identifier = (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (expression_statement "iVar8 = iVar8 - (uint)(uVar7 < param_1);" (assignment_expression "iVar8 = iVar8 - (uint)(uVar7 < param_1)" identifier = (binary_expression "iVar8 - (uint)(uVar7 < param_1)" identifier - (call_expression "(uint)(uVar7 < param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < param_1)" ( (binary_expression "uVar7 < param_1" identifier < identifier) ))))) ;) (expression_statement "*(uint *)(iVar5 + 0x10) = uVar7 - param_1;" (assignment_expression "*(uint *)(iVar5 + 0x10) = uVar7 - param_1" (pointer_expression "*(uint *)(iVar5 + 0x10)" * (cast_expression "(uint *)(iVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar7 - param_1" identifier - identifier)) ;) (expression_statement "*(int *)(iVar5 + 0x14) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x44) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x44) != 0" (pointer_expression "*(int *)(iVar5 + 0x44)" * (cast_expression "(int *)(iVar5 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x44)" ( (binary_expression "iVar5 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }" { (if_statement "if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20))" ( (binary_expression "*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }" { (expression_statement "*(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;" (assignment_expression "*(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2" (pointer_expression "*(byte *)(iVar2 + 0x40)" * (cast_expression "(byte *)(iVar2 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar2 + 0x40) | 2" (pointer_expression "*(byte *)(iVar2 + 0x40)" * (cast_expression "(byte *)(iVar2 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);" (assignment_expression "uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30)" identifier = (binary_expression "*(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30)" (binary_expression "*(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30)" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar2 + 0x30)" * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) & (unary_expression "~*(uint *)(iVar2 + 0x30)" ~ (pointer_expression "*(uint *)(iVar2 + 0x30)" * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar2 + 0x24) = uVar4;" (assignment_expression "*(uint *)(iVar2 + 0x24) = uVar4" (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }" if (parenthesized_expression "(uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c))" ( (binary_expression "uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)" (binary_expression "uVar7 - *(int *)(iVar2 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) < (binary_expression "uVar4 - *(int *)(iVar2 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))))) )) (compound_statement "{\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }" { (expression_statement "*(uint *)(iVar2 + 0x24) = uVar7;" (assignment_expression "*(uint *)(iVar2 + 0x24) = uVar7" (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar2 + 0x20) = uVar4;" (assignment_expression "*(uint *)(iVar2 + 0x20) = uVar4" (pointer_expression "*(uint *)(iVar2 + 0x20)" * (cast_expression "(uint *)(iVar2 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = FUN_000246e0(iVar2 + 0x18);" (assignment_expression "iVar5 = FUN_000246e0(iVar2 + 0x18)" identifier = (call_expression "FUN_000246e0(iVar2 + 0x18)" identifier (argument_list "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = iVar5;" (assignment_expression "*piVar1 = iVar5" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "uVar6 = FUN_000264f0(iVar5 + 0x38);" (assignment_expression "uVar6 = FUN_000264f0(iVar5 + 0x38)" identifier = (call_expression "FUN_000264f0(iVar5 + 0x38)" identifier (argument_list "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x34) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x34) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" * (cast_expression "(undefined4 *)(iVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);" (assignment_expression "uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP)" identifier = (pointer_expression "*(undefined4 *)(&DAT_00065112 + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_00065112 + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00065112 + unaff_EBP)" ( (binary_expression "&DAT_00065112 + unaff_EBP" (pointer_expression "&DAT_00065112" & identifier) + identifier) ))))) ;) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "*(int *)(iVar3 + 0x30) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x30) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar2 + 4) = iVar5;" (assignment_expression "*(int *)(iVar2 + 4) = iVar5" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x3c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x3c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x3c)" * (cast_expression "(undefined4 *)(iVar5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }" if (parenthesized_expression "(iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4))" ( (binary_expression "iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" identifier == (pointer_expression "*(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" * (cast_expression "(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" ( (binary_expression "*(int *)(&DAT_000651e2 + unaff_EBP) + 4" (pointer_expression "*(int *)(&DAT_000651e2 + unaff_EBP)" * (cast_expression "(int *)(&DAT_000651e2 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000651e2 + unaff_EBP)" ( (binary_expression "&DAT_000651e2 + unaff_EBP" (pointer_expression "&DAT_000651e2" & identifier) + identifier) )))) + number_literal) ))))) )) (compound_statement "{\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }" { (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5)" identifier (argument_list "(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5)" ( (binary_expression "unaff_EBP + 0x3a2a5" identifier + number_literal) , number_literal , (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" & identifier) + identifier) , identifier ))) ;) })) comment (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8)" identifier (argument_list "(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8)" ( (binary_expression "unaff_EBP + 0x3a2a5" identifier + number_literal) , number_literal , (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" & identifier) + identifier) , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nvoid frag_new(size_t old_frags_var_max_size)\n\n{\n  undefined1 *puVar1;\n  fragS *pfVar2;\n  relax_stateT rVar3;\n  _obstack_chunk *p_Var4;\n  list_info_struct *plVar5;\n  frchainS *pfVar6;\n  char *pcVar7;\n  fragS *pfVar8;\n  char *pcVar9;\n  uint uVar10;\n  int iVar11;\n  \n  pfVar6 = frchain_now;\n  pfVar8 = frag_now;\n  pfVar2 = frchain_now->frch_last;\n  if (pfVar2 != frag_now) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xa5,"frag_new");\n  }\n  uVar10 = (uint)abs_section_offset;\n  iVar11 = abs_section_offset._4_4_;\n  if (now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n    uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;\n    iVar11 = (int)uVar10 >> 0x1f;\n  }\n  rVar3 = frag_now->fr_type;\n  *(uint *)&frag_now->fr_fix = uVar10 - old_frags_var_max_size;\n  *(uint *)((int)&pfVar8->fr_fix + 4) = iVar11 - (uint)(uVar10 < old_frags_var_max_size);\n  if (rVar3 == rs_dummy) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xaa,"frag_new");\n  }\n  pcVar9 = (pfVar6->frch_obstack).next_free;\n  if (pcVar9 == (pfVar6->frch_obstack).object_base) {\n    puVar1 = &(pfVar6->frch_obstack).field_0x28;\n    *puVar1 = *puVar1 | 2;\n  }\n  uVar10 = (pfVar6->frch_obstack).alignment_mask;\n  p_Var4 = (pfVar6->frch_obstack).chunk;\n  pcVar7 = (char *)((uint)(pcVar9 + uVar10) & ~uVar10);\n  pcVar9 = (pfVar6->frch_obstack).chunk_limit;\n  (pfVar6->frch_obstack).next_free = pcVar7;\n  if ((uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4)) {\n    (pfVar6->frch_obstack).next_free = pcVar9;\n    pcVar7 = pcVar9;\n  }\n  (pfVar6->frch_obstack).object_base = pcVar7;\n  pfVar8 = frag_alloc(&pfVar6->frch_obstack);\n  frag_now = pfVar8;\n  pcVar9 = as_where(&pfVar8->fr_line);\n  pfVar8->fr_file = pcVar9;\n  plVar5 = listing_tail;\n  pfVar8 = frag_now;\n  pfVar2->fr_next = frag_now;\n  pfVar6->frch_last = pfVar8;\n  pfVar8->line = plVar5;\n  if (pfVar8 != frchain_now->frch_last) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xc6,"frag_new");\n  }\n  pfVar8->fr_next = (frag *)0x0;\n  return;\n}\n\n" comment comment (function_definition "void frag_new(size_t old_frags_var_max_size)\n\n{\n  undefined1 *puVar1;\n  fragS *pfVar2;\n  relax_stateT rVar3;\n  _obstack_chunk *p_Var4;\n  list_info_struct *plVar5;\n  frchainS *pfVar6;\n  char *pcVar7;\n  fragS *pfVar8;\n  char *pcVar9;\n  uint uVar10;\n  int iVar11;\n  \n  pfVar6 = frchain_now;\n  pfVar8 = frag_now;\n  pfVar2 = frchain_now->frch_last;\n  if (pfVar2 != frag_now) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xa5,"frag_new");\n  }\n  uVar10 = (uint)abs_section_offset;\n  iVar11 = abs_section_offset._4_4_;\n  if (now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n    uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;\n    iVar11 = (int)uVar10 >> 0x1f;\n  }\n  rVar3 = frag_now->fr_type;\n  *(uint *)&frag_now->fr_fix = uVar10 - old_frags_var_max_size;\n  *(uint *)((int)&pfVar8->fr_fix + 4) = iVar11 - (uint)(uVar10 < old_frags_var_max_size);\n  if (rVar3 == rs_dummy) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xaa,"frag_new");\n  }\n  pcVar9 = (pfVar6->frch_obstack).next_free;\n  if (pcVar9 == (pfVar6->frch_obstack).object_base) {\n    puVar1 = &(pfVar6->frch_obstack).field_0x28;\n    *puVar1 = *puVar1 | 2;\n  }\n  uVar10 = (pfVar6->frch_obstack).alignment_mask;\n  p_Var4 = (pfVar6->frch_obstack).chunk;\n  pcVar7 = (char *)((uint)(pcVar9 + uVar10) & ~uVar10);\n  pcVar9 = (pfVar6->frch_obstack).chunk_limit;\n  (pfVar6->frch_obstack).next_free = pcVar7;\n  if ((uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4)) {\n    (pfVar6->frch_obstack).next_free = pcVar9;\n    pcVar7 = pcVar9;\n  }\n  (pfVar6->frch_obstack).object_base = pcVar7;\n  pfVar8 = frag_alloc(&pfVar6->frch_obstack);\n  frag_now = pfVar8;\n  pcVar9 = as_where(&pfVar8->fr_line);\n  pfVar8->fr_file = pcVar9;\n  plVar5 = listing_tail;\n  pfVar8 = frag_now;\n  pfVar2->fr_next = frag_now;\n  pfVar6->frch_last = pfVar8;\n  pfVar8->line = plVar5;\n  if (pfVar8 != frchain_now->frch_last) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xc6,"frag_new");\n  }\n  pfVar8->fr_next = (frag *)0x0;\n  return;\n}" primitive_type (function_declarator "frag_new(size_t old_frags_var_max_size)" identifier (parameter_list "(size_t old_frags_var_max_size)" ( (parameter_declaration "size_t old_frags_var_max_size" primitive_type identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  fragS *pfVar2;\n  relax_stateT rVar3;\n  _obstack_chunk *p_Var4;\n  list_info_struct *plVar5;\n  frchainS *pfVar6;\n  char *pcVar7;\n  fragS *pfVar8;\n  char *pcVar9;\n  uint uVar10;\n  int iVar11;\n  \n  pfVar6 = frchain_now;\n  pfVar8 = frag_now;\n  pfVar2 = frchain_now->frch_last;\n  if (pfVar2 != frag_now) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xa5,"frag_new");\n  }\n  uVar10 = (uint)abs_section_offset;\n  iVar11 = abs_section_offset._4_4_;\n  if (now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n    uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;\n    iVar11 = (int)uVar10 >> 0x1f;\n  }\n  rVar3 = frag_now->fr_type;\n  *(uint *)&frag_now->fr_fix = uVar10 - old_frags_var_max_size;\n  *(uint *)((int)&pfVar8->fr_fix + 4) = iVar11 - (uint)(uVar10 < old_frags_var_max_size);\n  if (rVar3 == rs_dummy) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xaa,"frag_new");\n  }\n  pcVar9 = (pfVar6->frch_obstack).next_free;\n  if (pcVar9 == (pfVar6->frch_obstack).object_base) {\n    puVar1 = &(pfVar6->frch_obstack).field_0x28;\n    *puVar1 = *puVar1 | 2;\n  }\n  uVar10 = (pfVar6->frch_obstack).alignment_mask;\n  p_Var4 = (pfVar6->frch_obstack).chunk;\n  pcVar7 = (char *)((uint)(pcVar9 + uVar10) & ~uVar10);\n  pcVar9 = (pfVar6->frch_obstack).chunk_limit;\n  (pfVar6->frch_obstack).next_free = pcVar7;\n  if ((uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4)) {\n    (pfVar6->frch_obstack).next_free = pcVar9;\n    pcVar7 = pcVar9;\n  }\n  (pfVar6->frch_obstack).object_base = pcVar7;\n  pfVar8 = frag_alloc(&pfVar6->frch_obstack);\n  frag_now = pfVar8;\n  pcVar9 = as_where(&pfVar8->fr_line);\n  pfVar8->fr_file = pcVar9;\n  plVar5 = listing_tail;\n  pfVar8 = frag_now;\n  pfVar2->fr_next = frag_now;\n  pfVar6->frch_last = pfVar8;\n  pfVar8->line = plVar5;\n  if (pfVar8 != frchain_now->frch_last) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xc6,"frag_new");\n  }\n  pfVar8->fr_next = (frag *)0x0;\n  return;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "fragS *pfVar2;" type_identifier (pointer_declarator "*pfVar2" * identifier) ;) (declaration "relax_stateT rVar3;" type_identifier identifier ;) (declaration "_obstack_chunk *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "list_info_struct *plVar5;" type_identifier (pointer_declarator "*plVar5" * identifier) ;) (declaration "frchainS *pfVar6;" type_identifier (pointer_declarator "*pfVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "fragS *pfVar8;" type_identifier (pointer_declarator "*pfVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (expression_statement "pfVar6 = frchain_now;" (assignment_expression "pfVar6 = frchain_now" identifier = identifier) ;) (expression_statement "pfVar8 = frag_now;" (assignment_expression "pfVar8 = frag_now" identifier = identifier) ;) (expression_statement "pfVar2 = frchain_now->frch_last;" (assignment_expression "pfVar2 = frchain_now->frch_last" identifier = (field_expression "frchain_now->frch_last" identifier -> field_identifier)) ;) (if_statement "if (pfVar2 != frag_now) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xa5,"frag_new");\n  }" if (parenthesized_expression "(pfVar2 != frag_now)" ( (binary_expression "pfVar2 != frag_now" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xa5,"frag_new");\n  }" { comment (expression_statement "as_abort("../../gas/frags.c",0xa5,"frag_new");" (call_expression "as_abort("../../gas/frags.c",0xa5,"frag_new")" identifier (argument_list "("../../gas/frags.c",0xa5,"frag_new")" ( (string_literal ""../../gas/frags.c"" " string_content ") , number_literal , (string_literal ""frag_new"" " string_content ") ))) ;) })) (expression_statement "uVar10 = (uint)abs_section_offset;" (assignment_expression "uVar10 = (uint)abs_section_offset" identifier = (cast_expression "(uint)abs_section_offset" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar11 = abs_section_offset._4_4_;" (assignment_expression "iVar11 = abs_section_offset._4_4_" identifier = (field_expression "abs_section_offset._4_4_" identifier . field_identifier)) ;) (if_statement "if (now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n    uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;\n    iVar11 = (int)uVar10 >> 0x1f;\n  }" if (parenthesized_expression "(now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( (binary_expression "now_seg != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" identifier != (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\n    uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;\n    iVar11 = (int)uVar10 >> 0x1f;\n  }" { (expression_statement "uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal;" (assignment_expression "uVar10 = (int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal" identifier = (binary_expression "(int)(frchain_now->frch_obstack).next_free - (int)pfVar2->fr_literal" (cast_expression "(int)(frchain_now->frch_obstack).next_free" ( (type_descriptor "int" primitive_type) ) (field_expression "(frchain_now->frch_obstack).next_free" (parenthesized_expression "(frchain_now->frch_obstack)" ( (field_expression "frchain_now->frch_obstack" identifier -> field_identifier) )) . field_identifier)) - (cast_expression "(int)pfVar2->fr_literal" ( (type_descriptor "int" primitive_type) ) (field_expression "pfVar2->fr_literal" identifier -> field_identifier)))) ;) (expression_statement "iVar11 = (int)uVar10 >> 0x1f;" (assignment_expression "iVar11 = (int)uVar10 >> 0x1f" identifier = (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (expression_statement "rVar3 = frag_now->fr_type;" (assignment_expression "rVar3 = frag_now->fr_type" identifier = (field_expression "frag_now->fr_type" identifier -> field_identifier)) ;) (expression_statement "*(uint *)&frag_now->fr_fix = uVar10 - old_frags_var_max_size;" (assignment_expression "*(uint *)&frag_now->fr_fix = uVar10 - old_frags_var_max_size" (pointer_expression "*(uint *)&frag_now->fr_fix" * (cast_expression "(uint *)&frag_now->fr_fix" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&frag_now->fr_fix" & (field_expression "frag_now->fr_fix" identifier -> field_identifier)))) = (binary_expression "uVar10 - old_frags_var_max_size" identifier - identifier)) ;) (expression_statement "*(uint *)((int)&pfVar8->fr_fix + 4) = iVar11 - (uint)(uVar10 < old_frags_var_max_size);" (assignment_expression "*(uint *)((int)&pfVar8->fr_fix + 4) = iVar11 - (uint)(uVar10 < old_frags_var_max_size)" (pointer_expression "*(uint *)((int)&pfVar8->fr_fix + 4)" * (cast_expression "(uint *)((int)&pfVar8->fr_fix + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pfVar8->fr_fix + 4)" ( (binary_expression "(int)&pfVar8->fr_fix + 4" (cast_expression "(int)&pfVar8->fr_fix" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar8->fr_fix" & (field_expression "pfVar8->fr_fix" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "iVar11 - (uint)(uVar10 < old_frags_var_max_size)" identifier - (call_expression "(uint)(uVar10 < old_frags_var_max_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < old_frags_var_max_size)" ( (binary_expression "uVar10 < old_frags_var_max_size" identifier < identifier) ))))) ;) (if_statement "if (rVar3 == rs_dummy) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xaa,"frag_new");\n  }" if (parenthesized_expression "(rVar3 == rs_dummy)" ( (binary_expression "rVar3 == rs_dummy" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xaa,"frag_new");\n  }" { comment (expression_statement "as_abort("../../gas/frags.c",0xaa,"frag_new");" (call_expression "as_abort("../../gas/frags.c",0xaa,"frag_new")" identifier (argument_list "("../../gas/frags.c",0xaa,"frag_new")" ( (string_literal ""../../gas/frags.c"" " string_content ") , number_literal , (string_literal ""frag_new"" " string_content ") ))) ;) })) (expression_statement "pcVar9 = (pfVar6->frch_obstack).next_free;" (assignment_expression "pcVar9 = (pfVar6->frch_obstack).next_free" identifier = (field_expression "(pfVar6->frch_obstack).next_free" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pcVar9 == (pfVar6->frch_obstack).object_base) {\n    puVar1 = &(pfVar6->frch_obstack).field_0x28;\n    *puVar1 = *puVar1 | 2;\n  }" if (parenthesized_expression "(pcVar9 == (pfVar6->frch_obstack).object_base)" ( (binary_expression "pcVar9 == (pfVar6->frch_obstack).object_base" identifier == (field_expression "(pfVar6->frch_obstack).object_base" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n    puVar1 = &(pfVar6->frch_obstack).field_0x28;\n    *puVar1 = *puVar1 | 2;\n  }" { (expression_statement "puVar1 = &(pfVar6->frch_obstack).field_0x28;" (assignment_expression "puVar1 = &(pfVar6->frch_obstack).field_0x28" identifier = (pointer_expression "&(pfVar6->frch_obstack).field_0x28" & (field_expression "(pfVar6->frch_obstack).field_0x28" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 2;" (assignment_expression "*puVar1 = *puVar1 | 2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 2" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) (expression_statement "uVar10 = (pfVar6->frch_obstack).alignment_mask;" (assignment_expression "uVar10 = (pfVar6->frch_obstack).alignment_mask" identifier = (field_expression "(pfVar6->frch_obstack).alignment_mask" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var4 = (pfVar6->frch_obstack).chunk;" (assignment_expression "p_Var4 = (pfVar6->frch_obstack).chunk" identifier = (field_expression "(pfVar6->frch_obstack).chunk" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar7 = (char *)((uint)(pcVar9 + uVar10) & ~uVar10);" (assignment_expression "pcVar7 = (char *)((uint)(pcVar9 + uVar10) & ~uVar10)" identifier = (cast_expression "(char *)((uint)(pcVar9 + uVar10) & ~uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(pcVar9 + uVar10) & ~uVar10)" ( (binary_expression "(uint)(pcVar9 + uVar10) & ~uVar10" (call_expression "(uint)(pcVar9 + uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 + uVar10)" ( (binary_expression "pcVar9 + uVar10" identifier + identifier) ))) & (unary_expression "~uVar10" ~ identifier)) )))) ;) (expression_statement "pcVar9 = (pfVar6->frch_obstack).chunk_limit;" (assignment_expression "pcVar9 = (pfVar6->frch_obstack).chunk_limit" identifier = (field_expression "(pfVar6->frch_obstack).chunk_limit" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pfVar6->frch_obstack).next_free = pcVar7;" (assignment_expression "(pfVar6->frch_obstack).next_free = pcVar7" (field_expression "(pfVar6->frch_obstack).next_free" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4)) {\n    (pfVar6->frch_obstack).next_free = pcVar9;\n    pcVar7 = pcVar9;\n  }" if (parenthesized_expression "((uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4))" ( (binary_expression "(uint)((int)pcVar9 - (int)p_Var4) < (uint)((int)pcVar7 - (int)p_Var4)" (call_expression "(uint)((int)pcVar9 - (int)p_Var4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar9 - (int)p_Var4)" ( (binary_expression "(int)pcVar9 - (int)p_Var4" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((int)pcVar7 - (int)p_Var4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar7 - (int)p_Var4)" ( (binary_expression "(int)pcVar7 - (int)p_Var4" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n    (pfVar6->frch_obstack).next_free = pcVar9;\n    pcVar7 = pcVar9;\n  }" { (expression_statement "(pfVar6->frch_obstack).next_free = pcVar9;" (assignment_expression "(pfVar6->frch_obstack).next_free = pcVar9" (field_expression "(pfVar6->frch_obstack).next_free" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pcVar7 = pcVar9;" (assignment_expression "pcVar7 = pcVar9" identifier = identifier) ;) })) (expression_statement "(pfVar6->frch_obstack).object_base = pcVar7;" (assignment_expression "(pfVar6->frch_obstack).object_base = pcVar7" (field_expression "(pfVar6->frch_obstack).object_base" (parenthesized_expression "(pfVar6->frch_obstack)" ( (field_expression "pfVar6->frch_obstack" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pfVar8 = frag_alloc(&pfVar6->frch_obstack);" (assignment_expression "pfVar8 = frag_alloc(&pfVar6->frch_obstack)" identifier = (call_expression "frag_alloc(&pfVar6->frch_obstack)" identifier (argument_list "(&pfVar6->frch_obstack)" ( (pointer_expression "&pfVar6->frch_obstack" & (field_expression "pfVar6->frch_obstack" identifier -> field_identifier)) )))) ;) (expression_statement "frag_now = pfVar8;" (assignment_expression "frag_now = pfVar8" identifier = identifier) ;) (expression_statement "pcVar9 = as_where(&pfVar8->fr_line);" (assignment_expression "pcVar9 = as_where(&pfVar8->fr_line)" identifier = (call_expression "as_where(&pfVar8->fr_line)" identifier (argument_list "(&pfVar8->fr_line)" ( (pointer_expression "&pfVar8->fr_line" & (field_expression "pfVar8->fr_line" identifier -> field_identifier)) )))) ;) (expression_statement "pfVar8->fr_file = pcVar9;" (assignment_expression "pfVar8->fr_file = pcVar9" (field_expression "pfVar8->fr_file" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar5 = listing_tail;" (assignment_expression "plVar5 = listing_tail" identifier = identifier) ;) (expression_statement "pfVar8 = frag_now;" (assignment_expression "pfVar8 = frag_now" identifier = identifier) ;) (expression_statement "pfVar2->fr_next = frag_now;" (assignment_expression "pfVar2->fr_next = frag_now" (field_expression "pfVar2->fr_next" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar6->frch_last = pfVar8;" (assignment_expression "pfVar6->frch_last = pfVar8" (field_expression "pfVar6->frch_last" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar8->line = plVar5;" (assignment_expression "pfVar8->line = plVar5" (field_expression "pfVar8->line" identifier -> field_identifier) = identifier) ;) (if_statement "if (pfVar8 != frchain_now->frch_last) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xc6,"frag_new");\n  }" if (parenthesized_expression "(pfVar8 != frchain_now->frch_last)" ( (binary_expression "pfVar8 != frchain_now->frch_last" identifier != (field_expression "frchain_now->frch_last" identifier -> field_identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/frags.c",0xc6,"frag_new");\n  }" { comment (expression_statement "as_abort("../../gas/frags.c",0xc6,"frag_new");" (call_expression "as_abort("../../gas/frags.c",0xc6,"frag_new")" identifier (argument_list "("../../gas/frags.c",0xc6,"frag_new")" ( (string_literal ""../../gas/frags.c"" " string_content ") , number_literal , (string_literal ""frag_new"" " string_content ") ))) ;) })) (expression_statement "pfVar8->fr_next = (frag *)0x0;" (assignment_expression "pfVar8->fr_next = (frag *)0x0" (field_expression "pfVar8->fr_next" identifier -> field_identifier) = (cast_expression "(frag *)0x0" ( (type_descriptor "frag *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00024820(uint param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    \n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}\n\n" (function_definition "void FUN_00024820(uint param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    \n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}" primitive_type (function_declarator "FUN_00024820(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    \n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (expression_statement "FUN_0001fe10();" (call_expression "FUN_0001fe10()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar1 = (int *)(&DAT_0006507a + unaff_EBP);" (assignment_expression "piVar1 = (int *)(&DAT_0006507a + unaff_EBP)" identifier = (cast_expression "(int *)(&DAT_0006507a + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006507a + unaff_EBP)" ( (binary_expression "&DAT_0006507a + unaff_EBP" (pointer_expression "&DAT_0006507a" & identifier) + identifier) )))) ;) (expression_statement "iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);" (assignment_expression "iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP)" identifier = (pointer_expression "*(int *)(&DAT_000651e2 + unaff_EBP)" * (cast_expression "(int *)(&DAT_000651e2 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000651e2 + unaff_EBP)" ( (binary_expression "&DAT_000651e2 + unaff_EBP" (pointer_expression "&DAT_000651e2" & identifier) + identifier) ))))) ;) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar3 = *(int *)(iVar2 + 4);" (assignment_expression "iVar3 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }" if (parenthesized_expression "(iVar3 != iVar5)" ( (binary_expression "iVar3 != iVar5" identifier != identifier) )) (compound_statement "{\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }" { (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1)" identifier (argument_list "(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1)" ( (binary_expression "unaff_EBP + 0x3a2a5" identifier + number_literal) , number_literal , (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" & identifier) + identifier) , identifier ))) ;) })) (if_statement "if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" if (parenthesized_expression "(*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180)" ( (binary_expression "*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180" (pointer_expression "*(int *)(&DAT_00064f16 + unaff_EBP)" * (cast_expression "(int *)(&DAT_00064f16 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00064f16 + unaff_EBP)" ( (binary_expression "&DAT_00064f16 + unaff_EBP" (pointer_expression "&DAT_00064f16" & identifier) + identifier) )))) == (binary_expression "*(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180" (pointer_expression "*(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" * (cast_expression "(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" ( (binary_expression ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2" (binary_expression ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP" (string_literal ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") + identifier) + number_literal) )))) + number_literal)) )) (compound_statement "{\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }" { (expression_statement "iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);" (assignment_expression "iVar8 = *(int *)(&DAT_0006514e + unaff_EBP)" identifier = (pointer_expression "*(int *)(&DAT_0006514e + unaff_EBP)" * (cast_expression "(int *)(&DAT_0006514e + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006514e + unaff_EBP)" ( (binary_expression "&DAT_0006514e + unaff_EBP" (pointer_expression "&DAT_0006514e" & identifier) + identifier) ))))) ;) (expression_statement "uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);" (assignment_expression "uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP)" identifier = (pointer_expression "*(uint *)(&DAT_0006514a + unaff_EBP)" * (cast_expression "(uint *)(&DAT_0006514a + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006514a + unaff_EBP)" ( (binary_expression "&DAT_0006514a + unaff_EBP" (pointer_expression "&DAT_0006514a" & identifier) + identifier) ))))) ;) }) (else_clause "else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" else (compound_statement "{\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" { (expression_statement "uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);" (assignment_expression "uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68)" identifier = (binary_expression "*(int *)(iVar2 + 0x24) - (iVar3 + 0x68)" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) - (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) ;) (expression_statement "iVar8 = (int)uVar7 >> 0x1f;" (assignment_expression "iVar8 = (int)uVar7 >> 0x1f" identifier = (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (expression_statement "iVar8 = iVar8 - (uint)(uVar7 < param_1);" (assignment_expression "iVar8 = iVar8 - (uint)(uVar7 < param_1)" identifier = (binary_expression "iVar8 - (uint)(uVar7 < param_1)" identifier - (call_expression "(uint)(uVar7 < param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < param_1)" ( (binary_expression "uVar7 < param_1" identifier < identifier) ))))) ;) (expression_statement "*(uint *)(iVar5 + 0x10) = uVar7 - param_1;" (assignment_expression "*(uint *)(iVar5 + 0x10) = uVar7 - param_1" (pointer_expression "*(uint *)(iVar5 + 0x10)" * (cast_expression "(uint *)(iVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar7 - param_1" identifier - identifier)) ;) (expression_statement "*(int *)(iVar5 + 0x14) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x44) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x44) != 0" (pointer_expression "*(int *)(iVar5 + 0x44)" * (cast_expression "(int *)(iVar5 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x44)" ( (binary_expression "iVar5 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }" { (if_statement "if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20))" ( (binary_expression "*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }" { (expression_statement "*(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;" (assignment_expression "*(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2" (pointer_expression "*(byte *)(iVar2 + 0x40)" * (cast_expression "(byte *)(iVar2 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar2 + 0x40) | 2" (pointer_expression "*(byte *)(iVar2 + 0x40)" * (cast_expression "(byte *)(iVar2 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);" (assignment_expression "uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30)" identifier = (binary_expression "*(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30)" (binary_expression "*(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30)" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar2 + 0x30)" * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) & (unary_expression "~*(uint *)(iVar2 + 0x30)" ~ (pointer_expression "*(uint *)(iVar2 + 0x30)" * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar2 + 0x24) = uVar4;" (assignment_expression "*(uint *)(iVar2 + 0x24) = uVar4" (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }" if (parenthesized_expression "(uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c))" ( (binary_expression "uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)" (binary_expression "uVar7 - *(int *)(iVar2 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) < (binary_expression "uVar4 - *(int *)(iVar2 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))))) )) (compound_statement "{\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }" { (expression_statement "*(uint *)(iVar2 + 0x24) = uVar7;" (assignment_expression "*(uint *)(iVar2 + 0x24) = uVar7" (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar2 + 0x20) = uVar4;" (assignment_expression "*(uint *)(iVar2 + 0x20) = uVar4" (pointer_expression "*(uint *)(iVar2 + 0x20)" * (cast_expression "(uint *)(iVar2 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = FUN_000246e0(iVar2 + 0x18);" (assignment_expression "iVar5 = FUN_000246e0(iVar2 + 0x18)" identifier = (call_expression "FUN_000246e0(iVar2 + 0x18)" identifier (argument_list "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = iVar5;" (assignment_expression "*piVar1 = iVar5" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "uVar6 = FUN_000264f0(iVar5 + 0x38);" (assignment_expression "uVar6 = FUN_000264f0(iVar5 + 0x38)" identifier = (call_expression "FUN_000264f0(iVar5 + 0x38)" identifier (argument_list "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x34) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x34) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" * (cast_expression "(undefined4 *)(iVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);" (assignment_expression "uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP)" identifier = (pointer_expression "*(undefined4 *)(&DAT_00065112 + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_00065112 + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00065112 + unaff_EBP)" ( (binary_expression "&DAT_00065112 + unaff_EBP" (pointer_expression "&DAT_00065112" & identifier) + identifier) ))))) ;) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "*(int *)(iVar3 + 0x30) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x30) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar2 + 4) = iVar5;" (assignment_expression "*(int *)(iVar2 + 4) = iVar5" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x3c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x3c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x3c)" * (cast_expression "(undefined4 *)(iVar5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }" if (parenthesized_expression "(iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4))" ( (binary_expression "iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" identifier == (pointer_expression "*(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" * (cast_expression "(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" ( (binary_expression "*(int *)(&DAT_000651e2 + unaff_EBP) + 4" (pointer_expression "*(int *)(&DAT_000651e2 + unaff_EBP)" * (cast_expression "(int *)(&DAT_000651e2 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000651e2 + unaff_EBP)" ( (binary_expression "&DAT_000651e2 + unaff_EBP" (pointer_expression "&DAT_000651e2" & identifier) + identifier) )))) + number_literal) ))))) )) (compound_statement "{\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }" { (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5)" identifier (argument_list "(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5)" ( (binary_expression "unaff_EBP + 0x3a2a5" identifier + number_literal) , number_literal , (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" & identifier) + identifier) , identifier ))) ;) })) (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8)" identifier (argument_list "(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8)" ( (binary_expression "unaff_EBP + 0x3a2a5" identifier + number_literal) , number_literal , (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" & identifier) + identifier) , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") + IDENT) + LIT) )))) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 & IDENT) + IDENT) )))) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT ))) ;) })))
(function_definition "void FUN_00024820(uint param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    \n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}" (primitive_type "void") (function_declarator "FUN_00024820(uint param_1)" (identifier "FUN_00024820") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  int iVar8;\n  int unaff_EBP;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);\n  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);\n  iVar5 = *piVar1;\n  iVar3 = *(int *)(iVar2 + 4);\n  if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }\n  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }\n  iVar8 = iVar8 - (uint)(uVar7 < param_1);\n  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;\n  *(int *)(iVar5 + 0x14) = iVar8;\n  if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }\n                    \n  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (expression_statement "FUN_0001fe10();" (call_expression "FUN_0001fe10()" (identifier "FUN_0001fe10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)(&DAT_0006507a + unaff_EBP);" (assignment_expression "piVar1 = (int *)(&DAT_0006507a + unaff_EBP)" (identifier "piVar1") (= "=") (cast_expression "(int *)(&DAT_0006507a + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0006507a + unaff_EBP)" (( "(") (binary_expression "&DAT_0006507a + unaff_EBP" (pointer_expression "&DAT_0006507a" (& "&") (identifier "DAT_0006507a")) (+ "+") (identifier "unaff_EBP")) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);" (assignment_expression "iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(&DAT_000651e2 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_000651e2 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000651e2 + unaff_EBP)" (( "(") (binary_expression "&DAT_000651e2 + unaff_EBP" (pointer_expression "&DAT_000651e2" (& "&") (identifier "DAT_000651e2")) (+ "+") (identifier "unaff_EBP")) () ")"))))) (; ";")) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" (identifier "iVar5") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar2 + 4);" (assignment_expression "iVar3 = *(int *)(iVar2 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar3 != iVar5) {\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }" (if "if") (parenthesized_expression "(iVar3 != iVar5)" (( "(") (binary_expression "iVar3 != iVar5" (identifier "iVar3") (!= "!=") (identifier "iVar5")) () ")")) (compound_statement "{\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);\n  }" ({ "{") (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1)" (identifier "FUN_0002be80") (argument_list "(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1)" (( "(") (binary_expression "unaff_EBP + 0x3a2a5" (identifier "unaff_EBP") (+ "+") (number_literal "0x3a2a5")) (, ",") (number_literal "0xa5") (, ",") (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" (& "&") (identifier "UNK_0003a2ee")) (+ "+") (identifier "unaff_EBP")) (, ",") (identifier "piVar1") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180) {\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }\n  else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" (if "if") (parenthesized_expression "(*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180)" (( "(") (binary_expression "*(int *)(&DAT_00064f16 + unaff_EBP) ==\n      *(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180" (pointer_expression "*(int *)(&DAT_00064f16 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_00064f16 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00064f16 + unaff_EBP)" (( "(") (binary_expression "&DAT_00064f16 + unaff_EBP" (pointer_expression "&DAT_00064f16" (& "&") (identifier "DAT_00064f16")) (+ "+") (identifier "unaff_EBP")) () ")")))) (== "==") (binary_expression "*(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2) + 0x180" (pointer_expression "*(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" (* "*") (cast_expression "(int *)(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(\n              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2)" (( "(") (binary_expression ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP + 0xf2" (binary_expression ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"\n              + unaff_EBP" (string_literal ""Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"" (" """) (string_content "Options:") (escape_sequence "\n") (string_content "  -a[sub-option...]") (escape_sequence "\t") (string_content "  turn on listings") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  Sub-options [default hls]:") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  c      omit false conditionals") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  d      omit debugging directives") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  g      include general info") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  h      include high-level source") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  l      include assembly") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  m      include macro expansions") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  n      omit forms processing") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  s      include symbols") (escape_sequence "\n") (string_content "                      ") (escape_sequence "\t") (string_content "  =FILE  list to FILE (must be last sub-option)") (escape_sequence "\n") (" """)) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "0xf2")) () ")")))) (+ "+") (number_literal "0x180"))) () ")")) (compound_statement "{\n    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);\n    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);" (assignment_expression "iVar8 = *(int *)(&DAT_0006514e + unaff_EBP)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(&DAT_0006514e + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_0006514e + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0006514e + unaff_EBP)" (( "(") (binary_expression "&DAT_0006514e + unaff_EBP" (pointer_expression "&DAT_0006514e" (& "&") (identifier "DAT_0006514e")) (+ "+") (identifier "unaff_EBP")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);" (assignment_expression "uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(&DAT_0006514a + unaff_EBP)" (* "*") (cast_expression "(uint *)(&DAT_0006514a + unaff_EBP)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0006514a + unaff_EBP)" (( "(") (binary_expression "&DAT_0006514a + unaff_EBP" (pointer_expression "&DAT_0006514a" (& "&") (identifier "DAT_0006514a")) (+ "+") (identifier "unaff_EBP")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" (else "else") (compound_statement "{\n    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);\n    iVar8 = (int)uVar7 >> 0x1f;\n  }" ({ "{") (expression_statement "uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);" (assignment_expression "uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68)" (identifier "uVar7") (= "=") (binary_expression "*(int *)(iVar2 + 0x24) - (iVar3 + 0x68)" (pointer_expression "*(int *)(iVar2 + 0x24)" (* "*") (cast_expression "(int *)(iVar2 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")")))) (- "-") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (; ";")) (expression_statement "iVar8 = (int)uVar7 >> 0x1f;" (assignment_expression "iVar8 = (int)uVar7 >> 0x1f" (identifier "iVar8") (= "=") (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}")))) (expression_statement "iVar8 = iVar8 - (uint)(uVar7 < param_1);" (assignment_expression "iVar8 = iVar8 - (uint)(uVar7 < param_1)" (identifier "iVar8") (= "=") (binary_expression "iVar8 - (uint)(uVar7 < param_1)" (identifier "iVar8") (- "-") (call_expression "(uint)(uVar7 < param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 < param_1)" (( "(") (binary_expression "uVar7 < param_1" (identifier "uVar7") (< "<") (identifier "param_1")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar5 + 0x10) = uVar7 - param_1;" (assignment_expression "*(uint *)(iVar5 + 0x10) = uVar7 - param_1" (pointer_expression "*(uint *)(iVar5 + 0x10)" (* "*") (cast_expression "(uint *)(iVar5 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "uVar7 - param_1" (identifier "uVar7") (- "-") (identifier "param_1"))) (; ";")) (expression_statement "*(int *)(iVar5 + 0x14) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x44) != 0) {\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x44) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x44) != 0" (pointer_expression "*(int *)(iVar5 + 0x44)" (* "*") (cast_expression "(int *)(iVar5 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x44)" (( "(") (binary_expression "iVar5 + 0x44" (identifier "iVar5") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }\n    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);\n    uVar7 = *(uint *)(iVar2 + 0x28);\n    *(uint *)(iVar2 + 0x24) = uVar4;\n    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }\n    *(uint *)(iVar2 + 0x20) = uVar4;\n    iVar5 = FUN_000246e0(iVar2 + 0x18);\n    *piVar1 = iVar5;\n    uVar6 = FUN_000264f0(iVar5 + 0x38);\n    *(undefined4 *)(iVar5 + 0x34) = uVar6;\n    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);\n    iVar5 = *piVar1;\n    *(int *)(iVar3 + 0x30) = iVar5;\n    *(int *)(iVar2 + 4) = iVar5;\n    *(undefined4 *)(iVar5 + 0x3c) = uVar6;\n    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }\n                    \n    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);\n  }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20))" (( "(") (binary_expression "*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)" (pointer_expression "*(int *)(iVar2 + 0x24)" (* "*") (cast_expression "(int *)(iVar2 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (compound_statement "{\n      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;\n    }" ({ "{") (expression_statement "*(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;" (assignment_expression "*(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2" (pointer_expression "*(byte *)(iVar2 + 0x40)" (* "*") (cast_expression "(byte *)(iVar2 + 0x40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar2 + 0x40) | 2" (pointer_expression "*(byte *)(iVar2 + 0x40)" (* "*") (cast_expression "(byte *)(iVar2 + 0x40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);" (assignment_expression "uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30)" (identifier "uVar4") (= "=") (binary_expression "*(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30)" (binary_expression "*(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30)" (pointer_expression "*(int *)(iVar2 + 0x24)" (* "*") (cast_expression "(int *)(iVar2 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (pointer_expression "*(uint *)(iVar2 + 0x30)" (* "*") (cast_expression "(uint *)(iVar2 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")"))))) (& "&") (unary_expression "~*(uint *)(iVar2 + 0x30)" (~ "~") (pointer_expression "*(uint *)(iVar2 + 0x30)" (* "*") (cast_expression "(uint *)(iVar2 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")"))))))) (; ";")) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x28)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x28)" (* "*") (cast_expression "(uint *)(iVar2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar2 + 0x24) = uVar4;" (assignment_expression "*(uint *)(iVar2 + 0x24) = uVar4" (pointer_expression "*(uint *)(iVar2 + 0x24)" (* "*") (cast_expression "(uint *)(iVar2 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }" (if "if") (parenthesized_expression "(uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c))" (( "(") (binary_expression "uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)" (binary_expression "uVar7 - *(int *)(iVar2 + 0x1c)" (identifier "uVar7") (- "-") (pointer_expression "*(int *)(iVar2 + 0x1c)" (* "*") (cast_expression "(int *)(iVar2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (< "<") (binary_expression "uVar4 - *(int *)(iVar2 + 0x1c)" (identifier "uVar4") (- "-") (pointer_expression "*(int *)(iVar2 + 0x1c)" (* "*") (cast_expression "(int *)(iVar2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))))) () ")")) (compound_statement "{\n      *(uint *)(iVar2 + 0x24) = uVar7;\n      uVar4 = uVar7;\n    }" ({ "{") (expression_statement "*(uint *)(iVar2 + 0x24) = uVar7;" (assignment_expression "*(uint *)(iVar2 + 0x24) = uVar7" (pointer_expression "*(uint *)(iVar2 + 0x24)" (* "*") (cast_expression "(uint *)(iVar2 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" (identifier "uVar4") (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar2 + 0x20) = uVar4;" (assignment_expression "*(uint *)(iVar2 + 0x20) = uVar4" (pointer_expression "*(uint *)(iVar2 + 0x20)" (* "*") (cast_expression "(uint *)(iVar2 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar5 = FUN_000246e0(iVar2 + 0x18);" (assignment_expression "iVar5 = FUN_000246e0(iVar2 + 0x18)" (identifier "iVar5") (= "=") (call_expression "FUN_000246e0(iVar2 + 0x18)" (identifier "FUN_000246e0") (argument_list "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*piVar1 = iVar5;" (assignment_expression "*piVar1 = iVar5" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uVar6 = FUN_000264f0(iVar5 + 0x38);" (assignment_expression "uVar6 = FUN_000264f0(iVar5 + 0x38)" (identifier "uVar6") (= "=") (call_expression "FUN_000264f0(iVar5 + 0x38)" (identifier "FUN_000264f0") (argument_list "(iVar5 + 0x38)" (( "(") (binary_expression "iVar5 + 0x38" (identifier "iVar5") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x34) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x34) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);" (assignment_expression "uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(&DAT_00065112 + unaff_EBP)" (* "*") (cast_expression "(undefined4 *)(&DAT_00065112 + unaff_EBP)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00065112 + unaff_EBP)" (( "(") (binary_expression "&DAT_00065112 + unaff_EBP" (pointer_expression "&DAT_00065112" (& "&") (identifier "DAT_00065112")) (+ "+") (identifier "unaff_EBP")) () ")"))))) (; ";")) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" (identifier "iVar5") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "*(int *)(iVar3 + 0x30) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x30) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x30)" (* "*") (cast_expression "(int *)(iVar3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar2 + 4) = iVar5;" (assignment_expression "*(int *)(iVar2 + 4) = iVar5" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x3c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x3c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x3c)" (( "(") (binary_expression "iVar5 + 0x3c" (identifier "iVar5") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }" (if "if") (parenthesized_expression "(iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4))" (( "(") (binary_expression "iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" (identifier "iVar5") (== "==") (pointer_expression "*(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" (* "*") (cast_expression "(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)" (( "(") (binary_expression "*(int *)(&DAT_000651e2 + unaff_EBP) + 4" (pointer_expression "*(int *)(&DAT_000651e2 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_000651e2 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000651e2 + unaff_EBP)" (( "(") (binary_expression "&DAT_000651e2 + unaff_EBP" (pointer_expression "&DAT_000651e2" (& "&") (identifier "DAT_000651e2")) (+ "+") (identifier "unaff_EBP")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar5 + 0x30) = 0;\n      return;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x30)" (( "(") (binary_expression "iVar5 + 0x30" (identifier "iVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5)" (identifier "FUN_0002be80") (argument_list "(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5)" (( "(") (binary_expression "unaff_EBP + 0x3a2a5" (identifier "unaff_EBP") (+ "+") (number_literal "0x3a2a5")) (, ",") (number_literal "0xc6") (, ",") (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" (& "&") (identifier "UNK_0003a2ee")) (+ "+") (identifier "unaff_EBP")) (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);" (call_expression "FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8)" (identifier "FUN_0002be80") (argument_list "(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8)" (( "(") (binary_expression "unaff_EBP + 0x3a2a5" (identifier "unaff_EBP") (+ "+") (number_literal "0x3a2a5")) (, ",") (number_literal "0xaa") (, ",") (binary_expression "&UNK_0003a2ee + unaff_EBP" (pointer_expression "&UNK_0003a2ee" (& "&") (identifier "UNK_0003a2ee")) (+ "+") (identifier "unaff_EBP")) (, ",") (identifier "iVar8") () ")"))) (; ";")) (} "}")))

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

void function_1(size_t var_7)

{
  type_1 *puVar1;
  type_2 *var_1;
  type_3 var_9;
  type_4 *p_Var4;
  type_5 *plVar5;
  type_6 *pfVar6;
  char *pcVar7;
  type_2 *var_14;
  char *var_11;
  type_7 var_6;
  int var_8;
  
  pfVar6 = frchain_now;
  var_14 = var_2;
  var_1 = frchain_now->frch_last;
  if (var_1 != var_2) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gas/frags.c",0xa5,"frag_new");
  }
  var_6 = (type_7)abs_section_offset;
  var_8 = abs_section_offset._4_4_;
  if (var_4 != (segT)(var_5 + 0x180)) {
    var_6 = (int)(frchain_now->frch_obstack).next_free - (int)var_1->fr_literal;
    var_8 = (int)var_6 >> 0x1f;
  }
  var_9 = var_2->fr_type;
  *(type_7 *)&var_2->fr_fix = var_6 - var_7;
  *(type_7 *)((int)&var_14->fr_fix + 4) = var_8 - (type_7)(var_6 < var_7);
  if (var_9 == var_10) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gas/frags.c",0xaa,"frag_new");
  }
  var_11 = (pfVar6->frch_obstack).next_free;
  if (var_11 == (pfVar6->frch_obstack).object_base) {
    puVar1 = &(pfVar6->frch_obstack).field_0x28;
    *puVar1 = *puVar1 | 2;
  }
  var_6 = (pfVar6->frch_obstack).alignment_mask;
  p_Var4 = (pfVar6->frch_obstack).chunk;
  pcVar7 = (char *)((type_7)(var_11 + var_6) & ~var_6);
  var_11 = (pfVar6->frch_obstack).chunk_limit;
  (pfVar6->frch_obstack).next_free = pcVar7;
  if ((type_7)((int)var_11 - (int)p_Var4) < (type_7)((int)pcVar7 - (int)p_Var4)) {
    (pfVar6->frch_obstack).next_free = var_11;
    pcVar7 = var_11;
  }
  (pfVar6->frch_obstack).object_base = pcVar7;
  var_14 = var_12(&pfVar6->frch_obstack);
  var_2 = var_14;
  var_11 = var_13(&var_14->fr_line);
  var_14->fr_file = var_11;
  plVar5 = listing_tail;
  var_14 = var_2;
  var_1->fr_next = var_2;
  pfVar6->frch_last = var_14;
  var_14->line = plVar5;
  if (var_14 != frchain_now->frch_last) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gas/frags.c",0xc6,"frag_new");
  }
  var_14->fr_next = (type_8 *)0x0;
  return;
}


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

void MASKED(uint param_1)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  uint uVar7;
  int iVar8;
  int unaff_EBP;
  
  FUN_0001fe10();
  piVar1 = (int *)(&DAT_0006507a + unaff_EBP);
  iVar2 = *(int *)(&DAT_000651e2 + unaff_EBP);
  iVar5 = *piVar1;
  iVar3 = *(int *)(iVar2 + 4);
  if (iVar3 != iVar5) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be80(unaff_EBP + 0x3a2a5,0xa5,&UNK_0003a2ee + unaff_EBP,piVar1);
  }
  if (*(int *)(&DAT_00064f16 + unaff_EBP) ==
      *(int *)(
              "Options:\n  -a[sub-option...]\t  turn on listings\n                      \t  Sub-options [default hls]:\n                      \t  c      omit false conditionals\n                      \t  d      omit debugging directives\n                      \t  g      include general info\n                      \t  h      include high-level source\n                      \t  l      include assembly\n                      \t  m      include macro expansions\n                      \t  n      omit forms processing\n                      \t  s      include symbols\n                      \t  =FILE  list to FILE (must be last sub-option)\n"
              + unaff_EBP + 0xf2) + 0x180) {
    iVar8 = *(int *)(&DAT_0006514e + unaff_EBP);
    uVar7 = *(uint *)(&DAT_0006514a + unaff_EBP);
  }
  else {
    uVar7 = *(int *)(iVar2 + 0x24) - (iVar3 + 0x68);
    iVar8 = (int)uVar7 >> 0x1f;
  }
  iVar8 = iVar8 - (uint)(uVar7 < param_1);
  *(uint *)(iVar5 + 0x10) = uVar7 - param_1;
  *(int *)(iVar5 + 0x14) = iVar8;
  if (*(int *)(iVar5 + 0x44) != 0) {
    if (*(int *)(iVar2 + 0x24) == *(int *)(iVar2 + 0x20)) {
      *(byte *)(iVar2 + 0x40) = *(byte *)(iVar2 + 0x40) | 2;
    }
    uVar4 = *(int *)(iVar2 + 0x24) + *(uint *)(iVar2 + 0x30) & ~*(uint *)(iVar2 + 0x30);
    uVar7 = *(uint *)(iVar2 + 0x28);
    *(uint *)(iVar2 + 0x24) = uVar4;
    if (uVar7 - *(int *)(iVar2 + 0x1c) < uVar4 - *(int *)(iVar2 + 0x1c)) {
      *(uint *)(iVar2 + 0x24) = uVar7;
      uVar4 = uVar7;
    }
    *(uint *)(iVar2 + 0x20) = uVar4;
    iVar5 = FUN_000246e0(iVar2 + 0x18);
    *piVar1 = iVar5;
    uVar6 = FUN_000264f0(iVar5 + 0x38);
    *(undefined4 *)(iVar5 + 0x34) = uVar6;
    uVar6 = *(undefined4 *)(&DAT_00065112 + unaff_EBP);
    iVar5 = *piVar1;
    *(int *)(iVar3 + 0x30) = iVar5;
    *(int *)(iVar2 + 4) = iVar5;
    *(undefined4 *)(iVar5 + 0x3c) = uVar6;
    if (iVar5 == *(int *)(*(int *)(&DAT_000651e2 + unaff_EBP) + 4)) {
      *(undefined4 *)(iVar5 + 0x30) = 0;
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_0002be80(unaff_EBP + 0x3a2a5,0xc6,&UNK_0003a2ee + unaff_EBP,iVar5);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0002be80(unaff_EBP + 0x3a2a5,0xaa,&UNK_0003a2ee + unaff_EBP,iVar8);
}

