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

void unifontsel_draw_preview_text(unifontsel_internal *fs)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  void *pvVar4;
  int iVar5;
  uint uVar6;
  unifontsel_internal *fs_00;
  GtkWidget *pGVar7;
  unifontsel_internal *t;
  unifontsel_internal *puVar8;
  GtkListStore *unaff_s1;
  int index;
  int iVar9;
  uint uVar10;
  int iVar11;
  int in_t9;
  code *pcVar12;
  code *pcVar13;
  int iStack_c0;
  GtkListStore *pGStack_a4;
  unifontsel_internal *puStack_a0;
  GtkListStore *pGStack_9c;
  unifont_drawctx dctx;
  
  iVar1 = **(int **)(&DAT_00052a78 + in_t9);
  fs_00 = (unifontsel_internal *)fs->preview_area;
  iVar2 = (**(code **)(&DAT_00052a30 + in_t9))();
  if (iVar2 != 0) {
    dctx.type = ADDRTYPE_UNSPEC;
    uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();
    dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);
    dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);
    unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);
    dctx.u.cairo.drawctx =
         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);
    dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);
    (**(code **)(&DAT_000525ac + in_t9))(unaff_s1);
    unifontsel_draw_preview_text_inner(&dctx,fs);
    if (dctx.type == ADDRTYPE_UNSPEC) {
      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);
      pGVar7 = fs->preview_area;
    }
    else {
      pGVar7 = fs->preview_area;
    }
    fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);
    (**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);
  }
  if (iVar1 == **(int **)(&DAT_00052a78 + in_t9)) {
    return;
  }
  pcVar12 = *(code **)(&DAT_00052718 + in_t9);
  (*pcVar12)();
  pGStack_a4 = (GtkListStore *)**(int **)(pcVar12 + 0x528e4);
  fs_00->inhibit_response = 1;
  puStack_a0 = fs;
  pGStack_9c = unaff_s1;
  (**(code **)(pcVar12 + 0x52270))(fs_00->family_model);
  uVar10 = 0xffffffff;
  iVar9 = 0;
  iVar1 = -1;
  iStack_c0 = -1;
  iVar11 = 0;
  index = 0;
  iVar2 = *(int *)(pcVar12 + 0x51ecc);
  do {
    t = (unifontsel_internal *)fs_00->fonts_by_selorder;
    pvVar4 = index234((tree234 *)t,index);
    puVar8 = (unifontsel_internal *)&stack0xffffff4c;
    if (pvVar4 == (void *)0x0) {
      if (iVar9 == 0) {
LAB_0006b954:
        if ((fs_00->selected == (fontinfo *)0x0) ||
           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {
          fs_00->inhibit_response = 0;
        }
        else {
          fs_00->selected = (fontinfo *)0x0;
          (*pcVar13)(fs_00->style_model);
          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);
          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);
          puVar8 = (unifontsel_internal *)0x0;
          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);
          t = fs_00;
          unifontsel_draw_preview_text(fs_00);
          fs_00->inhibit_response = 0;
        }
        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {
          pcVar12 = *(code **)(pcVar12 + 0x52584);
          (*pcVar12)();
          iVar1 = (**(code **)(pcVar12 + 0x51f74))();
          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);
          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);
          if (iVar1 == 0) {
            uVar6 = puVar8->filter_flags;
            uVar10 = ~uVar10 & uVar6;
          }
          else {
            uVar10 = uVar10 | puVar8->filter_flags;
            uVar6 = puVar8->filter_flags;
          }
          if (uVar6 != uVar10) {
            puVar8->filter_flags = uVar10;
            unifontsel_setup_familylist(puVar8);
          }
          return;
        }
        return;
      }
LAB_0006b9b8:
      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);
      t = (unifontsel_internal *)fs_00->family_model;
      (**(code **)(pcVar12 + 0x5296c))
                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,
                 0xffffffff);
      iVar11 = iVar11 + 1;
      if (pvVar4 == (void *)0x0) goto LAB_0006b954;
LAB_0006ba18:
      iVar9 = *(int *)((int)pvVar4 + 4);
      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;
      *(int *)((int)pvVar4 + 0x20) = iVar11;
      iVar1 = index;
      iStack_c0 = index;
    }
    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {
      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));
      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {
        if (iVar9 != 0) goto LAB_0006b9b8;
        goto LAB_0006ba18;
      }
      *(int *)((int)pvVar4 + 0x20) = iVar11;
      iVar1 = index;
    }
    else {
      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;
    }
    index = index + 1;
  } while( true );
}



void FUN_0006b69c(int param_1)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined1 *puVar8;
  undefined4 unaff_s1;
  int iVar9;
  int iVar10;
  uint uVar11;
  int iVar12;
  undefined *puVar13;
  code *pcVar14;
  int iStack_c0;
  undefined1 auStack_b4 [16];
  int iStack_a4;
  int iStack_a0;
  undefined4 uStack_9c;
  int local_60 [2];
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_20;
  undefined4 local_1c;
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_000be114;
  iVar6 = *(int *)(param_1 + 0x40);
  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();
  if (iVar1 != 0) {
    local_60[0] = 0;
    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();
    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)
                         (*(undefined4 *)(param_1 + 0x40),uVar2);
    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);
    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);
    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);
    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);
    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);
    FUN_0006b050(local_60,param_1);
    if (local_60[0] == 0) {
      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);
      uVar2 = *(undefined4 *)(param_1 + 0x40);
    }
    else {
      uVar2 = *(undefined4 *)(param_1 + 0x40);
    }
    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);
    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);
  }
  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {
    return;
  }
  puVar13 = PTR___stack_chk_fail_000bddb4;
  (*(code *)PTR___stack_chk_fail_000bddb4)();
  iStack_a4 = **(int **)(puVar13 + 0x528e4);
  *(undefined4 *)(iVar6 + 0x7c) = 1;
  iStack_a0 = param_1;
  uStack_9c = unaff_s1;
  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));
  uVar11 = 0xffffffff;
  iVar10 = 0;
  iVar1 = -1;
  iStack_c0 = -1;
  iVar12 = 0;
  iVar9 = 0;
  iVar3 = *(int *)(puVar13 + 0x51ecc);
  do {
    iVar7 = *(int *)(iVar6 + 0x6c);
    iVar4 = index234(iVar7,iVar9);
    puVar8 = auStack_b4;
    if (iVar4 == 0) {
      if (iVar10 == 0) {
LAB_0006b954:
        if ((*(int *)(iVar6 + 0x70) == 0) ||
           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))
        {
          *(undefined4 *)(iVar6 + 0x7c) = 0;
        }
        else {
          *(undefined4 *)(iVar6 + 0x70) = 0;
          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));
          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));
          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);
          puVar8 = (undefined1 *)0x0;
          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));
          iVar7 = iVar6;
          FUN_0006b69c(iVar6);
          *(undefined4 *)(iVar6 + 0x7c) = 0;
        }
        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {
          pcVar14 = *(code **)(puVar13 + 0x52584);
          (*pcVar14)();
          iVar1 = (**(code **)(pcVar14 + 0x51f74))();
          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);
          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);
          if (iVar1 == 0) {
            uVar5 = *(uint *)(puVar8 + 100);
            uVar11 = ~uVar11 & uVar5;
          }
          else {
            uVar11 = uVar11 | *(uint *)(puVar8 + 100);
            uVar5 = *(uint *)(puVar8 + 100);
          }
          if (uVar5 != uVar11) {
            *(uint *)(puVar8 + 100) = uVar11;
            FUN_0006b830(puVar8);
          }
          return;
        }
        return;
      }
LAB_0006b9b8:
      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);
      iVar7 = *(int *)(iVar6 + 0x10);
      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)
      ;
      iVar12 = iVar12 + 1;
      if (iVar4 == 0) goto LAB_0006b954;
LAB_0006ba18:
      iVar10 = *(int *)(iVar4 + 4);
      uVar11 = *(uint *)(iVar4 + 0x18) & 7;
      *(int *)(iVar4 + 0x20) = iVar12;
      iVar1 = iVar9;
      iStack_c0 = iVar9;
    }
    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {
      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));
      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {
        if (iVar10 != 0) goto LAB_0006b9b8;
        goto LAB_0006ba18;
      }
      *(int *)(iVar4 + 0x20) = iVar12;
      iVar1 = iVar9;
    }
    else {
      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;
    }
    iVar9 = iVar9 + 1;
  } while( true );
}


lui gp,0x6
addiu gp,gp,-0x64cc
addu gp,gp,t9
addiu sp,sp,-0x78
sw ra,0x74(sp)
sw s1,0x70(sp)
sw s0,0x6c(sp)
sw gp,0x10(sp)
or s0,a0,zero
lw v0,-0x70bc(gp)
lw v0,0x0(v0)
sw v0,0x64(sp)
lw a0,0x40(a0)
lw t9,-0x7104(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0006b7e4
_lw t9,-0x70d0(gp)
sw zero,0x18(sp)
jalr t9
_nop
lw gp,0x10(sp)
or a1,v0,zero
lw a0,0x40(s0)
lw t9,-0x70e8(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x20(sp)
or a0,v0,zero
lw t9,-0x7104(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x58(sp)
or a0,v0,zero
lw t9,-0x7444(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s1,v0,zero
or a1,v0,zero
lw a0,0x58(sp)
lw t9,-0x73f8(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x5c(sp)
or a0,v0,zero
lw t9,-0x7178(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x24(sp)
or a0,s1,zero
lw t9,-0x7588(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a1,s0,zero
addiu a0,sp,0x18
lw t9,-0x79f4(gp)
addiu t9,t9,-0x4fb0
bal 0x0006b050
_nop
lw gp,0x10(sp)
lw v0,0x18(sp)
beq v0,zero,0x0006b808
_lw a1,0x5c(sp)
lw a0,0x40(s0)
lw t9,-0x7104(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a2,zero,zero
or a1,zero,zero
or a0,v0,zero
lw t9,-0x75c4(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v1,0x64(sp)
lw v0,-0x70bc(gp)
lw v0,0x0(v0)
bne v1,v0,0x0006b824
_lw ra,0x74(sp)
lw s1,0x70(sp)
lw s0,0x6c(sp)
jr ra
_addiu sp,sp,0x78
lw a0,0x58(sp)
lw t9,-0x7484(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0006b7b8
_lw a0,0x40(s0)
lw t9,-0x741c(gp)
jalr t9
_nop
(translation_unit "void FUN_0006b69c(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}\n\n" (function_definition "void FUN_0006b69c(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}" primitive_type (function_declarator "FUN_0006b69c(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 unaff_s1;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "undefined1 auStack_b4 [16];" type_identifier (array_declarator "auStack_b4 [16]" identifier [ number_literal ]) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "int local_60 [2];" primitive_type (array_declarator "local_60 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000be114" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x40);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x40)" identifier = (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();" (assignment_expression "iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)()" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)()" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" * (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }" { (expression_statement "local_60[0] = 0;" (assignment_expression "local_60[0] = 0" (subscript_expression "local_60[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();" (assignment_expression "uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)()" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_type_000be100)()" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_type_000be100)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_type_000be100" * (cast_expression "(code *)PTR_gtk_widget_get_type_000be100" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);" (assignment_expression "local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2)" identifier = (call_expression "(*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2)" (parenthesized_expression "(*(code *)PTR_g_type_check_instance_cast_000be0e8)" ( (pointer_expression "*(code *)PTR_g_type_check_instance_cast_000be0e8" * (cast_expression "(code *)PTR_g_type_check_instance_cast_000be0e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x40),uVar2)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);" (assignment_expression "local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58)" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58)" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" * (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);" (assignment_expression "unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20)" identifier = (call_expression "(*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20)" (parenthesized_expression "(*(code *)PTR_gdk_window_get_clip_region_000bdd8c)" ( (pointer_expression "*(code *)PTR_gdk_window_get_clip_region_000bdd8c" * (cast_expression "(code *)PTR_gdk_window_get_clip_region_000bdd8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);" (assignment_expression "local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1)" identifier = (call_expression "(*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1)" (parenthesized_expression "(*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)" ( (pointer_expression "*(code *)PTR_gdk_window_begin_draw_frame_000bddd8" * (cast_expression "(code *)PTR_gdk_window_begin_draw_frame_000bddd8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20,unaff_s1)" ( identifier , identifier )))) ;) (expression_statement "local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);" (assignment_expression "local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c)" identifier = (call_expression "(*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c)" (parenthesized_expression "(*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)" ( (pointer_expression "*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058" * (cast_expression "(code *)PTR_gdk_drawing_context_get_cairo_context_000be058" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_1c)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);" (call_expression "(*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_cairo_region_destroy_000bdc48)" ( (pointer_expression "*(code *)PTR_cairo_region_destroy_000bdc48" * (cast_expression "(code *)PTR_cairo_region_destroy_000bdc48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "FUN_0006b050(local_60,param_1);" (call_expression "FUN_0006b050(local_60,param_1)" identifier (argument_list "(local_60,param_1)" ( identifier , identifier ))) ;) (if_statement "if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" if (parenthesized_expression "(local_60[0] == 0)" ( (binary_expression "local_60[0] == 0" (subscript_expression "local_60[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" { (expression_statement "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);" (call_expression "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c)" (parenthesized_expression "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)" ( (pointer_expression "*(code *)PTR_gdk_window_end_draw_frame_000bdd4c" * (cast_expression "(code *)PTR_gdk_window_end_draw_frame_000bdd4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20,local_1c)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" else (compound_statement "{\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" { (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);" (assignment_expression "iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2)" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2)" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" * (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);" (call_expression "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0)" (parenthesized_expression "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)" ( (pointer_expression "*(code *)PTR_gdk_window_invalidate_rect_000bdc0c" * (cast_expression "(code *)PTR_gdk_window_invalidate_rect_000bdc0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,0,0)" ( identifier , number_literal , number_literal ))) ;) })) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000be114)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000be114" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar13 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000bddb4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" * (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_a4 = **(int **)(puVar13 + 0x528e4);" (assignment_expression "iStack_a4 = **(int **)(puVar13 + 0x528e4)" identifier = (pointer_expression "**(int **)(puVar13 + 0x528e4)" * (pointer_expression "*(int **)(puVar13 + 0x528e4)" * (cast_expression "(int **)(puVar13 + 0x528e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x528e4)" ( (binary_expression "puVar13 + 0x528e4" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" * (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iStack_a0 = param_1;" (assignment_expression "iStack_a0 = param_1" identifier = identifier) ;) (expression_statement "uStack_9c = unaff_s1;" (assignment_expression "uStack_9c = unaff_s1" identifier = identifier) ;) (expression_statement "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));" (call_expression "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10))" (parenthesized_expression "(**(code **)(puVar13 + 0x52270))" ( (pointer_expression "**(code **)(puVar13 + 0x52270)" * (pointer_expression "*(code **)(puVar13 + 0x52270)" * (cast_expression "(code **)(puVar13 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52270)" ( (binary_expression "puVar13 + 0x52270" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) (expression_statement "iStack_c0 = -1;" (assignment_expression "iStack_c0 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *(int *)(puVar13 + 0x51ecc);" (assignment_expression "iVar3 = *(int *)(puVar13 + 0x51ecc)" identifier = (pointer_expression "*(int *)(puVar13 + 0x51ecc)" * (cast_expression "(int *)(puVar13 + 0x51ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x51ecc)" ( (binary_expression "puVar13 + 0x51ecc" identifier + number_literal) ))))) ;) (do_statement "do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );" do (compound_statement "{\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  }" { (expression_statement "iVar7 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x6c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = index234(iVar7,iVar9);" (assignment_expression "iVar4 = index234(iVar7,iVar9)" identifier = (call_expression "index234(iVar7,iVar9)" identifier (argument_list "(iVar7,iVar9)" ( identifier , identifier )))) ;) (expression_statement "puVar8 = auStack_b4;" (assignment_expression "puVar8 = auStack_b4" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }" { (if_statement "if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }" { (labeled_statement "LAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" statement_identifier : (if_statement "if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" if (parenthesized_expression "((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))" ( (binary_expression "(*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20))" (parenthesized_expression "(*(int *)(iVar6 + 0x70) == 0)" ( (binary_expression "*(int *)(iVar6 + 0x70) == 0" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20))" ( (comma_expression "pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x52270)" identifier = (pointer_expression "*(code **)(puVar13 + 0x52270)" * (cast_expression "(code **)(puVar13 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52270)" ( (binary_expression "puVar13 + 0x52270" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)" number_literal < (pointer_expression "*(int *)(*(int *)(iVar6 + 0x70) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x70) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x70) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x70) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" { (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" * (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" { (expression_statement "*(undefined4 *)(iVar6 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x70)" * (cast_expression "(undefined4 *)(iVar6 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar14)(*(undefined4 *)(iVar6 + 0x14));" (call_expression "(*pcVar14)(*(undefined4 *)(iVar6 + 0x14))" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(*(undefined4 *)(iVar6 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));" (call_expression "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18))" (parenthesized_expression "(**(code **)(puVar13 + 0x52270))" ( (pointer_expression "**(code **)(puVar13 + 0x52270)" * (pointer_expression "*(code **)(puVar13 + 0x52270)" * (cast_expression "(code **)(puVar13 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52270)" ( (binary_expression "puVar13 + 0x52270" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);" (call_expression "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0)" (parenthesized_expression "(**(code **)(puVar13 + 0x52208))" ( (pointer_expression "**(code **)(puVar13 + 0x52208)" * (pointer_expression "*(code **)(puVar13 + 0x52208)" * (cast_expression "(code **)(puVar13 + 0x52208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52208)" ( (binary_expression "puVar13 + 0x52208" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 8),0)" ( (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));" (call_expression "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24))" (parenthesized_expression "(**(code **)(puVar13 + 0x52208))" ( (pointer_expression "**(code **)(puVar13 + 0x52208)" * (pointer_expression "*(code **)(puVar13 + 0x52208)" * (cast_expression "(code **)(puVar13 + 0x52208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52208)" ( (binary_expression "puVar13 + 0x52208" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x24))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x24)" * (cast_expression "(undefined4 *)(iVar6 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x24)" ( (binary_expression "iVar6 + 0x24" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) (expression_statement "FUN_0006b69c(iVar6);" (call_expression "FUN_0006b69c(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" * (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) = number_literal) ;) })))) (if_statement "if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }" if (parenthesized_expression "(iStack_a4 != **(int **)(puVar13 + 0x528e4))" ( (binary_expression "iStack_a4 != **(int **)(puVar13 + 0x528e4)" identifier != (pointer_expression "**(int **)(puVar13 + 0x528e4)" * (pointer_expression "*(int **)(puVar13 + 0x528e4)" * (cast_expression "(int **)(puVar13 + 0x528e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x528e4)" ( (binary_expression "puVar13 + 0x528e4" identifier + number_literal) )))))) )) (compound_statement "{\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }" { (expression_statement "pcVar14 = *(code **)(puVar13 + 0x52584);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x52584)" identifier = (pointer_expression "*(code **)(puVar13 + 0x52584)" * (cast_expression "(code **)(puVar13 + 0x52584)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52584)" ( (binary_expression "puVar13 + 0x52584" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = (**(code **)(pcVar14 + 0x51f74))();" (assignment_expression "iVar1 = (**(code **)(pcVar14 + 0x51f74))()" identifier = (call_expression "(**(code **)(pcVar14 + 0x51f74))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x51f74))" ( (pointer_expression "**(code **)(pcVar14 + 0x51f74)" * (pointer_expression "*(code **)(pcVar14 + 0x51f74)" * (cast_expression "(code **)(pcVar14 + 0x51f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x51f74)" ( (binary_expression "pcVar14 + 0x51f74" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);" (assignment_expression "uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50)" identifier = (call_expression "(**(code **)(pcVar14 + 0x5263c))(iVar7,0x50)" (parenthesized_expression "(**(code **)(pcVar14 + 0x5263c))" ( (pointer_expression "**(code **)(pcVar14 + 0x5263c)" * (pointer_expression "*(code **)(pcVar14 + 0x5263c)" * (cast_expression "(code **)(pcVar14 + 0x5263c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x5263c)" ( (binary_expression "pcVar14 + 0x5263c" identifier + number_literal) ))))) )) (argument_list "(iVar7,0x50)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);" (assignment_expression "uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" identifier = (call_expression "(**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" (parenthesized_expression "(**(code **)(pcVar14 + 0x51fcc))" ( (pointer_expression "**(code **)(pcVar14 + 0x51fcc)" * (pointer_expression "*(code **)(pcVar14 + 0x51fcc)" * (cast_expression "(code **)(pcVar14 + 0x51fcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x51fcc)" ( (binary_expression "pcVar14 + 0x51fcc" identifier + number_literal) ))))) )) (argument_list "(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x517bc) + 0x3b80" (pointer_expression "*(int *)(pcVar14 + 0x517bc)" * (cast_expression "(int *)(pcVar14 + 0x517bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x517bc)" ( (binary_expression "pcVar14 + 0x517bc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }" { (expression_statement "uVar5 = *(uint *)(puVar8 + 100);" (assignment_expression "uVar5 = *(uint *)(puVar8 + 100)" identifier = (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = ~uVar11 & uVar5;" (assignment_expression "uVar11 = ~uVar11 & uVar5" identifier = (binary_expression "~uVar11 & uVar5" (unary_expression "~uVar11" ~ identifier) & identifier)) ;) }) (else_clause "else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" else (compound_statement "{\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" { (expression_statement "uVar11 = uVar11 | *(uint *)(puVar8 + 100);" (assignment_expression "uVar11 = uVar11 | *(uint *)(puVar8 + 100)" identifier = (binary_expression "uVar11 | *(uint *)(puVar8 + 100)" identifier | (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = *(uint *)(puVar8 + 100);" (assignment_expression "uVar5 = *(uint *)(puVar8 + 100)" identifier = (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }" if (parenthesized_expression "(uVar5 != uVar11)" ( (binary_expression "uVar5 != uVar11" identifier != identifier) )) (compound_statement "{\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }" { (expression_statement "*(uint *)(puVar8 + 100) = uVar11;" (assignment_expression "*(uint *)(puVar8 + 100) = uVar11" (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0006b830(puVar8);" (call_expression "FUN_0006b830(puVar8)" identifier (argument_list "(puVar8)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);" statement_identifier : (expression_statement "(**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);" (call_expression "(**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4)" (parenthesized_expression "(**(code **)(puVar13 + 0x524ec))" ( (pointer_expression "**(code **)(puVar13 + 0x524ec)" * (pointer_expression "*(code **)(puVar13 + 0x524ec)" * (cast_expression "(code **)(puVar13 + 0x524ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x524ec)" ( (binary_expression "puVar13 + 0x524ec" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x10),auStack_b4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) , identifier ))) ;)) (expression_statement "iVar7 = *(int *)(iVar6 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;" (call_expression "(**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)" (parenthesized_expression "(**(code **)(puVar13 + 0x5296c))" ( (pointer_expression "**(code **)(puVar13 + 0x5296c)" * (pointer_expression "*(code **)(puVar13 + 0x5296c)" * (cast_expression "(code **)(puVar13 + 0x5296c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x5296c)" ( (binary_expression "puVar13 + 0x5296c" identifier + number_literal) ))))) )) (argument_list "(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , number_literal , (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) goto LAB_0006b954;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006b954;" goto statement_identifier ;)) (labeled_statement "LAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);" statement_identifier : (expression_statement "iVar10 = *(int *)(iVar4 + 4);" (assignment_expression "iVar10 = *(int *)(iVar4 + 4)" identifier = (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;)) (expression_statement "uVar11 = *(uint *)(iVar4 + 0x18) & 7;" (assignment_expression "uVar11 = *(uint *)(iVar4 + 0x18) & 7" identifier = (binary_expression "*(uint *)(iVar4 + 0x18) & 7" (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(int *)(iVar4 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar4 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) (expression_statement "iStack_c0 = iVar9;" (assignment_expression "iStack_c0 = iVar9" identifier = identifier) ;) }) (else_clause "else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" else (if_statement "if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" if (parenthesized_expression "((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0)" ( (binary_expression "(~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0" (parenthesized_expression "(~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18))" ( (binary_expression "~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)" (unary_expression "~*(uint *)(iVar6 + 100)" ~ (pointer_expression "*(uint *)(iVar6 + 100)" * (cast_expression "(uint *)(iVar6 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 100)" ( (binary_expression "iVar6 + 100" identifier + number_literal) ))))) & (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }" { (expression_statement "iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));" (assignment_expression "iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4))" identifier = (call_expression "(*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4))" (parenthesized_expression "(*(code *)(iVar3 + 0x71a4))" ( (pointer_expression "*(code *)(iVar3 + 0x71a4)" * (cast_expression "(code *)(iVar3 + 0x71a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x71a4)" ( (binary_expression "iVar3 + 0x71a4" identifier + number_literal) )))) )) (argument_list "(iVar10,*(undefined4 *)(iVar4 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" if (parenthesized_expression "((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11))" ( (binary_expression "(iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar4 + 0x18) & 7) != uVar11)" ( (binary_expression "(*(uint *)(iVar4 + 0x18) & 7) != uVar11" (parenthesized_expression "(*(uint *)(iVar4 + 0x18) & 7)" ( (binary_expression "*(uint *)(iVar4 + 0x18) & 7" (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) & number_literal) )) != identifier) ))) )) (compound_statement "{\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" { (if_statement "if (iVar10 != 0) goto LAB_0006b9b8;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006b9b8;" goto statement_identifier ;)) (goto_statement "goto LAB_0006ba18;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar4 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar4 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" else (compound_statement "{\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" { (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = number_literal) ;) }))))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid unifontsel_draw_preview_text(unifontsel_internal *fs)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  unifontsel_internal *fs_00;\n  GtkWidget *pGVar7;\n  unifontsel_internal *t;\n  unifontsel_internal *puVar8;\n  GtkListStore *unaff_s1;\n  int index;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  code *pcVar13;\n  int iStack_c0;\n  GtkListStore *pGStack_a4;\n  unifontsel_internal *puStack_a0;\n  GtkListStore *pGStack_9c;\n  unifont_drawctx dctx;\n  \n  iVar1 = **(int **)(&DAT_00052a78 + in_t9);\n  fs_00 = (unifontsel_internal *)fs->preview_area;\n  iVar2 = (**(code **)(&DAT_00052a30 + in_t9))();\n  if (iVar2 != 0) {\n    dctx.type = ADDRTYPE_UNSPEC;\n    uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();\n    dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);\n    dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);\n    unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);\n    dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);\n    dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);\n    (**(code **)(&DAT_000525ac + in_t9))(unaff_s1);\n    unifontsel_draw_preview_text_inner(&dctx,fs);\n    if (dctx.type == ADDRTYPE_UNSPEC) {\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }\n    else {\n      pGVar7 = fs->preview_area;\n    }\n    fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);\n    (**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);\n  }\n  if (iVar1 == **(int **)(&DAT_00052a78 + in_t9)) {\n    return;\n  }\n  pcVar12 = *(code **)(&DAT_00052718 + in_t9);\n  (*pcVar12)();\n  pGStack_a4 = (GtkListStore *)**(int **)(pcVar12 + 0x528e4);\n  fs_00->inhibit_response = 1;\n  puStack_a0 = fs;\n  pGStack_9c = unaff_s1;\n  (**(code **)(pcVar12 + 0x52270))(fs_00->family_model);\n  uVar10 = 0xffffffff;\n  iVar9 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar11 = 0;\n  index = 0;\n  iVar2 = *(int *)(pcVar12 + 0x51ecc);\n  do {\n    t = (unifontsel_internal *)fs_00->fonts_by_selorder;\n    pvVar4 = index234((tree234 *)t,index);\n    puVar8 = (unifontsel_internal *)&stack0xffffff4c;\n    if (pvVar4 == (void *)0x0) {\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }\n    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }\n    index = index + 1;\n  } while( true );\n}\n\n" comment (function_definition "void unifontsel_draw_preview_text(unifontsel_internal *fs)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  unifontsel_internal *fs_00;\n  GtkWidget *pGVar7;\n  unifontsel_internal *t;\n  unifontsel_internal *puVar8;\n  GtkListStore *unaff_s1;\n  int index;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  code *pcVar13;\n  int iStack_c0;\n  GtkListStore *pGStack_a4;\n  unifontsel_internal *puStack_a0;\n  GtkListStore *pGStack_9c;\n  unifont_drawctx dctx;\n  \n  iVar1 = **(int **)(&DAT_00052a78 + in_t9);\n  fs_00 = (unifontsel_internal *)fs->preview_area;\n  iVar2 = (**(code **)(&DAT_00052a30 + in_t9))();\n  if (iVar2 != 0) {\n    dctx.type = ADDRTYPE_UNSPEC;\n    uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();\n    dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);\n    dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);\n    unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);\n    dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);\n    dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);\n    (**(code **)(&DAT_000525ac + in_t9))(unaff_s1);\n    unifontsel_draw_preview_text_inner(&dctx,fs);\n    if (dctx.type == ADDRTYPE_UNSPEC) {\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }\n    else {\n      pGVar7 = fs->preview_area;\n    }\n    fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);\n    (**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);\n  }\n  if (iVar1 == **(int **)(&DAT_00052a78 + in_t9)) {\n    return;\n  }\n  pcVar12 = *(code **)(&DAT_00052718 + in_t9);\n  (*pcVar12)();\n  pGStack_a4 = (GtkListStore *)**(int **)(pcVar12 + 0x528e4);\n  fs_00->inhibit_response = 1;\n  puStack_a0 = fs;\n  pGStack_9c = unaff_s1;\n  (**(code **)(pcVar12 + 0x52270))(fs_00->family_model);\n  uVar10 = 0xffffffff;\n  iVar9 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar11 = 0;\n  index = 0;\n  iVar2 = *(int *)(pcVar12 + 0x51ecc);\n  do {\n    t = (unifontsel_internal *)fs_00->fonts_by_selorder;\n    pvVar4 = index234((tree234 *)t,index);\n    puVar8 = (unifontsel_internal *)&stack0xffffff4c;\n    if (pvVar4 == (void *)0x0) {\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }\n    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }\n    index = index + 1;\n  } while( true );\n}" primitive_type (function_declarator "unifontsel_draw_preview_text(unifontsel_internal *fs)" identifier (parameter_list "(unifontsel_internal *fs)" ( (parameter_declaration "unifontsel_internal *fs" type_identifier (pointer_declarator "*fs" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  unifontsel_internal *fs_00;\n  GtkWidget *pGVar7;\n  unifontsel_internal *t;\n  unifontsel_internal *puVar8;\n  GtkListStore *unaff_s1;\n  int index;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  code *pcVar13;\n  int iStack_c0;\n  GtkListStore *pGStack_a4;\n  unifontsel_internal *puStack_a0;\n  GtkListStore *pGStack_9c;\n  unifont_drawctx dctx;\n  \n  iVar1 = **(int **)(&DAT_00052a78 + in_t9);\n  fs_00 = (unifontsel_internal *)fs->preview_area;\n  iVar2 = (**(code **)(&DAT_00052a30 + in_t9))();\n  if (iVar2 != 0) {\n    dctx.type = ADDRTYPE_UNSPEC;\n    uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();\n    dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);\n    dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);\n    unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);\n    dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);\n    dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);\n    (**(code **)(&DAT_000525ac + in_t9))(unaff_s1);\n    unifontsel_draw_preview_text_inner(&dctx,fs);\n    if (dctx.type == ADDRTYPE_UNSPEC) {\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }\n    else {\n      pGVar7 = fs->preview_area;\n    }\n    fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);\n    (**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);\n  }\n  if (iVar1 == **(int **)(&DAT_00052a78 + in_t9)) {\n    return;\n  }\n  pcVar12 = *(code **)(&DAT_00052718 + in_t9);\n  (*pcVar12)();\n  pGStack_a4 = (GtkListStore *)**(int **)(pcVar12 + 0x528e4);\n  fs_00->inhibit_response = 1;\n  puStack_a0 = fs;\n  pGStack_9c = unaff_s1;\n  (**(code **)(pcVar12 + 0x52270))(fs_00->family_model);\n  uVar10 = 0xffffffff;\n  iVar9 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar11 = 0;\n  index = 0;\n  iVar2 = *(int *)(pcVar12 + 0x51ecc);\n  do {\n    t = (unifontsel_internal *)fs_00->fonts_by_selorder;\n    pvVar4 = index234((tree234 *)t,index);\n    puVar8 = (unifontsel_internal *)&stack0xffffff4c;\n    if (pvVar4 == (void *)0x0) {\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }\n    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }\n    index = index + 1;\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "unifontsel_internal *fs_00;" type_identifier (pointer_declarator "*fs_00" * identifier) ;) (declaration "GtkWidget *pGVar7;" type_identifier (pointer_declarator "*pGVar7" * identifier) ;) (declaration "unifontsel_internal *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "unifontsel_internal *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "GtkListStore *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int index;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "GtkListStore *pGStack_a4;" type_identifier (pointer_declarator "*pGStack_a4" * identifier) ;) (declaration "unifontsel_internal *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "GtkListStore *pGStack_9c;" type_identifier (pointer_declarator "*pGStack_9c" * identifier) ;) (declaration "unifont_drawctx dctx;" type_identifier identifier ;) (expression_statement "iVar1 = **(int **)(&DAT_00052a78 + in_t9);" (assignment_expression "iVar1 = **(int **)(&DAT_00052a78 + in_t9)" identifier = (pointer_expression "**(int **)(&DAT_00052a78 + in_t9)" * (pointer_expression "*(int **)(&DAT_00052a78 + in_t9)" * (cast_expression "(int **)(&DAT_00052a78 + in_t9)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a78 + in_t9)" ( (binary_expression "&DAT_00052a78 + in_t9" (pointer_expression "&DAT_00052a78" & identifier) + identifier) )))))) ;) (expression_statement "fs_00 = (unifontsel_internal *)fs->preview_area;" (assignment_expression "fs_00 = (unifontsel_internal *)fs->preview_area" identifier = (cast_expression "(unifontsel_internal *)fs->preview_area" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fs->preview_area" identifier -> field_identifier))) ;) (expression_statement "iVar2 = (**(code **)(&DAT_00052a30 + in_t9))();" (assignment_expression "iVar2 = (**(code **)(&DAT_00052a30 + in_t9))()" identifier = (call_expression "(**(code **)(&DAT_00052a30 + in_t9))()" (parenthesized_expression "(**(code **)(&DAT_00052a30 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00052a30 + in_t9)" * (pointer_expression "*(code **)(&DAT_00052a30 + in_t9)" * (cast_expression "(code **)(&DAT_00052a30 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a30 + in_t9)" ( (binary_expression "&DAT_00052a30 + in_t9" (pointer_expression "&DAT_00052a30" & identifier) + identifier) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n    dctx.type = ADDRTYPE_UNSPEC;\n    uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();\n    dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);\n    dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);\n    unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);\n    dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);\n    dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);\n    (**(code **)(&DAT_000525ac + in_t9))(unaff_s1);\n    unifontsel_draw_preview_text_inner(&dctx,fs);\n    if (dctx.type == ADDRTYPE_UNSPEC) {\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }\n    else {\n      pGVar7 = fs->preview_area;\n    }\n    fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);\n    (**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    dctx.type = ADDRTYPE_UNSPEC;\n    uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();\n    dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);\n    dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);\n    unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);\n    dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);\n    dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);\n    (**(code **)(&DAT_000525ac + in_t9))(unaff_s1);\n    unifontsel_draw_preview_text_inner(&dctx,fs);\n    if (dctx.type == ADDRTYPE_UNSPEC) {\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }\n    else {\n      pGVar7 = fs->preview_area;\n    }\n    fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);\n    (**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);\n  }" { (expression_statement "dctx.type = ADDRTYPE_UNSPEC;" (assignment_expression "dctx.type = ADDRTYPE_UNSPEC" (field_expression "dctx.type" identifier . field_identifier) = identifier) ;) (expression_statement "uVar3 = (**(code **)(&DAT_00052a64 + in_t9))();" (assignment_expression "uVar3 = (**(code **)(&DAT_00052a64 + in_t9))()" identifier = (call_expression "(**(code **)(&DAT_00052a64 + in_t9))()" (parenthesized_expression "(**(code **)(&DAT_00052a64 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00052a64 + in_t9)" * (pointer_expression "*(code **)(&DAT_00052a64 + in_t9)" * (cast_expression "(code **)(&DAT_00052a64 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a64 + in_t9)" ( (binary_expression "&DAT_00052a64 + in_t9" (pointer_expression "&DAT_00052a64" & identifier) + identifier) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3);" (assignment_expression "dctx.u.cairo.widget = (GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3)" (field_expression "dctx.u.cairo.widget" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(GtkWidget *)(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3)" ( (type_descriptor "GtkWidget *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&DAT_00052a4c + in_t9))(fs->preview_area,uVar3)" (parenthesized_expression "(**(code **)(&DAT_00052a4c + in_t9))" ( (pointer_expression "**(code **)(&DAT_00052a4c + in_t9)" * (pointer_expression "*(code **)(&DAT_00052a4c + in_t9)" * (cast_expression "(code **)(&DAT_00052a4c + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a4c + in_t9)" ( (binary_expression "&DAT_00052a4c + in_t9" (pointer_expression "&DAT_00052a4c" & identifier) + identifier) ))))) )) (argument_list "(fs->preview_area,uVar3)" ( (field_expression "fs->preview_area" identifier -> field_identifier) , identifier ))))) ;) (expression_statement "dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget);" (assignment_expression "dctx.u.cairo.gdkwin = (GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget)" (field_expression "dctx.u.cairo.gdkwin" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(GdkWindow *)(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget)" ( (type_descriptor "GdkWindow *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&DAT_00052a30 + in_t9))(dctx.u.cairo.widget)" (parenthesized_expression "(**(code **)(&DAT_00052a30 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00052a30 + in_t9)" * (pointer_expression "*(code **)(&DAT_00052a30 + in_t9)" * (cast_expression "(code **)(&DAT_00052a30 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a30 + in_t9)" ( (binary_expression "&DAT_00052a30 + in_t9" (pointer_expression "&DAT_00052a30" & identifier) + identifier) ))))) )) (argument_list "(dctx.u.cairo.widget)" ( (field_expression "dctx.u.cairo.widget" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) ))))) ;) (expression_statement "unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin);" (assignment_expression "unaff_s1 = (GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin)" identifier = (cast_expression "(GtkListStore *)(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin)" ( (type_descriptor "GtkListStore *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&DAT_000526f0 + in_t9))(dctx.u.cairo.gdkwin)" (parenthesized_expression "(**(code **)(&DAT_000526f0 + in_t9))" ( (pointer_expression "**(code **)(&DAT_000526f0 + in_t9)" * (pointer_expression "*(code **)(&DAT_000526f0 + in_t9)" * (cast_expression "(code **)(&DAT_000526f0 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_000526f0 + in_t9)" ( (binary_expression "&DAT_000526f0 + in_t9" (pointer_expression "&DAT_000526f0" & identifier) + identifier) ))))) )) (argument_list "(dctx.u.cairo.gdkwin)" ( (field_expression "dctx.u.cairo.gdkwin" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) ))))) ;) (expression_statement "dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1);" (assignment_expression "dctx.u.cairo.drawctx =\n         (GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1)" (field_expression "dctx.u.cairo.drawctx" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(GdkDrawingContext *)(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1)" ( (type_descriptor "GdkDrawingContext *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&DAT_0005273c + in_t9))(dctx.u.cairo.gdkwin,unaff_s1)" (parenthesized_expression "(**(code **)(&DAT_0005273c + in_t9))" ( (pointer_expression "**(code **)(&DAT_0005273c + in_t9)" * (pointer_expression "*(code **)(&DAT_0005273c + in_t9)" * (cast_expression "(code **)(&DAT_0005273c + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0005273c + in_t9)" ( (binary_expression "&DAT_0005273c + in_t9" (pointer_expression "&DAT_0005273c" & identifier) + identifier) ))))) )) (argument_list "(dctx.u.cairo.gdkwin,unaff_s1)" ( (field_expression "dctx.u.cairo.gdkwin" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) , identifier ))))) ;) (expression_statement "dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx);" (assignment_expression "dctx.u.cairo.cr = (cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx)" (field_expression "dctx.u.cairo.cr" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(cairo_t *)(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx)" ( (type_descriptor "cairo_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&DAT_000529bc + in_t9))(dctx.u.cairo.drawctx)" (parenthesized_expression "(**(code **)(&DAT_000529bc + in_t9))" ( (pointer_expression "**(code **)(&DAT_000529bc + in_t9)" * (pointer_expression "*(code **)(&DAT_000529bc + in_t9)" * (cast_expression "(code **)(&DAT_000529bc + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_000529bc + in_t9)" ( (binary_expression "&DAT_000529bc + in_t9" (pointer_expression "&DAT_000529bc" & identifier) + identifier) ))))) )) (argument_list "(dctx.u.cairo.drawctx)" ( (field_expression "dctx.u.cairo.drawctx" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) ))))) ;) (expression_statement "(**(code **)(&DAT_000525ac + in_t9))(unaff_s1);" (call_expression "(**(code **)(&DAT_000525ac + in_t9))(unaff_s1)" (parenthesized_expression "(**(code **)(&DAT_000525ac + in_t9))" ( (pointer_expression "**(code **)(&DAT_000525ac + in_t9)" * (pointer_expression "*(code **)(&DAT_000525ac + in_t9)" * (cast_expression "(code **)(&DAT_000525ac + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_000525ac + in_t9)" ( (binary_expression "&DAT_000525ac + in_t9" (pointer_expression "&DAT_000525ac" & identifier) + identifier) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "unifontsel_draw_preview_text_inner(&dctx,fs);" (call_expression "unifontsel_draw_preview_text_inner(&dctx,fs)" identifier (argument_list "(&dctx,fs)" ( (pointer_expression "&dctx" & identifier) , identifier ))) ;) (if_statement "if (dctx.type == ADDRTYPE_UNSPEC) {\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }\n    else {\n      pGVar7 = fs->preview_area;\n    }" if (parenthesized_expression "(dctx.type == ADDRTYPE_UNSPEC)" ( (binary_expression "dctx.type == ADDRTYPE_UNSPEC" (field_expression "dctx.type" identifier . field_identifier) == identifier) )) (compound_statement "{\n      (**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);\n      pGVar7 = fs->preview_area;\n    }" { (expression_statement "(**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx);" (call_expression "(**(code **)(&DAT_000526b0 + in_t9))(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx)" (parenthesized_expression "(**(code **)(&DAT_000526b0 + in_t9))" ( (pointer_expression "**(code **)(&DAT_000526b0 + in_t9)" * (pointer_expression "*(code **)(&DAT_000526b0 + in_t9)" * (cast_expression "(code **)(&DAT_000526b0 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_000526b0 + in_t9)" ( (binary_expression "&DAT_000526b0 + in_t9" (pointer_expression "&DAT_000526b0" & identifier) + identifier) ))))) )) (argument_list "(dctx.u.cairo.gdkwin,dctx.u.cairo.drawctx)" ( (field_expression "dctx.u.cairo.gdkwin" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) , (field_expression "dctx.u.cairo.drawctx" (field_expression "dctx.u.cairo" (field_expression "dctx.u" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) (expression_statement "pGVar7 = fs->preview_area;" (assignment_expression "pGVar7 = fs->preview_area" identifier = (field_expression "fs->preview_area" identifier -> field_identifier)) ;) }) (else_clause "else {\n      pGVar7 = fs->preview_area;\n    }" else (compound_statement "{\n      pGVar7 = fs->preview_area;\n    }" { (expression_statement "pGVar7 = fs->preview_area;" (assignment_expression "pGVar7 = fs->preview_area" identifier = (field_expression "fs->preview_area" identifier -> field_identifier)) ;) }))) (expression_statement "fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7);" (assignment_expression "fs_00 = (unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7)" identifier = (cast_expression "(unifontsel_internal *)(**(code **)(&DAT_00052a30 + in_t9))(pGVar7)" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&DAT_00052a30 + in_t9))(pGVar7)" (parenthesized_expression "(**(code **)(&DAT_00052a30 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00052a30 + in_t9)" * (pointer_expression "*(code **)(&DAT_00052a30 + in_t9)" * (cast_expression "(code **)(&DAT_00052a30 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a30 + in_t9)" ( (binary_expression "&DAT_00052a30 + in_t9" (pointer_expression "&DAT_00052a30" & identifier) + identifier) ))))) )) (argument_list "(pGVar7)" ( identifier ))))) ;) (expression_statement "(**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0);" (call_expression "(**(code **)(&DAT_00052570 + in_t9))(fs_00,0,0)" (parenthesized_expression "(**(code **)(&DAT_00052570 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00052570 + in_t9)" * (pointer_expression "*(code **)(&DAT_00052570 + in_t9)" * (cast_expression "(code **)(&DAT_00052570 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052570 + in_t9)" ( (binary_expression "&DAT_00052570 + in_t9" (pointer_expression "&DAT_00052570" & identifier) + identifier) ))))) )) (argument_list "(fs_00,0,0)" ( identifier , number_literal , number_literal ))) ;) })) (if_statement "if (iVar1 == **(int **)(&DAT_00052a78 + in_t9)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == **(int **)(&DAT_00052a78 + in_t9))" ( (binary_expression "iVar1 == **(int **)(&DAT_00052a78 + in_t9)" identifier == (pointer_expression "**(int **)(&DAT_00052a78 + in_t9)" * (pointer_expression "*(int **)(&DAT_00052a78 + in_t9)" * (cast_expression "(int **)(&DAT_00052a78 + in_t9)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052a78 + in_t9)" ( (binary_expression "&DAT_00052a78 + in_t9" (pointer_expression "&DAT_00052a78" & identifier) + identifier) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = *(code **)(&DAT_00052718 + in_t9);" (assignment_expression "pcVar12 = *(code **)(&DAT_00052718 + in_t9)" identifier = (pointer_expression "*(code **)(&DAT_00052718 + in_t9)" * (cast_expression "(code **)(&DAT_00052718 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00052718 + in_t9)" ( (binary_expression "&DAT_00052718 + in_t9" (pointer_expression "&DAT_00052718" & identifier) + identifier) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pGStack_a4 = (GtkListStore *)**(int **)(pcVar12 + 0x528e4);" (assignment_expression "pGStack_a4 = (GtkListStore *)**(int **)(pcVar12 + 0x528e4)" identifier = (cast_expression "(GtkListStore *)**(int **)(pcVar12 + 0x528e4)" ( (type_descriptor "GtkListStore *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar12 + 0x528e4)" * (pointer_expression "*(int **)(pcVar12 + 0x528e4)" * (cast_expression "(int **)(pcVar12 + 0x528e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x528e4)" ( (binary_expression "pcVar12 + 0x528e4" identifier + number_literal) ))))))) ;) (expression_statement "fs_00->inhibit_response = 1;" (assignment_expression "fs_00->inhibit_response = 1" (field_expression "fs_00->inhibit_response" identifier -> field_identifier) = number_literal) ;) (expression_statement "puStack_a0 = fs;" (assignment_expression "puStack_a0 = fs" identifier = identifier) ;) (expression_statement "pGStack_9c = unaff_s1;" (assignment_expression "pGStack_9c = unaff_s1" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar12 + 0x52270))(fs_00->family_model);" (call_expression "(**(code **)(pcVar12 + 0x52270))(fs_00->family_model)" (parenthesized_expression "(**(code **)(pcVar12 + 0x52270))" ( (pointer_expression "**(code **)(pcVar12 + 0x52270)" * (pointer_expression "*(code **)(pcVar12 + 0x52270)" * (cast_expression "(code **)(pcVar12 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x52270)" ( (binary_expression "pcVar12 + 0x52270" identifier + number_literal) ))))) )) (argument_list "(fs_00->family_model)" ( (field_expression "fs_00->family_model" identifier -> field_identifier) ))) ;) (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) (expression_statement "iStack_c0 = -1;" (assignment_expression "iStack_c0 = -1" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "index = 0;" (assignment_expression "index = 0" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(pcVar12 + 0x51ecc);" (assignment_expression "iVar2 = *(int *)(pcVar12 + 0x51ecc)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x51ecc)" * (cast_expression "(int *)(pcVar12 + 0x51ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x51ecc)" ( (binary_expression "pcVar12 + 0x51ecc" identifier + number_literal) ))))) ;) (do_statement "do {\n    t = (unifontsel_internal *)fs_00->fonts_by_selorder;\n    pvVar4 = index234((tree234 *)t,index);\n    puVar8 = (unifontsel_internal *)&stack0xffffff4c;\n    if (pvVar4 == (void *)0x0) {\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }\n    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }\n    index = index + 1;\n  } while( true );" do (compound_statement "{\n    t = (unifontsel_internal *)fs_00->fonts_by_selorder;\n    pvVar4 = index234((tree234 *)t,index);\n    puVar8 = (unifontsel_internal *)&stack0xffffff4c;\n    if (pvVar4 == (void *)0x0) {\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }\n    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }\n    index = index + 1;\n  }" { (expression_statement "t = (unifontsel_internal *)fs_00->fonts_by_selorder;" (assignment_expression "t = (unifontsel_internal *)fs_00->fonts_by_selorder" identifier = (cast_expression "(unifontsel_internal *)fs_00->fonts_by_selorder" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fs_00->fonts_by_selorder" identifier -> field_identifier))) ;) (expression_statement "pvVar4 = index234((tree234 *)t,index);" (assignment_expression "pvVar4 = index234((tree234 *)t,index)" identifier = (call_expression "index234((tree234 *)t,index)" identifier (argument_list "((tree234 *)t,index)" ( (cast_expression "(tree234 *)t" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "puVar8 = (unifontsel_internal *)&stack0xffffff4c;" (assignment_expression "puVar8 = (unifontsel_internal *)&stack0xffffff4c" identifier = (cast_expression "(unifontsel_internal *)&stack0xffffff4c" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff4c" & identifier))) ;) (if_statement "if (pvVar4 == (void *)0x0) {\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }\n    else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);\n      t = (unifontsel_internal *)fs_00->family_model;\n      (**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);\n      iVar11 = iVar11 + 1;\n      if (pvVar4 == (void *)0x0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);\n      uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n      iStack_c0 = index;\n    }" { (if_statement "if (iVar9 == 0) {\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }\n        if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }\n        return;\n      }" { (labeled_statement "LAB_0006b954:\n        if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }" statement_identifier : (if_statement "if ((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)) {\n          fs_00->inhibit_response = 0;\n        }\n        else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }" if (parenthesized_expression "((fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex))" ( (binary_expression "(fs_00->selected == (fontinfo *)0x0) ||\n           (pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)" (parenthesized_expression "(fs_00->selected == (fontinfo *)0x0)" ( (binary_expression "fs_00->selected == (fontinfo *)0x0" (field_expression "fs_00->selected" identifier -> field_identifier) == (cast_expression "(fontinfo *)0x0" ( (type_descriptor "fontinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex)" ( (comma_expression "pcVar13 = *(code **)(pcVar12 + 0x52270), -1 < fs_00->selected->familyindex" (assignment_expression "pcVar13 = *(code **)(pcVar12 + 0x52270)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x52270)" * (cast_expression "(code **)(pcVar12 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x52270)" ( (binary_expression "pcVar12 + 0x52270" identifier + number_literal) ))))) , (binary_expression "-1 < fs_00->selected->familyindex" number_literal < (field_expression "fs_00->selected->familyindex" (field_expression "fs_00->selected" identifier -> field_identifier) -> field_identifier))) ))) )) (compound_statement "{\n          fs_00->inhibit_response = 0;\n        }" { (expression_statement "fs_00->inhibit_response = 0;" (assignment_expression "fs_00->inhibit_response = 0" (field_expression "fs_00->inhibit_response" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }" else (compound_statement "{\n          fs_00->selected = (fontinfo *)0x0;\n          (*pcVar13)(fs_00->style_model);\n          (**(code **)(pcVar12 + 0x52270))(fs_00->size_model);\n          (**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);\n          puVar8 = (unifontsel_internal *)0x0;\n          (**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);\n          t = fs_00;\n          unifontsel_draw_preview_text(fs_00);\n          fs_00->inhibit_response = 0;\n        }" { (expression_statement "fs_00->selected = (fontinfo *)0x0;" (assignment_expression "fs_00->selected = (fontinfo *)0x0" (field_expression "fs_00->selected" identifier -> field_identifier) = (cast_expression "(fontinfo *)0x0" ( (type_descriptor "fontinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*pcVar13)(fs_00->style_model);" (call_expression "(*pcVar13)(fs_00->style_model)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(fs_00->style_model)" ( (field_expression "fs_00->style_model" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar12 + 0x52270))(fs_00->size_model);" (call_expression "(**(code **)(pcVar12 + 0x52270))(fs_00->size_model)" (parenthesized_expression "(**(code **)(pcVar12 + 0x52270))" ( (pointer_expression "**(code **)(pcVar12 + 0x52270)" * (pointer_expression "*(code **)(pcVar12 + 0x52270)" * (cast_expression "(code **)(pcVar12 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x52270)" ( (binary_expression "pcVar12 + 0x52270" identifier + number_literal) ))))) )) (argument_list "(fs_00->size_model)" ( (field_expression "fs_00->size_model" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0);" (call_expression "(**(code **)(pcVar12 + 0x52208))((fs_00->u).ok_button,0)" (parenthesized_expression "(**(code **)(pcVar12 + 0x52208))" ( (pointer_expression "**(code **)(pcVar12 + 0x52208)" * (pointer_expression "*(code **)(pcVar12 + 0x52208)" * (cast_expression "(code **)(pcVar12 + 0x52208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x52208)" ( (binary_expression "pcVar12 + 0x52208" identifier + number_literal) ))))) )) (argument_list "((fs_00->u).ok_button,0)" ( (field_expression "(fs_00->u).ok_button" (parenthesized_expression "(fs_00->u)" ( (field_expression "fs_00->u" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (expression_statement "puVar8 = (unifontsel_internal *)0x0;" (assignment_expression "puVar8 = (unifontsel_internal *)0x0" identifier = (cast_expression "(unifontsel_internal *)0x0" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar12 + 0x52208))(fs_00->size_entry);" (call_expression "(**(code **)(pcVar12 + 0x52208))(fs_00->size_entry)" (parenthesized_expression "(**(code **)(pcVar12 + 0x52208))" ( (pointer_expression "**(code **)(pcVar12 + 0x52208)" * (pointer_expression "*(code **)(pcVar12 + 0x52208)" * (cast_expression "(code **)(pcVar12 + 0x52208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x52208)" ( (binary_expression "pcVar12 + 0x52208" identifier + number_literal) ))))) )) (argument_list "(fs_00->size_entry)" ( (field_expression "fs_00->size_entry" identifier -> field_identifier) ))) ;) (expression_statement "t = fs_00;" (assignment_expression "t = fs_00" identifier = identifier) ;) (expression_statement "unifontsel_draw_preview_text(fs_00);" (call_expression "unifontsel_draw_preview_text(fs_00)" identifier (argument_list "(fs_00)" ( identifier ))) ;) (expression_statement "fs_00->inhibit_response = 0;" (assignment_expression "fs_00->inhibit_response = 0" (field_expression "fs_00->inhibit_response" identifier -> field_identifier) = number_literal) ;) })))) (if_statement "if (pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)) {\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }" if (parenthesized_expression "(pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4))" ( (binary_expression "pGStack_a4 != (GtkListStore *)**(int **)(pcVar12 + 0x528e4)" identifier != (cast_expression "(GtkListStore *)**(int **)(pcVar12 + 0x528e4)" ( (type_descriptor "GtkListStore *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar12 + 0x528e4)" * (pointer_expression "*(int **)(pcVar12 + 0x528e4)" * (cast_expression "(int **)(pcVar12 + 0x528e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x528e4)" ( (binary_expression "pcVar12 + 0x528e4" identifier + number_literal) ))))))) )) (compound_statement "{\n          pcVar12 = *(code **)(pcVar12 + 0x52584);\n          (*pcVar12)();\n          iVar1 = (**(code **)(pcVar12 + 0x51f74))();\n          uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);\n          uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }\n          if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }\n          return;\n        }" { (expression_statement "pcVar12 = *(code **)(pcVar12 + 0x52584);" (assignment_expression "pcVar12 = *(code **)(pcVar12 + 0x52584)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x52584)" * (cast_expression "(code **)(pcVar12 + 0x52584)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x52584)" ( (binary_expression "pcVar12 + 0x52584" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = (**(code **)(pcVar12 + 0x51f74))();" (assignment_expression "iVar1 = (**(code **)(pcVar12 + 0x51f74))()" identifier = (call_expression "(**(code **)(pcVar12 + 0x51f74))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x51f74))" ( (pointer_expression "**(code **)(pcVar12 + 0x51f74)" * (pointer_expression "*(code **)(pcVar12 + 0x51f74)" * (cast_expression "(code **)(pcVar12 + 0x51f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x51f74)" ( (binary_expression "pcVar12 + 0x51f74" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50);" (assignment_expression "uVar3 = (**(code **)(pcVar12 + 0x5263c))(t,0x50)" identifier = (call_expression "(**(code **)(pcVar12 + 0x5263c))(t,0x50)" (parenthesized_expression "(**(code **)(pcVar12 + 0x5263c))" ( (pointer_expression "**(code **)(pcVar12 + 0x5263c)" * (pointer_expression "*(code **)(pcVar12 + 0x5263c)" * (cast_expression "(code **)(pcVar12 + 0x5263c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x5263c)" ( (binary_expression "pcVar12 + 0x5263c" identifier + number_literal) ))))) )) (argument_list "(t,0x50)" ( identifier , number_literal )))) ;) (expression_statement "uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80);" (assignment_expression "uVar10 = (**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80)" identifier = (call_expression "(**(code **)(pcVar12 + 0x51fcc))(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80)" (parenthesized_expression "(**(code **)(pcVar12 + 0x51fcc))" ( (pointer_expression "**(code **)(pcVar12 + 0x51fcc)" * (pointer_expression "*(code **)(pcVar12 + 0x51fcc)" * (cast_expression "(code **)(pcVar12 + 0x51fcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x51fcc)" ( (binary_expression "pcVar12 + 0x51fcc" identifier + number_literal) ))))) )) (argument_list "(uVar3,*(int *)(pcVar12 + 0x517bc) + 0x3b80)" ( identifier , (binary_expression "*(int *)(pcVar12 + 0x517bc) + 0x3b80" (pointer_expression "*(int *)(pcVar12 + 0x517bc)" * (cast_expression "(int *)(pcVar12 + 0x517bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x517bc)" ( (binary_expression "pcVar12 + 0x517bc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 == 0) {\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }\n          else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = puVar8->filter_flags;\n            uVar10 = ~uVar10 & uVar6;\n          }" { (expression_statement "uVar6 = puVar8->filter_flags;" (assignment_expression "uVar6 = puVar8->filter_flags" identifier = (field_expression "puVar8->filter_flags" identifier -> field_identifier)) ;) (expression_statement "uVar10 = ~uVar10 & uVar6;" (assignment_expression "uVar10 = ~uVar10 & uVar6" identifier = (binary_expression "~uVar10 & uVar6" (unary_expression "~uVar10" ~ identifier) & identifier)) ;) }) (else_clause "else {\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }" else (compound_statement "{\n            uVar10 = uVar10 | puVar8->filter_flags;\n            uVar6 = puVar8->filter_flags;\n          }" { (expression_statement "uVar10 = uVar10 | puVar8->filter_flags;" (assignment_expression "uVar10 = uVar10 | puVar8->filter_flags" identifier = (binary_expression "uVar10 | puVar8->filter_flags" identifier | (field_expression "puVar8->filter_flags" identifier -> field_identifier))) ;) (expression_statement "uVar6 = puVar8->filter_flags;" (assignment_expression "uVar6 = puVar8->filter_flags" identifier = (field_expression "puVar8->filter_flags" identifier -> field_identifier)) ;) }))) (if_statement "if (uVar6 != uVar10) {\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }" if (parenthesized_expression "(uVar6 != uVar10)" ( (binary_expression "uVar6 != uVar10" identifier != identifier) )) (compound_statement "{\n            puVar8->filter_flags = uVar10;\n            unifontsel_setup_familylist(puVar8);\n          }" { (expression_statement "puVar8->filter_flags = uVar10;" (assignment_expression "puVar8->filter_flags = uVar10" (field_expression "puVar8->filter_flags" identifier -> field_identifier) = identifier) ;) (expression_statement "unifontsel_setup_familylist(puVar8);" (call_expression "unifontsel_setup_familylist(puVar8)" identifier (argument_list "(puVar8)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0006b9b8:\n      (**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);" statement_identifier : (expression_statement "(**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c);" (call_expression "(**(code **)(pcVar12 + 0x524ec))(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c)" (parenthesized_expression "(**(code **)(pcVar12 + 0x524ec))" ( (pointer_expression "**(code **)(pcVar12 + 0x524ec)" * (pointer_expression "*(code **)(pcVar12 + 0x524ec)" * (cast_expression "(code **)(pcVar12 + 0x524ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x524ec)" ( (binary_expression "pcVar12 + 0x524ec" identifier + number_literal) ))))) )) (argument_list "(fs_00->family_model,(unifontsel_internal *)&stack0xffffff4c)" ( (field_expression "fs_00->family_model" identifier -> field_identifier) , (cast_expression "(unifontsel_internal *)&stack0xffffff4c" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff4c" & identifier)) ))) ;)) (expression_statement "t = (unifontsel_internal *)fs_00->family_model;" (assignment_expression "t = (unifontsel_internal *)fs_00->family_model" identifier = (cast_expression "(unifontsel_internal *)fs_00->family_model" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fs_00->family_model" identifier -> field_identifier))) ;) (expression_statement "(**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff);" (call_expression "(**(code **)(pcVar12 + 0x5296c))\n                (t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff)" (parenthesized_expression "(**(code **)(pcVar12 + 0x5296c))" ( (pointer_expression "**(code **)(pcVar12 + 0x5296c)" * (pointer_expression "*(code **)(pcVar12 + 0x5296c)" * (cast_expression "(code **)(pcVar12 + 0x5296c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x5296c)" ( (binary_expression "pcVar12 + 0x5296c" identifier + number_literal) ))))) )) (argument_list "(t,(unifontsel_internal *)&stack0xffffff4c,0,iVar9,1,iStack_c0,2,iVar1 + 1,\n                 0xffffffff)" ( identifier , (cast_expression "(unifontsel_internal *)&stack0xffffff4c" ( (type_descriptor "unifontsel_internal *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff4c" & identifier)) , number_literal , identifier , number_literal , identifier , number_literal , (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (pvVar4 == (void *)0x0) goto LAB_0006b954;" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006b954;" goto statement_identifier ;)) (labeled_statement "LAB_0006ba18:\n      iVar9 = *(int *)((int)pvVar4 + 4);" statement_identifier : (expression_statement "iVar9 = *(int *)((int)pvVar4 + 4);" (assignment_expression "iVar9 = *(int *)((int)pvVar4 + 4)" identifier = (pointer_expression "*(int *)((int)pvVar4 + 4)" * (cast_expression "(int *)((int)pvVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 4)" ( (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7;" (assignment_expression "uVar10 = *(uint *)((int)pvVar4 + 0x18) & 7" identifier = (binary_expression "*(uint *)((int)pvVar4 + 0x18) & 7" (pointer_expression "*(uint *)((int)pvVar4 + 0x18)" * (cast_expression "(uint *)((int)pvVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x18)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "*(int *)((int)pvVar4 + 0x20) = iVar11;" (assignment_expression "*(int *)((int)pvVar4 + 0x20) = iVar11" (pointer_expression "*(int *)((int)pvVar4 + 0x20)" * (cast_expression "(int *)((int)pvVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x20)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = index;" (assignment_expression "iVar1 = index" identifier = identifier) ;) (expression_statement "iStack_c0 = index;" (assignment_expression "iStack_c0 = index" identifier = identifier) ;) }) (else_clause "else if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }" else (if_statement "if ((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0) {\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }" if (parenthesized_expression "((~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0)" ( (binary_expression "(~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)) == 0" (parenthesized_expression "(~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18))" ( (binary_expression "~fs_00->filter_flags & *(uint *)((int)pvVar4 + 0x18)" (unary_expression "~fs_00->filter_flags" ~ (field_expression "fs_00->filter_flags" identifier -> field_identifier)) & (pointer_expression "*(uint *)((int)pvVar4 + 0x18)" * (cast_expression "(uint *)((int)pvVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x18)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n      iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));\n      if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)((int)pvVar4 + 0x20) = iVar11;\n      iVar1 = index;\n    }" { (expression_statement "iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4));" (assignment_expression "iVar5 = (*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4))" identifier = (call_expression "(*(code *)(iVar2 + 0x71a4))(iVar9,*(undefined4 *)((int)pvVar4 + 4))" (parenthesized_expression "(*(code *)(iVar2 + 0x71a4))" ( (pointer_expression "*(code *)(iVar2 + 0x71a4)" * (cast_expression "(code *)(iVar2 + 0x71a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x71a4)" ( (binary_expression "iVar2 + 0x71a4" identifier + number_literal) )))) )) (argument_list "(iVar9,*(undefined4 *)((int)pvVar4 + 4))" ( identifier , (pointer_expression "*(undefined4 *)((int)pvVar4 + 4)" * (cast_expression "(undefined4 *)((int)pvVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 4)" ( (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if ((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)) {\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" if (parenthesized_expression "((iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10))" ( (binary_expression "(iVar5 != 0) || ((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10)" ( (binary_expression "(*(uint *)((int)pvVar4 + 0x18) & 7) != uVar10" (parenthesized_expression "(*(uint *)((int)pvVar4 + 0x18) & 7)" ( (binary_expression "*(uint *)((int)pvVar4 + 0x18) & 7" (pointer_expression "*(uint *)((int)pvVar4 + 0x18)" * (cast_expression "(uint *)((int)pvVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x18)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != identifier) ))) )) (compound_statement "{\n        if (iVar9 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" { (if_statement "if (iVar9 != 0) goto LAB_0006b9b8;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006b9b8;" goto statement_identifier ;)) (goto_statement "goto LAB_0006ba18;" goto statement_identifier ;) })) (expression_statement "*(int *)((int)pvVar4 + 0x20) = iVar11;" (assignment_expression "*(int *)((int)pvVar4 + 0x20) = iVar11" (pointer_expression "*(int *)((int)pvVar4 + 0x20)" * (cast_expression "(int *)((int)pvVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x20)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = index;" (assignment_expression "iVar1 = index" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }" else (compound_statement "{\n      *(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;\n    }" { (expression_statement "*(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x20) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x20)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x20)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))))) (expression_statement "index = index + 1;" (assignment_expression "index = index + 1" identifier = (binary_expression "index + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0006b69c(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}\n\n" (function_definition "void FUN_0006b69c(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}" primitive_type (function_declarator "FUN_0006b69c(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 unaff_s1;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "undefined1 auStack_b4 [16];" type_identifier (array_declarator "auStack_b4 [16]" identifier [ number_literal ]) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "int local_60 [2];" primitive_type (array_declarator "local_60 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000be114" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x40);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x40)" identifier = (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();" (assignment_expression "iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)()" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)()" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" * (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }" { (expression_statement "local_60[0] = 0;" (assignment_expression "local_60[0] = 0" (subscript_expression "local_60[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();" (assignment_expression "uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)()" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_type_000be100)()" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_type_000be100)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_type_000be100" * (cast_expression "(code *)PTR_gtk_widget_get_type_000be100" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);" (assignment_expression "local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2)" identifier = (call_expression "(*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2)" (parenthesized_expression "(*(code *)PTR_g_type_check_instance_cast_000be0e8)" ( (pointer_expression "*(code *)PTR_g_type_check_instance_cast_000be0e8" * (cast_expression "(code *)PTR_g_type_check_instance_cast_000be0e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x40),uVar2)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);" (assignment_expression "local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58)" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58)" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" * (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);" (assignment_expression "unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20)" identifier = (call_expression "(*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20)" (parenthesized_expression "(*(code *)PTR_gdk_window_get_clip_region_000bdd8c)" ( (pointer_expression "*(code *)PTR_gdk_window_get_clip_region_000bdd8c" * (cast_expression "(code *)PTR_gdk_window_get_clip_region_000bdd8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);" (assignment_expression "local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1)" identifier = (call_expression "(*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1)" (parenthesized_expression "(*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)" ( (pointer_expression "*(code *)PTR_gdk_window_begin_draw_frame_000bddd8" * (cast_expression "(code *)PTR_gdk_window_begin_draw_frame_000bddd8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20,unaff_s1)" ( identifier , identifier )))) ;) (expression_statement "local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);" (assignment_expression "local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c)" identifier = (call_expression "(*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c)" (parenthesized_expression "(*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)" ( (pointer_expression "*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058" * (cast_expression "(code *)PTR_gdk_drawing_context_get_cairo_context_000be058" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_1c)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);" (call_expression "(*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_cairo_region_destroy_000bdc48)" ( (pointer_expression "*(code *)PTR_cairo_region_destroy_000bdc48" * (cast_expression "(code *)PTR_cairo_region_destroy_000bdc48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "FUN_0006b050(local_60,param_1);" (call_expression "FUN_0006b050(local_60,param_1)" identifier (argument_list "(local_60,param_1)" ( identifier , identifier ))) ;) (if_statement "if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" if (parenthesized_expression "(local_60[0] == 0)" ( (binary_expression "local_60[0] == 0" (subscript_expression "local_60[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" { (expression_statement "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);" (call_expression "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c)" (parenthesized_expression "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)" ( (pointer_expression "*(code *)PTR_gdk_window_end_draw_frame_000bdd4c" * (cast_expression "(code *)PTR_gdk_window_end_draw_frame_000bdd4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20,local_1c)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" else (compound_statement "{\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" { (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);" (assignment_expression "iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2)" identifier = (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2)" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" ( (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" * (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);" (call_expression "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0)" (parenthesized_expression "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)" ( (pointer_expression "*(code *)PTR_gdk_window_invalidate_rect_000bdc0c" * (cast_expression "(code *)PTR_gdk_window_invalidate_rect_000bdc0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,0,0)" ( identifier , number_literal , number_literal ))) ;) })) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000be114)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000be114" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar13 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000bddb4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" * (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_a4 = **(int **)(puVar13 + 0x528e4);" (assignment_expression "iStack_a4 = **(int **)(puVar13 + 0x528e4)" identifier = (pointer_expression "**(int **)(puVar13 + 0x528e4)" * (pointer_expression "*(int **)(puVar13 + 0x528e4)" * (cast_expression "(int **)(puVar13 + 0x528e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x528e4)" ( (binary_expression "puVar13 + 0x528e4" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" * (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iStack_a0 = param_1;" (assignment_expression "iStack_a0 = param_1" identifier = identifier) ;) (expression_statement "uStack_9c = unaff_s1;" (assignment_expression "uStack_9c = unaff_s1" identifier = identifier) ;) (expression_statement "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));" (call_expression "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10))" (parenthesized_expression "(**(code **)(puVar13 + 0x52270))" ( (pointer_expression "**(code **)(puVar13 + 0x52270)" * (pointer_expression "*(code **)(puVar13 + 0x52270)" * (cast_expression "(code **)(puVar13 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52270)" ( (binary_expression "puVar13 + 0x52270" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" identifier = number_literal) ;) (expression_statement "iStack_c0 = -1;" (assignment_expression "iStack_c0 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *(int *)(puVar13 + 0x51ecc);" (assignment_expression "iVar3 = *(int *)(puVar13 + 0x51ecc)" identifier = (pointer_expression "*(int *)(puVar13 + 0x51ecc)" * (cast_expression "(int *)(puVar13 + 0x51ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x51ecc)" ( (binary_expression "puVar13 + 0x51ecc" identifier + number_literal) ))))) ;) (do_statement "do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );" do (compound_statement "{\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  }" { (expression_statement "iVar7 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x6c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = index234(iVar7,iVar9);" (assignment_expression "iVar4 = index234(iVar7,iVar9)" identifier = (call_expression "index234(iVar7,iVar9)" identifier (argument_list "(iVar7,iVar9)" ( identifier , identifier )))) ;) (expression_statement "puVar8 = auStack_b4;" (assignment_expression "puVar8 = auStack_b4" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }" { (if_statement "if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }" { (labeled_statement "LAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" statement_identifier : (if_statement "if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" if (parenthesized_expression "((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))" ( (binary_expression "(*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20))" (parenthesized_expression "(*(int *)(iVar6 + 0x70) == 0)" ( (binary_expression "*(int *)(iVar6 + 0x70) == 0" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20))" ( (comma_expression "pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x52270)" identifier = (pointer_expression "*(code **)(puVar13 + 0x52270)" * (cast_expression "(code **)(puVar13 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52270)" ( (binary_expression "puVar13 + 0x52270" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)" number_literal < (pointer_expression "*(int *)(*(int *)(iVar6 + 0x70) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x70) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x70) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x70) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" { (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" * (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" { (expression_statement "*(undefined4 *)(iVar6 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x70)" * (cast_expression "(undefined4 *)(iVar6 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar14)(*(undefined4 *)(iVar6 + 0x14));" (call_expression "(*pcVar14)(*(undefined4 *)(iVar6 + 0x14))" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(*(undefined4 *)(iVar6 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));" (call_expression "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18))" (parenthesized_expression "(**(code **)(puVar13 + 0x52270))" ( (pointer_expression "**(code **)(puVar13 + 0x52270)" * (pointer_expression "*(code **)(puVar13 + 0x52270)" * (cast_expression "(code **)(puVar13 + 0x52270)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52270)" ( (binary_expression "puVar13 + 0x52270" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);" (call_expression "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0)" (parenthesized_expression "(**(code **)(puVar13 + 0x52208))" ( (pointer_expression "**(code **)(puVar13 + 0x52208)" * (pointer_expression "*(code **)(puVar13 + 0x52208)" * (cast_expression "(code **)(puVar13 + 0x52208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52208)" ( (binary_expression "puVar13 + 0x52208" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 8),0)" ( (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));" (call_expression "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24))" (parenthesized_expression "(**(code **)(puVar13 + 0x52208))" ( (pointer_expression "**(code **)(puVar13 + 0x52208)" * (pointer_expression "*(code **)(puVar13 + 0x52208)" * (cast_expression "(code **)(puVar13 + 0x52208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52208)" ( (binary_expression "puVar13 + 0x52208" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x24))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x24)" * (cast_expression "(undefined4 *)(iVar6 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x24)" ( (binary_expression "iVar6 + 0x24" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) (expression_statement "FUN_0006b69c(iVar6);" (call_expression "FUN_0006b69c(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" * (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) = number_literal) ;) })))) (if_statement "if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }" if (parenthesized_expression "(iStack_a4 != **(int **)(puVar13 + 0x528e4))" ( (binary_expression "iStack_a4 != **(int **)(puVar13 + 0x528e4)" identifier != (pointer_expression "**(int **)(puVar13 + 0x528e4)" * (pointer_expression "*(int **)(puVar13 + 0x528e4)" * (cast_expression "(int **)(puVar13 + 0x528e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x528e4)" ( (binary_expression "puVar13 + 0x528e4" identifier + number_literal) )))))) )) (compound_statement "{\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }" { (expression_statement "pcVar14 = *(code **)(puVar13 + 0x52584);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x52584)" identifier = (pointer_expression "*(code **)(puVar13 + 0x52584)" * (cast_expression "(code **)(puVar13 + 0x52584)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x52584)" ( (binary_expression "puVar13 + 0x52584" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = (**(code **)(pcVar14 + 0x51f74))();" (assignment_expression "iVar1 = (**(code **)(pcVar14 + 0x51f74))()" identifier = (call_expression "(**(code **)(pcVar14 + 0x51f74))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x51f74))" ( (pointer_expression "**(code **)(pcVar14 + 0x51f74)" * (pointer_expression "*(code **)(pcVar14 + 0x51f74)" * (cast_expression "(code **)(pcVar14 + 0x51f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x51f74)" ( (binary_expression "pcVar14 + 0x51f74" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);" (assignment_expression "uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50)" identifier = (call_expression "(**(code **)(pcVar14 + 0x5263c))(iVar7,0x50)" (parenthesized_expression "(**(code **)(pcVar14 + 0x5263c))" ( (pointer_expression "**(code **)(pcVar14 + 0x5263c)" * (pointer_expression "*(code **)(pcVar14 + 0x5263c)" * (cast_expression "(code **)(pcVar14 + 0x5263c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x5263c)" ( (binary_expression "pcVar14 + 0x5263c" identifier + number_literal) ))))) )) (argument_list "(iVar7,0x50)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);" (assignment_expression "uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" identifier = (call_expression "(**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" (parenthesized_expression "(**(code **)(pcVar14 + 0x51fcc))" ( (pointer_expression "**(code **)(pcVar14 + 0x51fcc)" * (pointer_expression "*(code **)(pcVar14 + 0x51fcc)" * (cast_expression "(code **)(pcVar14 + 0x51fcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x51fcc)" ( (binary_expression "pcVar14 + 0x51fcc" identifier + number_literal) ))))) )) (argument_list "(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x517bc) + 0x3b80" (pointer_expression "*(int *)(pcVar14 + 0x517bc)" * (cast_expression "(int *)(pcVar14 + 0x517bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x517bc)" ( (binary_expression "pcVar14 + 0x517bc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }" { (expression_statement "uVar5 = *(uint *)(puVar8 + 100);" (assignment_expression "uVar5 = *(uint *)(puVar8 + 100)" identifier = (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = ~uVar11 & uVar5;" (assignment_expression "uVar11 = ~uVar11 & uVar5" identifier = (binary_expression "~uVar11 & uVar5" (unary_expression "~uVar11" ~ identifier) & identifier)) ;) }) (else_clause "else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" else (compound_statement "{\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" { (expression_statement "uVar11 = uVar11 | *(uint *)(puVar8 + 100);" (assignment_expression "uVar11 = uVar11 | *(uint *)(puVar8 + 100)" identifier = (binary_expression "uVar11 | *(uint *)(puVar8 + 100)" identifier | (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = *(uint *)(puVar8 + 100);" (assignment_expression "uVar5 = *(uint *)(puVar8 + 100)" identifier = (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }" if (parenthesized_expression "(uVar5 != uVar11)" ( (binary_expression "uVar5 != uVar11" identifier != identifier) )) (compound_statement "{\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }" { (expression_statement "*(uint *)(puVar8 + 100) = uVar11;" (assignment_expression "*(uint *)(puVar8 + 100) = uVar11" (pointer_expression "*(uint *)(puVar8 + 100)" * (cast_expression "(uint *)(puVar8 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 100)" ( (binary_expression "puVar8 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0006b830(puVar8);" (call_expression "FUN_0006b830(puVar8)" identifier (argument_list "(puVar8)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);" statement_identifier : (expression_statement "(**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);" (call_expression "(**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4)" (parenthesized_expression "(**(code **)(puVar13 + 0x524ec))" ( (pointer_expression "**(code **)(puVar13 + 0x524ec)" * (pointer_expression "*(code **)(puVar13 + 0x524ec)" * (cast_expression "(code **)(puVar13 + 0x524ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x524ec)" ( (binary_expression "puVar13 + 0x524ec" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x10),auStack_b4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) , identifier ))) ;)) (expression_statement "iVar7 = *(int *)(iVar6 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;" (call_expression "(**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)" (parenthesized_expression "(**(code **)(puVar13 + 0x5296c))" ( (pointer_expression "**(code **)(puVar13 + 0x5296c)" * (pointer_expression "*(code **)(puVar13 + 0x5296c)" * (cast_expression "(code **)(puVar13 + 0x5296c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x5296c)" ( (binary_expression "puVar13 + 0x5296c" identifier + number_literal) ))))) )) (argument_list "(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , number_literal , (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) goto LAB_0006b954;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006b954;" goto statement_identifier ;)) (labeled_statement "LAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);" statement_identifier : (expression_statement "iVar10 = *(int *)(iVar4 + 4);" (assignment_expression "iVar10 = *(int *)(iVar4 + 4)" identifier = (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;)) (expression_statement "uVar11 = *(uint *)(iVar4 + 0x18) & 7;" (assignment_expression "uVar11 = *(uint *)(iVar4 + 0x18) & 7" identifier = (binary_expression "*(uint *)(iVar4 + 0x18) & 7" (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(int *)(iVar4 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar4 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) (expression_statement "iStack_c0 = iVar9;" (assignment_expression "iStack_c0 = iVar9" identifier = identifier) ;) }) (else_clause "else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" else (if_statement "if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" if (parenthesized_expression "((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0)" ( (binary_expression "(~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0" (parenthesized_expression "(~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18))" ( (binary_expression "~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)" (unary_expression "~*(uint *)(iVar6 + 100)" ~ (pointer_expression "*(uint *)(iVar6 + 100)" * (cast_expression "(uint *)(iVar6 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 100)" ( (binary_expression "iVar6 + 100" identifier + number_literal) ))))) & (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }" { (expression_statement "iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));" (assignment_expression "iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4))" identifier = (call_expression "(*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4))" (parenthesized_expression "(*(code *)(iVar3 + 0x71a4))" ( (pointer_expression "*(code *)(iVar3 + 0x71a4)" * (cast_expression "(code *)(iVar3 + 0x71a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x71a4)" ( (binary_expression "iVar3 + 0x71a4" identifier + number_literal) )))) )) (argument_list "(iVar10,*(undefined4 *)(iVar4 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" if (parenthesized_expression "((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11))" ( (binary_expression "(iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar4 + 0x18) & 7) != uVar11)" ( (binary_expression "(*(uint *)(iVar4 + 0x18) & 7) != uVar11" (parenthesized_expression "(*(uint *)(iVar4 + 0x18) & 7)" ( (binary_expression "*(uint *)(iVar4 + 0x18) & 7" (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) & number_literal) )) != identifier) ))) )) (compound_statement "{\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" { (if_statement "if (iVar10 != 0) goto LAB_0006b9b8;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006b9b8;" goto statement_identifier ;)) (goto_statement "goto LAB_0006ba18;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar4 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar4 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" else (compound_statement "{\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" { (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = number_literal) ;) }))))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (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 IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression LIT < (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 IDENT + LIT) )))) + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 IDENT = (binary_expression (unary_expression ~ IDENT) & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (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) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) })) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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 IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT , LIT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_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) ))))) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_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 IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_0006b69c(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_0006b69c(int param_1)" (identifier "FUN_0006b69c") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  undefined4 unaff_s1;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_c0;\n  undefined1 auStack_b4 [16];\n  int iStack_a4;\n  int iStack_a0;\n  undefined4 uStack_9c;\n  int local_60 [2];\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000be114;\n  iVar6 = *(int *)(param_1 + 0x40);\n  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();\n  if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_a4 = **(int **)(puVar13 + 0x528e4);\n  *(undefined4 *)(iVar6 + 0x7c) = 1;\n  iStack_a0 = param_1;\n  uStack_9c = unaff_s1;\n  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));\n  uVar11 = 0xffffffff;\n  iVar10 = 0;\n  iVar1 = -1;\n  iStack_c0 = -1;\n  iVar12 = 0;\n  iVar9 = 0;\n  iVar3 = *(int *)(puVar13 + 0x51ecc);\n  do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 unaff_s1;" (type_identifier "undefined4") (identifier "unaff_s1") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int iStack_c0;" (primitive_type "int") (identifier "iStack_c0") (; ";")) (declaration "undefined1 auStack_b4 [16];" (type_identifier "undefined1") (array_declarator "auStack_b4 [16]" (identifier "auStack_b4") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int iStack_a4;" (primitive_type "int") (identifier "iStack_a4") (; ";")) (declaration "int iStack_a0;" (primitive_type "int") (identifier "iStack_a0") (; ";")) (declaration "undefined4 uStack_9c;" (type_identifier "undefined4") (identifier "uStack_9c") (; ";")) (declaration "int local_60 [2];" (primitive_type "int") (array_declarator "local_60 [2]" (identifier "local_60") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000be114" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000be114" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000be114")))) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x40);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x40)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x40)" (* "*") (cast_expression "(int *)(param_1 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();" (assignment_expression "iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)()" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)()" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" (( "(") (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" (* "*") (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gtk_widget_get_window_000be0cc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_60[0] = 0;\n    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();\n    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);\n    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);\n    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);\n    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);\n    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);\n    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);\n    FUN_0006b050(local_60,param_1);\n    if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);\n    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);\n  }" ({ "{") (expression_statement "local_60[0] = 0;" (assignment_expression "local_60[0] = 0" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();" (assignment_expression "uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)()" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_gtk_widget_get_type_000be100)()" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_type_000be100)" (( "(") (pointer_expression "*(code *)PTR_gtk_widget_get_type_000be100" (* "*") (cast_expression "(code *)PTR_gtk_widget_get_type_000be100" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gtk_widget_get_type_000be100"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2);" (assignment_expression "local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2)" (identifier "local_58") (= "=") (call_expression "(*(code *)PTR_g_type_check_instance_cast_000be0e8)\n                         (*(undefined4 *)(param_1 + 0x40),uVar2)" (parenthesized_expression "(*(code *)PTR_g_type_check_instance_cast_000be0e8)" (( "(") (pointer_expression "*(code *)PTR_g_type_check_instance_cast_000be0e8" (* "*") (cast_expression "(code *)PTR_g_type_check_instance_cast_000be0e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_g_type_check_instance_cast_000be0e8"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x40),uVar2)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);" (assignment_expression "local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58)" (identifier "local_20") (= "=") (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58)" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" (( "(") (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" (* "*") (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gtk_widget_get_window_000be0cc"))) () ")")) (argument_list "(local_58)" (( "(") (identifier "local_58") () ")")))) (; ";")) (expression_statement "unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);" (assignment_expression "unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20)" (identifier "unaff_s1") (= "=") (call_expression "(*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20)" (parenthesized_expression "(*(code *)PTR_gdk_window_get_clip_region_000bdd8c)" (( "(") (pointer_expression "*(code *)PTR_gdk_window_get_clip_region_000bdd8c" (* "*") (cast_expression "(code *)PTR_gdk_window_get_clip_region_000bdd8c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gdk_window_get_clip_region_000bdd8c"))) () ")")) (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (expression_statement "local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);" (assignment_expression "local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1)" (identifier "local_1c") (= "=") (call_expression "(*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1)" (parenthesized_expression "(*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)" (( "(") (pointer_expression "*(code *)PTR_gdk_window_begin_draw_frame_000bddd8" (* "*") (cast_expression "(code *)PTR_gdk_window_begin_draw_frame_000bddd8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gdk_window_begin_draw_frame_000bddd8"))) () ")")) (argument_list "(local_20,unaff_s1)" (( "(") (identifier "local_20") (, ",") (identifier "unaff_s1") () ")")))) (; ";")) (expression_statement "local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);" (assignment_expression "local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c)" (identifier "local_54") (= "=") (call_expression "(*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c)" (parenthesized_expression "(*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)" (( "(") (pointer_expression "*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058" (* "*") (cast_expression "(code *)PTR_gdk_drawing_context_get_cairo_context_000be058" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gdk_drawing_context_get_cairo_context_000be058"))) () ")")) (argument_list "(local_1c)" (( "(") (identifier "local_1c") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);" (call_expression "(*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_cairo_region_destroy_000bdc48)" (( "(") (pointer_expression "*(code *)PTR_cairo_region_destroy_000bdc48" (* "*") (cast_expression "(code *)PTR_cairo_region_destroy_000bdc48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_cairo_region_destroy_000bdc48"))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "FUN_0006b050(local_60,param_1);" (call_expression "FUN_0006b050(local_60,param_1)" (identifier "FUN_0006b050") (argument_list "(local_60,param_1)" (( "(") (identifier "local_60") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (local_60[0] == 0) {\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }\n    else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" (if "if") (parenthesized_expression "(local_60[0] == 0)" (( "(") (binary_expression "local_60[0] == 0" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" ({ "{") (expression_statement "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);" (call_expression "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c)" (parenthesized_expression "(*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)" (( "(") (pointer_expression "*(code *)PTR_gdk_window_end_draw_frame_000bdd4c" (* "*") (cast_expression "(code *)PTR_gdk_window_end_draw_frame_000bdd4c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gdk_window_end_draw_frame_000bdd4c"))) () ")")) (argument_list "(local_20,local_1c)" (( "(") (identifier "local_20") (, ",") (identifier "local_1c") () ")"))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x40)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" (else "else") (compound_statement "{\n      uVar2 = *(undefined4 *)(param_1 + 0x40);\n    }" ({ "{") (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x40)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);" (assignment_expression "iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2)" (parenthesized_expression "(*(code *)PTR_gtk_widget_get_window_000be0cc)" (( "(") (pointer_expression "*(code *)PTR_gtk_widget_get_window_000be0cc" (* "*") (cast_expression "(code *)PTR_gtk_widget_get_window_000be0cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gtk_widget_get_window_000be0cc"))) () ")")) (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);" (call_expression "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0)" (parenthesized_expression "(*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)" (( "(") (pointer_expression "*(code *)PTR_gdk_window_invalidate_rect_000bdc0c" (* "*") (cast_expression "(code *)PTR_gdk_window_invalidate_rect_000bdc0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gdk_window_invalidate_rect_000bdc0c"))) () ")")) (argument_list "(iVar6,0,0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000be114)" (( "(") (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000be114" (identifier "local_14") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000be114" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000be114")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar13 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000bddb4" (identifier "puVar13") (= "=") (identifier "PTR___stack_chk_fail_000bddb4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000bddb4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_a4 = **(int **)(puVar13 + 0x528e4);" (assignment_expression "iStack_a4 = **(int **)(puVar13 + 0x528e4)" (identifier "iStack_a4") (= "=") (pointer_expression "**(int **)(puVar13 + 0x528e4)" (* "*") (pointer_expression "*(int **)(puVar13 + 0x528e4)" (* "*") (cast_expression "(int **)(puVar13 + 0x528e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x528e4)" (( "(") (binary_expression "puVar13 + 0x528e4" (identifier "puVar13") (+ "+") (number_literal "0x528e4")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x7c)" (( "(") (binary_expression "iVar6 + 0x7c" (identifier "iVar6") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iStack_a0 = param_1;" (assignment_expression "iStack_a0 = param_1" (identifier "iStack_a0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "uStack_9c = unaff_s1;" (assignment_expression "uStack_9c = unaff_s1" (identifier "uStack_9c") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));" (call_expression "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10))" (parenthesized_expression "(**(code **)(puVar13 + 0x52270))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x52270)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x52270)" (* "*") (cast_expression "(code **)(puVar13 + 0x52270)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x52270)" (( "(") (binary_expression "puVar13 + 0x52270" (identifier "puVar13") (+ "+") (number_literal "0x52270")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = -1;" (assignment_expression "iVar1 = -1" (identifier "iVar1") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iStack_c0 = -1;" (assignment_expression "iStack_c0 = -1" (identifier "iStack_c0") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = *(int *)(puVar13 + 0x51ecc);" (assignment_expression "iVar3 = *(int *)(puVar13 + 0x51ecc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar13 + 0x51ecc)" (* "*") (cast_expression "(int *)(puVar13 + 0x51ecc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x51ecc)" (( "(") (binary_expression "puVar13 + 0x51ecc" (identifier "puVar13") (+ "+") (number_literal "0x51ecc")) () ")"))))) (; ";")) (do_statement "do {\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  } while( true );" (do "do") (compound_statement "{\n    iVar7 = *(int *)(iVar6 + 0x6c);\n    iVar4 = index234(iVar7,iVar9);\n    puVar8 = auStack_b4;\n    if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }\n    iVar9 = iVar9 + 1;\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x6c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x6c)" (* "*") (cast_expression "(int *)(iVar6 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x6c)" (( "(") (binary_expression "iVar6 + 0x6c" (identifier "iVar6") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "iVar4 = index234(iVar7,iVar9);" (assignment_expression "iVar4 = index234(iVar7,iVar9)" (identifier "iVar4") (= "=") (call_expression "index234(iVar7,iVar9)" (identifier "index234") (argument_list "(iVar7,iVar9)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "puVar8 = auStack_b4;" (assignment_expression "puVar8 = auStack_b4" (identifier "puVar8") (= "=") (identifier "auStack_b4")) (; ";")) (if_statement "if (iVar4 == 0) {\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }\n    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }\nLAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);\n      iVar7 = *(int *)(iVar6 + 0x10);\n      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;\n      iVar12 = iVar12 + 1;\n      if (iVar4 == 0) goto LAB_0006b954;\nLAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);\n      uVar11 = *(uint *)(iVar4 + 0x18) & 7;\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n      iStack_c0 = iVar9;\n    }" ({ "{") (if_statement "if (iVar10 == 0) {\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }\n        return;\n      }" ({ "{") (labeled_statement "LAB_0006b954:\n        if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" (statement_identifier "LAB_0006b954") (: ":") (if_statement "if ((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))\n        {\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }\n        else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" (if "if") (parenthesized_expression "((*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))" (( "(") (binary_expression "(*(int *)(iVar6 + 0x70) == 0) ||\n           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20))" (parenthesized_expression "(*(int *)(iVar6 + 0x70) == 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x70) == 0" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20))" (( "(") (comma_expression "pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x52270)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(puVar13 + 0x52270)" (* "*") (cast_expression "(code **)(puVar13 + 0x52270)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x52270)" (( "(") (binary_expression "puVar13 + 0x52270" (identifier "puVar13") (+ "+") (number_literal "0x52270")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(iVar6 + 0x70) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(iVar6 + 0x70) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x70) + 0x20)" (( "(") (binary_expression "*(int *)(iVar6 + 0x70) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x7c)" (( "(") (binary_expression "iVar6 + 0x7c" (identifier "iVar6") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(iVar6 + 0x70) = 0;\n          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));\n          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);\n          puVar8 = (undefined1 *)0x0;\n          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));\n          iVar7 = iVar6;\n          FUN_0006b69c(iVar6);\n          *(undefined4 *)(iVar6 + 0x7c) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x70)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*pcVar14)(*(undefined4 *)(iVar6 + 0x14));" (call_expression "(*pcVar14)(*(undefined4 *)(iVar6 + 0x14))" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));" (call_expression "(**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18))" (parenthesized_expression "(**(code **)(puVar13 + 0x52270))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x52270)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x52270)" (* "*") (cast_expression "(code **)(puVar13 + 0x52270)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x52270)" (( "(") (binary_expression "puVar13 + 0x52270" (identifier "puVar13") (+ "+") (number_literal "0x52270")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);" (call_expression "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0)" (parenthesized_expression "(**(code **)(puVar13 + 0x52208))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x52208)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x52208)" (* "*") (cast_expression "(code **)(puVar13 + 0x52208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x52208)" (( "(") (binary_expression "puVar13 + 0x52208" (identifier "puVar13") (+ "+") (number_literal "0x52208")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 8),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));" (call_expression "(**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24))" (parenthesized_expression "(**(code **)(puVar13 + 0x52208))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x52208)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x52208)" (* "*") (cast_expression "(code **)(puVar13 + 0x52208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x52208)" (( "(") (binary_expression "puVar13 + 0x52208" (identifier "puVar13") (+ "+") (number_literal "0x52208")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x24))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x24)" (( "(") (binary_expression "iVar6 + 0x24" (identifier "iVar6") (+ "+") (number_literal "0x24")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" (identifier "iVar7") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "FUN_0006b69c(iVar6);" (call_expression "FUN_0006b69c(iVar6)" (identifier "FUN_0006b69c") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x7c)" (( "(") (binary_expression "iVar6 + 0x7c" (identifier "iVar6") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (if_statement "if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }" (if "if") (parenthesized_expression "(iStack_a4 != **(int **)(puVar13 + 0x528e4))" (( "(") (binary_expression "iStack_a4 != **(int **)(puVar13 + 0x528e4)" (identifier "iStack_a4") (!= "!=") (pointer_expression "**(int **)(puVar13 + 0x528e4)" (* "*") (pointer_expression "*(int **)(puVar13 + 0x528e4)" (* "*") (cast_expression "(int **)(puVar13 + 0x528e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x528e4)" (( "(") (binary_expression "puVar13 + 0x528e4" (identifier "puVar13") (+ "+") (number_literal "0x528e4")) () ")")))))) () ")")) (compound_statement "{\n          pcVar14 = *(code **)(puVar13 + 0x52584);\n          (*pcVar14)();\n          iVar1 = (**(code **)(pcVar14 + 0x51f74))();\n          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);\n          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);\n          if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }\n          if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }\n          return;\n        }" ({ "{") (expression_statement "pcVar14 = *(code **)(puVar13 + 0x52584);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x52584)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(puVar13 + 0x52584)" (* "*") (cast_expression "(code **)(puVar13 + 0x52584)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x52584)" (( "(") (binary_expression "puVar13 + 0x52584" (identifier "puVar13") (+ "+") (number_literal "0x52584")) () ")"))))) (; ";")) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = (**(code **)(pcVar14 + 0x51f74))();" (assignment_expression "iVar1 = (**(code **)(pcVar14 + 0x51f74))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar14 + 0x51f74))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x51f74))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x51f74)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x51f74)" (* "*") (cast_expression "(code **)(pcVar14 + 0x51f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x51f74)" (( "(") (binary_expression "pcVar14 + 0x51f74" (identifier "pcVar14") (+ "+") (number_literal "0x51f74")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);" (assignment_expression "uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar14 + 0x5263c))(iVar7,0x50)" (parenthesized_expression "(**(code **)(pcVar14 + 0x5263c))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x5263c)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x5263c)" (* "*") (cast_expression "(code **)(pcVar14 + 0x5263c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x5263c)" (( "(") (binary_expression "pcVar14 + 0x5263c" (identifier "pcVar14") (+ "+") (number_literal "0x5263c")) () ")"))))) () ")")) (argument_list "(iVar7,0x50)" (( "(") (identifier "iVar7") (, ",") (number_literal "0x50") () ")")))) (; ";")) (expression_statement "uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);" (assignment_expression "uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" (identifier "uVar11") (= "=") (call_expression "(**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" (parenthesized_expression "(**(code **)(pcVar14 + 0x51fcc))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x51fcc)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x51fcc)" (* "*") (cast_expression "(code **)(pcVar14 + 0x51fcc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x51fcc)" (( "(") (binary_expression "pcVar14 + 0x51fcc" (identifier "pcVar14") (+ "+") (number_literal "0x51fcc")) () ")"))))) () ")")) (argument_list "(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80)" (( "(") (identifier "uVar2") (, ",") (binary_expression "*(int *)(pcVar14 + 0x517bc) + 0x3b80" (pointer_expression "*(int *)(pcVar14 + 0x517bc)" (* "*") (cast_expression "(int *)(pcVar14 + 0x517bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x517bc)" (( "(") (binary_expression "pcVar14 + 0x517bc" (identifier "pcVar14") (+ "+") (number_literal "0x517bc")) () ")")))) (+ "+") (number_literal "0x3b80")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }\n          else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar5 = *(uint *)(puVar8 + 100);\n            uVar11 = ~uVar11 & uVar5;\n          }" ({ "{") (expression_statement "uVar5 = *(uint *)(puVar8 + 100);" (assignment_expression "uVar5 = *(uint *)(puVar8 + 100)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(puVar8 + 100)" (* "*") (cast_expression "(uint *)(puVar8 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 100)" (( "(") (binary_expression "puVar8 + 100" (identifier "puVar8") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "uVar11 = ~uVar11 & uVar5;" (assignment_expression "uVar11 = ~uVar11 & uVar5" (identifier "uVar11") (= "=") (binary_expression "~uVar11 & uVar5" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (& "&") (identifier "uVar5"))) (; ";")) (} "}")) (else_clause "else {\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" (else "else") (compound_statement "{\n            uVar11 = uVar11 | *(uint *)(puVar8 + 100);\n            uVar5 = *(uint *)(puVar8 + 100);\n          }" ({ "{") (expression_statement "uVar11 = uVar11 | *(uint *)(puVar8 + 100);" (assignment_expression "uVar11 = uVar11 | *(uint *)(puVar8 + 100)" (identifier "uVar11") (= "=") (binary_expression "uVar11 | *(uint *)(puVar8 + 100)" (identifier "uVar11") (| "|") (pointer_expression "*(uint *)(puVar8 + 100)" (* "*") (cast_expression "(uint *)(puVar8 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 100)" (( "(") (binary_expression "puVar8 + 100" (identifier "puVar8") (+ "+") (number_literal "100")) () ")")))))) (; ";")) (expression_statement "uVar5 = *(uint *)(puVar8 + 100);" (assignment_expression "uVar5 = *(uint *)(puVar8 + 100)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(puVar8 + 100)" (* "*") (cast_expression "(uint *)(puVar8 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 100)" (( "(") (binary_expression "puVar8 + 100" (identifier "puVar8") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar5 != uVar11) {\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }" (if "if") (parenthesized_expression "(uVar5 != uVar11)" (( "(") (binary_expression "uVar5 != uVar11" (identifier "uVar5") (!= "!=") (identifier "uVar11")) () ")")) (compound_statement "{\n            *(uint *)(puVar8 + 100) = uVar11;\n            FUN_0006b830(puVar8);\n          }" ({ "{") (expression_statement "*(uint *)(puVar8 + 100) = uVar11;" (assignment_expression "*(uint *)(puVar8 + 100) = uVar11" (pointer_expression "*(uint *)(puVar8 + 100)" (* "*") (cast_expression "(uint *)(puVar8 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 100)" (( "(") (binary_expression "puVar8 + 100" (identifier "puVar8") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "FUN_0006b830(puVar8);" (call_expression "FUN_0006b830(puVar8)" (identifier "FUN_0006b830") (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0006b9b8:\n      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);" (statement_identifier "LAB_0006b9b8") (: ":") (expression_statement "(**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);" (call_expression "(**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4)" (parenthesized_expression "(**(code **)(puVar13 + 0x524ec))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x524ec)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x524ec)" (* "*") (cast_expression "(code **)(puVar13 + 0x524ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x524ec)" (( "(") (binary_expression "puVar13 + 0x524ec" (identifier "puVar13") (+ "+") (number_literal "0x524ec")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x10),auStack_b4)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "auStack_b4") () ")"))) (; ";"))) (expression_statement "iVar7 = *(int *)(iVar6 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x10)" (* "*") (cast_expression "(int *)(iVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)\n      ;" (call_expression "(**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)" (parenthesized_expression "(**(code **)(puVar13 + 0x5296c))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x5296c)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x5296c)" (* "*") (cast_expression "(code **)(puVar13 + 0x5296c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x5296c)" (( "(") (binary_expression "puVar13 + 0x5296c" (identifier "puVar13") (+ "+") (number_literal "0x5296c")) () ")"))))) () ")")) (argument_list "(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)" (( "(") (identifier "iVar7") (, ",") (identifier "auStack_b4") (, ",") (number_literal "0") (, ",") (identifier "iVar10") (, ",") (number_literal "1") (, ",") (identifier "iStack_c0") (, ",") (number_literal "2") (, ",") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1")) (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_0006b954;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006b954;" (goto "goto") (statement_identifier "LAB_0006b954") (; ";"))) (labeled_statement "LAB_0006ba18:\n      iVar10 = *(int *)(iVar4 + 4);" (statement_identifier "LAB_0006ba18") (: ":") (expression_statement "iVar10 = *(int *)(iVar4 + 4);" (assignment_expression "iVar10 = *(int *)(iVar4 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar4 + 4)" (* "*") (cast_expression "(int *)(iVar4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (expression_statement "uVar11 = *(uint *)(iVar4 + 0x18) & 7;" (assignment_expression "uVar11 = *(uint *)(iVar4 + 0x18) & 7" (identifier "uVar11") (= "=") (binary_expression "*(uint *)(iVar4 + 0x18) & 7" (pointer_expression "*(uint *)(iVar4 + 0x18)" (* "*") (cast_expression "(uint *)(iVar4 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (expression_statement "*(int *)(iVar4 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar4 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar4 + 0x20)" (* "*") (cast_expression "(int *)(iVar4 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" (identifier "iVar1") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iStack_c0 = iVar9;" (assignment_expression "iStack_c0 = iVar9" (identifier "iStack_c0") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (else_clause "else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" (else "else") (if_statement "if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }\n    else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" (if "if") (parenthesized_expression "((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0)" (( "(") (binary_expression "(~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0" (parenthesized_expression "(~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18))" (( "(") (binary_expression "~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)" (unary_expression "~*(uint *)(iVar6 + 100)" (~ "~") (pointer_expression "*(uint *)(iVar6 + 100)" (* "*") (cast_expression "(uint *)(iVar6 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 100)" (( "(") (binary_expression "iVar6 + 100" (identifier "iVar6") (+ "+") (number_literal "100")) () ")"))))) (& "&") (pointer_expression "*(uint *)(iVar4 + 0x18)" (* "*") (cast_expression "(uint *)(iVar4 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));\n      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }\n      *(int *)(iVar4 + 0x20) = iVar12;\n      iVar1 = iVar9;\n    }" ({ "{") (expression_statement "iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));" (assignment_expression "iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4))" (identifier "iVar7") (= "=") (call_expression "(*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4))" (parenthesized_expression "(*(code *)(iVar3 + 0x71a4))" (( "(") (pointer_expression "*(code *)(iVar3 + 0x71a4)" (* "*") (cast_expression "(code *)(iVar3 + 0x71a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x71a4)" (( "(") (binary_expression "iVar3 + 0x71a4" (identifier "iVar3") (+ "+") (number_literal "0x71a4")) () ")")))) () ")")) (argument_list "(iVar10,*(undefined4 *)(iVar4 + 4))" (( "(") (identifier "iVar10") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" (if "if") (parenthesized_expression "((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11))" (( "(") (binary_expression "(iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar4 + 0x18) & 7) != uVar11)" (( "(") (binary_expression "(*(uint *)(iVar4 + 0x18) & 7) != uVar11" (parenthesized_expression "(*(uint *)(iVar4 + 0x18) & 7)" (( "(") (binary_expression "*(uint *)(iVar4 + 0x18) & 7" (pointer_expression "*(uint *)(iVar4 + 0x18)" (* "*") (cast_expression "(uint *)(iVar4 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (identifier "uVar11")) () ")"))) () ")")) (compound_statement "{\n        if (iVar10 != 0) goto LAB_0006b9b8;\n        goto LAB_0006ba18;\n      }" ({ "{") (if_statement "if (iVar10 != 0) goto LAB_0006b9b8;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006b9b8;" (goto "goto") (statement_identifier "LAB_0006b9b8") (; ";"))) (goto_statement "goto LAB_0006ba18;" (goto "goto") (statement_identifier "LAB_0006ba18") (; ";")) (} "}"))) (expression_statement "*(int *)(iVar4 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar4 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar4 + 0x20)" (* "*") (cast_expression "(int *)(iVar4 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" (identifier "iVar1") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (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: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal)))))) (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: (identifier))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))))))) (do_statement body: (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (number_literal) 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: (identifier) right: (number_literal))))) 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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (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)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (return_statement))) (return_statement))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (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))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (number_literal) (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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)))))))) (expression_statement (assignment_expression left: (identifier) 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: (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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)))))) 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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_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: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true))))))

void MASKED(int param_1)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined1 *puVar8;
  undefined4 unaff_s1;
  int iVar9;
  int iVar10;
  uint uVar11;
  int iVar12;
  undefined *puVar13;
  code *pcVar14;
  int iStack_c0;
  undefined1 auStack_b4 [16];
  int iStack_a4;
  int iStack_a0;
  undefined4 uStack_9c;
  int local_60 [2];
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_20;
  undefined4 local_1c;
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_000be114;
  iVar6 = *(int *)(param_1 + 0x40);
  iVar1 = (*(code *)PTR_gtk_widget_get_window_000be0cc)();
  if (iVar1 != 0) {
    local_60[0] = 0;
    uVar2 = (*(code *)PTR_gtk_widget_get_type_000be100)();
    local_58 = (*(code *)PTR_g_type_check_instance_cast_000be0e8)
                         (*(undefined4 *)(param_1 + 0x40),uVar2);
    local_20 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(local_58);
    unaff_s1 = (*(code *)PTR_gdk_window_get_clip_region_000bdd8c)(local_20);
    local_1c = (*(code *)PTR_gdk_window_begin_draw_frame_000bddd8)(local_20,unaff_s1);
    local_54 = (*(code *)PTR_gdk_drawing_context_get_cairo_context_000be058)(local_1c);
    (*(code *)PTR_cairo_region_destroy_000bdc48)(unaff_s1);
    FUN_0006b050(local_60,param_1);
    if (local_60[0] == 0) {
      (*(code *)PTR_gdk_window_end_draw_frame_000bdd4c)(local_20,local_1c);
      uVar2 = *(undefined4 *)(param_1 + 0x40);
    }
    else {
      uVar2 = *(undefined4 *)(param_1 + 0x40);
    }
    iVar6 = (*(code *)PTR_gtk_widget_get_window_000be0cc)(uVar2);
    (*(code *)PTR_gdk_window_invalidate_rect_000bdc0c)(iVar6,0,0);
  }
  if (local_14 == *(int *)PTR___stack_chk_guard_000be114) {
    return;
  }
  puVar13 = PTR___stack_chk_fail_000bddb4;
  (*(code *)PTR___stack_chk_fail_000bddb4)();
  iStack_a4 = **(int **)(puVar13 + 0x528e4);
  *(undefined4 *)(iVar6 + 0x7c) = 1;
  iStack_a0 = param_1;
  uStack_9c = unaff_s1;
  (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x10));
  uVar11 = 0xffffffff;
  iVar10 = 0;
  iVar1 = -1;
  iStack_c0 = -1;
  iVar12 = 0;
  iVar9 = 0;
  iVar3 = *(int *)(puVar13 + 0x51ecc);
  do {
    iVar7 = *(int *)(iVar6 + 0x6c);
    iVar4 = index234(iVar7,iVar9);
    puVar8 = auStack_b4;
    if (iVar4 == 0) {
      if (iVar10 == 0) {
LAB_0006b954:
        if ((*(int *)(iVar6 + 0x70) == 0) ||
           (pcVar14 = *(code **)(puVar13 + 0x52270), -1 < *(int *)(*(int *)(iVar6 + 0x70) + 0x20)))
        {
          *(undefined4 *)(iVar6 + 0x7c) = 0;
        }
        else {
          *(undefined4 *)(iVar6 + 0x70) = 0;
          (*pcVar14)(*(undefined4 *)(iVar6 + 0x14));
          (**(code **)(puVar13 + 0x52270))(*(undefined4 *)(iVar6 + 0x18));
          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 8),0);
          puVar8 = (undefined1 *)0x0;
          (**(code **)(puVar13 + 0x52208))(*(undefined4 *)(iVar6 + 0x24));
          iVar7 = iVar6;
          MASKED(iVar6);
          *(undefined4 *)(iVar6 + 0x7c) = 0;
        }
        if (iStack_a4 != **(int **)(puVar13 + 0x528e4)) {
          pcVar14 = *(code **)(puVar13 + 0x52584);
          (*pcVar14)();
          iVar1 = (**(code **)(pcVar14 + 0x51f74))();
          uVar2 = (**(code **)(pcVar14 + 0x5263c))(iVar7,0x50);
          uVar11 = (**(code **)(pcVar14 + 0x51fcc))(uVar2,*(int *)(pcVar14 + 0x517bc) + 0x3b80);
          if (iVar1 == 0) {
            uVar5 = *(uint *)(puVar8 + 100);
            uVar11 = ~uVar11 & uVar5;
          }
          else {
            uVar11 = uVar11 | *(uint *)(puVar8 + 100);
            uVar5 = *(uint *)(puVar8 + 100);
          }
          if (uVar5 != uVar11) {
            *(uint *)(puVar8 + 100) = uVar11;
            FUN_0006b830(puVar8);
          }
          return;
        }
        return;
      }
LAB_0006b9b8:
      (**(code **)(puVar13 + 0x524ec))(*(undefined4 *)(iVar6 + 0x10),auStack_b4);
      iVar7 = *(int *)(iVar6 + 0x10);
      (**(code **)(puVar13 + 0x5296c))(iVar7,auStack_b4,0,iVar10,1,iStack_c0,2,iVar1 + 1,0xffffffff)
      ;
      iVar12 = iVar12 + 1;
      if (iVar4 == 0) goto LAB_0006b954;
LAB_0006ba18:
      iVar10 = *(int *)(iVar4 + 4);
      uVar11 = *(uint *)(iVar4 + 0x18) & 7;
      *(int *)(iVar4 + 0x20) = iVar12;
      iVar1 = iVar9;
      iStack_c0 = iVar9;
    }
    else if ((~*(uint *)(iVar6 + 100) & *(uint *)(iVar4 + 0x18)) == 0) {
      iVar7 = (*(code *)(iVar3 + 0x71a4))(iVar10,*(undefined4 *)(iVar4 + 4));
      if ((iVar7 != 0) || ((*(uint *)(iVar4 + 0x18) & 7) != uVar11)) {
        if (iVar10 != 0) goto LAB_0006b9b8;
        goto LAB_0006ba18;
      }
      *(int *)(iVar4 + 0x20) = iVar12;
      iVar1 = iVar9;
    }
    else {
      *(undefined4 *)(iVar4 + 0x20) = 0xffffffff;
    }
    iVar9 = iVar9 + 1;
  } while( true );
}

