
_Bool bitset_copy_(bitset_conflict dst,bitset_conflict src)

{
  bitset_conflict bset;
  uint uVar1;
  bitset_conflict bset_00;
  undefined1 uVar2;
  bitset_bindex bVar3;
  bitset_iterator *pbVar4;
  bitset_type type;
  undefined4 uVar5;
  bitset_bindex *pbVar6;
  undefined1 *puVar7;
  undefined *puVar8;
  bitset_iterator iter;
  
  puVar8 = PTR___stack_chk_guard_0008df8c;
  bset = *(bitset_conflict *)PTR___stack_chk_guard_0008df8c;
  (*((dst->b).vtable)->zero)(dst);
  iter.next = 0;
  iter.num = 0x400;
  do {
    uVar5 = 0x400;
    pbVar4 = &iter;
    pbVar6 = &iter.next;
    iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next);
    if (iter.num == 0) break;
    iter.i = 0;
    do {
      while( true ) {
        pbVar4 = (bitset_iterator *)iter.list[iter.i];
        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;
        if (uVar1 < (dst->b).csize) break;
        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);
        iter.i = iter.i + 1;
        if (iter.num <= iter.i) goto LAB_00057e38;
      }
      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));
      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;
      iter.i = iter.i + 1;
    } while (iter.i < iter.num);
LAB_00057e38:
  } while (iter.num == 0x400);
  if (bset == *(bitset_conflict *)puVar8) {
    return true;
  }
  puVar8 = PTR___stack_chk_fail_0008df68;
  (*(code *)PTR___stack_chk_fail_0008df68)();
  puVar7 = *(undefined1 **)(puVar8 + 0x35e78);
  type = ((bset->b).vtable)->type;
  uVar2 = *puVar7;
  *puVar7 = 0;
  if (type == BITSET_STATS) {
    type = bitset_stats_type_get(bset);
  }
  bset_00 = bitset_alloc(0,type);
  bVar3 = pbVar4->list[0];
  *puVar7 = uVar2;
  (**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5);
  uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00);
  bitset_free(bset_00);
  return (_Bool)uVar2;
}



undefined4 bitset_copy_(int *param_1,int *param_2)

{
  undefined1 uVar1;
  uint *puVar2;
  uint uVar3;
  undefined4 uVar4;
  int *piVar5;
  int *piVar6;
  int iVar7;
  undefined4 uVar8;
  int *piVar9;
  undefined1 *puVar10;
  undefined *puVar11;
  int local_1030 [1024];
  int local_30;
  uint local_2c;
  uint local_28;
  int *local_24;
  
  puVar11 = PTR___stack_chk_guard_0008df8c;
  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;
  (**(code **)(*param_1 + 0x24))();
  local_30 = 0;
  local_2c = 0x400;
  do {
    uVar8 = 0x400;
    piVar6 = local_1030;
    piVar9 = &local_30;
    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);
    if (local_2c == 0) break;
    local_28 = 0;
    do {
      while( true ) {
        piVar6 = (int *)local_1030[local_28];
        uVar3 = ((uint)piVar6 >> 5) - param_1[1];
        if (uVar3 < (uint)param_1[2]) break;
        (**(code **)*param_1)(param_1);
        local_28 = local_28 + 1;
        if (local_2c <= local_28) goto LAB_00057e38;
      }
      puVar2 = (uint *)(param_1[3] + uVar3 * 4);
      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));
      *puVar2 = (uint)piVar6;
      local_28 = local_28 + 1;
    } while (local_28 < local_2c);
LAB_00057e38:
  } while (local_2c == 0x400);
  if (local_24 == *(int **)puVar11) {
    return 1;
  }
  piVar5 = local_24;
  puVar11 = PTR___stack_chk_fail_0008df68;
  (*(code *)PTR___stack_chk_fail_0008df68)();
  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);
  iVar7 = *(int *)(*piVar5 + 0x80);
  uVar1 = *puVar10;
  *puVar10 = 0;
  if (iVar7 == 5) {
    iVar7 = bitset_stats_type_get();
  }
  uVar4 = bitset_alloc(0,iVar7);
  iVar7 = *piVar6;
  *puVar10 = uVar1;
  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);
  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);
  uVar8 = bitset_free(uVar4);
  return uVar8;
}


lui gp,0x4
addiu gp,gp,-0x2720
addu gp,gp,t9
addiu sp,sp,-0x1048
lw v1,0x0(a0)
sw s2,0x1034(sp)
lw s2,-0x7664(gp)
lw t9,0x24(v1)
sw s5,0x1040(sp)
addiu s5,sp,0x18
sw s4,0x103c(sp)
addiu s4,sp,0x1018
sw s3,0x1038(sp)
or s3,a0,zero
sw s1,0x1030(sp)
or s1,a1,zero
sw s0,0x102c(sp)
li s0,0x1
sw gp,0x10(sp)
sw ra,0x1044(sp)
lw v0,0x0(s2)
sw v0,0x1024(sp)
jalr t9
_nop
li v0,0x400
sw zero,0x1018(sp)
sw v0,0x101c(sp)
lw v0,0x0(s1)
li a2,0x400
or a3,s4,zero
or a1,s5,zero
lw t9,0x74(v0)
jalr t9
_or a0,s1,zero
lw gp,0x10(sp)
beq v0,zero,0x00057e44
_sw v0,0x101c(sp)
or v0,zero,zero
b 0x00057de0
_sw zero,0x1020(sp)
lw v1,0xc(s3)
sllv a1,s0,a1
addu v0,v1,v0
lw v1,0x0(v0)
or a1,v1,a1
lw v1,0x101c(sp)
sw a1,0x0(v0)
lw v0,0x1020(sp)
addiu v0,v0,0x1
sltu a0,v0,v1
beq a0,zero,0x00057e38
_sw v0,0x1020(sp)
addiu a1,sp,0x1028
lw a0,0x4(s3)
sll v0,v0,0x2
lw v1,0x8(s3)
addu v0,a1,v0
lw a1,-0x1010(v0)
srl v0,a1,0x5
subu v0,v0,a0
sltu v1,v0,v1
bne v1,zero,0x00057db0
_sll v0,v0,0x2
lw v0,0x0(s3)
lw t9,0x0(v0)
jalr t9
_or a0,s3,zero
lw v0,0x1020(sp)
lw v1,0x101c(sp)
lw gp,0x10(sp)
addiu v0,v0,0x1
sltu a0,v0,v1
bne a0,zero,0x00057de0
_sw v0,0x1020(sp)
li v0,0x400
beq v1,v0,0x00057d7c
_nop
lw a0,0x1024(sp)
li v0,0x1
lw v1,0x0(s2)
bne a0,v1,0x00057e78
_lw ra,0x1044(sp)
lw s5,0x1040(sp)
lw s4,0x103c(sp)
lw s3,0x1038(sp)
lw s2,0x1034(sp)
lw s1,0x1030(sp)
lw s0,0x102c(sp)
jr ra
_addiu sp,sp,0x1048
lw t9,-0x7688(gp)
jalr t9
_nop
(translation_unit "undefined4 bitset_copy_(int *param_1,int *param_2)\n\n{\n  undefined1 uVar1;\n  uint *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  undefined1 *puVar10;\n  undefined *puVar11;\n  int local_1030 [1024];\n  int local_30;\n  uint local_2c;\n  uint local_28;\n  int *local_24;\n  \n  puVar11 = PTR___stack_chk_guard_0008df8c;\n  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;\n  (**(code **)(*param_1 + 0x24))();\n  local_30 = 0;\n  local_2c = 0x400;\n  do {\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}\n\n" (ERROR "undefined4 bitset_copy_(int *param_1,int *param_2)\n\n{\n  undefined1 uVar1;\n  uint *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  undefined1 *puVar10;\n  undefined *puVar11;\n  int local_1030 [1024];\n  int local_30;\n  uint local_2c;\n  uint local_28;\n  int *local_24;\n  \n  puVar11 = PTR___stack_chk_guard_0008df8c;\n  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;\n  (**(code **)(*param_1 + 0x24))();\n  local_30 = 0;\n  local_2c = 0x400;\n  do {\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}" type_identifier (function_declarator "bitset_copy_(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int local_1030 [1024];" primitive_type (array_declarator "local_1030 [1024]" identifier [ number_literal ]) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_guard_0008df8c;" (assignment_expression "puVar11 = PTR___stack_chk_guard_0008df8c" identifier = identifier) ;) (expression_statement "local_24 = *(int **)PTR___stack_chk_guard_0008df8c;" (assignment_expression "local_24 = *(int **)PTR___stack_chk_guard_0008df8c" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_0008df8c" * (cast_expression "(int **)PTR___stack_chk_guard_0008df8c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(**(code **)(*param_1 + 0x24))();" (call_expression "(**(code **)(*param_1 + 0x24))()" (parenthesized_expression "(**(code **)(*param_1 + 0x24))" ( (pointer_expression "**(code **)(*param_1 + 0x24)" * (pointer_expression "*(code **)(*param_1 + 0x24)" * (cast_expression "(code **)(*param_1 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x24)" ( (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0x400;" (assignment_expression "local_2c = 0x400" identifier = number_literal) ;) do (compound_statement "{\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}" { (expression_statement "uVar8 = 0x400;" (assignment_expression "uVar8 = 0x400" identifier = number_literal) ;) (expression_statement "piVar6 = local_1030;" (assignment_expression "piVar6 = local_1030" identifier = identifier) ;) (expression_statement "piVar9 = &local_30;" (assignment_expression "piVar9 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);" (assignment_expression "local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400)" identifier = (call_expression "(**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400)" (parenthesized_expression "(**(code **)(*param_2 + 0x74))" ( (pointer_expression "**(code **)(*param_2 + 0x74)" * (pointer_expression "*(code **)(*param_2 + 0x74)" * (cast_expression "(code **)(*param_2 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x74)" ( (binary_expression "*param_2 + 0x74" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,local_1030,0x400)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (local_2c == 0) break;" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);" do (compound_statement "{\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    }" { (while_statement "while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }" { (expression_statement "piVar6 = (int *)local_1030[local_28];" (assignment_expression "piVar6 = (int *)local_1030[local_28]" identifier = (cast_expression "(int *)local_1030[local_28]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_1030[local_28]" identifier [ identifier ]))) ;) (expression_statement "uVar3 = ((uint)piVar6 >> 5) - param_1[1];" (assignment_expression "uVar3 = ((uint)piVar6 >> 5) - param_1[1]" identifier = (binary_expression "((uint)piVar6 >> 5) - param_1[1]" (parenthesized_expression "((uint)piVar6 >> 5)" ( (binary_expression "(uint)piVar6 >> 5" (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar3 < (uint)param_1[2]) break;" if (parenthesized_expression "(uVar3 < (uint)param_1[2])" ( (binary_expression "uVar3 < (uint)param_1[2]" identifier < (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)*param_1)(param_1);" (call_expression "(**(code **)*param_1)(param_1)" (parenthesized_expression "(**(code **)*param_1)" ( (pointer_expression "**(code **)*param_1" * (pointer_expression "*(code **)*param_1" * (cast_expression "(code **)*param_1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_1" * identifier)))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (if_statement "if (local_2c <= local_28) goto LAB_00057e38;" if (parenthesized_expression "(local_2c <= local_28)" ( (binary_expression "local_2c <= local_28" identifier <= identifier) )) (goto_statement "goto LAB_00057e38;" goto statement_identifier ;)) })) (expression_statement "puVar2 = (uint *)(param_1[3] + uVar3 * 4);" (assignment_expression "puVar2 = (uint *)(param_1[3] + uVar3 * 4)" identifier = (cast_expression "(uint *)(param_1[3] + uVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + uVar3 * 4)" ( (binary_expression "param_1[3] + uVar3 * 4" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));" (assignment_expression "piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" identifier = (cast_expression "(int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" ( (binary_expression "*puVar2 | 1 << ((uint)piVar6 & 0x1f)" (pointer_expression "*puVar2" * identifier) | (binary_expression "1 << ((uint)piVar6 & 0x1f)" number_literal << (parenthesized_expression "((uint)piVar6 & 0x1f)" ( (binary_expression "(uint)piVar6 & 0x1f" (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) )))) ;) (expression_statement "*puVar2 = (uint)piVar6;" (assignment_expression "*puVar2 = (uint)piVar6" (pointer_expression "*puVar2" * identifier) = (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_28 < local_2c)" ( (binary_expression "local_28 < local_2c" identifier < identifier) )) ;) (labeled_statement "LAB_00057e38:\n  } while (local_2c == 0x400);" statement_identifier : (ERROR "}" }) (while_statement "while (local_2c == 0x400);" while (parenthesized_expression "(local_2c == 0x400)" ( (binary_expression "local_2c == 0x400" identifier == number_literal) )) (expression_statement ";" ;))) (if_statement "if (local_24 == *(int **)puVar11) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int **)puVar11)" ( (binary_expression "local_24 == *(int **)puVar11" identifier == (pointer_expression "*(int **)puVar11" * (cast_expression "(int **)puVar11" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "piVar5 = local_24;" (assignment_expression "piVar5 = local_24" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_0008df68;" (assignment_expression "puVar11 = PTR___stack_chk_fail_0008df68" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0008df68)();" (call_expression "(*(code *)PTR___stack_chk_fail_0008df68)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0008df68)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0008df68" * (cast_expression "(code *)PTR___stack_chk_fail_0008df68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar10 = *(undefined1 **)(puVar11 + 0x35e78);" (assignment_expression "puVar10 = *(undefined1 **)(puVar11 + 0x35e78)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + 0x35e78)" * (cast_expression "(undefined1 **)(puVar11 + 0x35e78)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x35e78)" ( (binary_expression "puVar11 + 0x35e78" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(*piVar5 + 0x80);" (assignment_expression "iVar7 = *(int *)(*piVar5 + 0x80)" identifier = (pointer_expression "*(int *)(*piVar5 + 0x80)" * (cast_expression "(int *)(*piVar5 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0x80)" ( (binary_expression "*piVar5 + 0x80" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar1 = *puVar10;" (assignment_expression "uVar1 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (if_statement "if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }" if (parenthesized_expression "(iVar7 == 5)" ( (binary_expression "iVar7 == 5" identifier == number_literal) )) (compound_statement "{\n    iVar7 = bitset_stats_type_get();\n  }" { (expression_statement "iVar7 = bitset_stats_type_get();" (assignment_expression "iVar7 = bitset_stats_type_get()" identifier = (call_expression "bitset_stats_type_get()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "uVar4 = bitset_alloc(0,iVar7);" (assignment_expression "uVar4 = bitset_alloc(0,iVar7)" identifier = (call_expression "bitset_alloc(0,iVar7)" identifier (argument_list "(0,iVar7)" ( number_literal , identifier )))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*puVar10 = uVar1;" (assignment_expression "*puVar10 = uVar1" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "(**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);" (call_expression "(**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8)" (parenthesized_expression "(**(code **)(iVar7 + 0x3c))" ( (pointer_expression "**(code **)(iVar7 + 0x3c)" * (pointer_expression "*(code **)(iVar7 + 0x3c)" * (cast_expression "(code **)(iVar7 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) ))))) )) (argument_list "(uVar4,piVar6,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);" (call_expression "(**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4)" (parenthesized_expression "(**(code **)(*piVar9 + 0x50))" ( (pointer_expression "**(code **)(*piVar9 + 0x50)" * (pointer_expression "*(code **)(*piVar9 + 0x50)" * (cast_expression "(code **)(*piVar9 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x50)" ( (binary_expression "*piVar9 + 0x50" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,piVar9,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = bitset_free(uVar4);" (assignment_expression "uVar8 = bitset_free(uVar4)" identifier = (call_expression "bitset_free(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (return_statement "return uVar8;" return identifier ;) })))
(translation_unit "_Bool bitset_copy_(bitset_conflict dst,bitset_conflict src)\n\n{\n  bitset_conflict bset;\n  uint uVar1;\n  bitset_conflict bset_00;\n  undefined1 uVar2;\n  bitset_bindex bVar3;\n  bitset_iterator *pbVar4;\n  bitset_type type;\n  undefined4 uVar5;\n  bitset_bindex *pbVar6;\n  undefined1 *puVar7;\n  undefined *puVar8;\n  bitset_iterator iter;\n  \n  puVar8 = PTR___stack_chk_guard_0008df8c;\n  bset = *(bitset_conflict *)PTR___stack_chk_guard_0008df8c;\n  (*((dst->b).vtable)->zero)(dst);\n  iter.next = 0;\n  iter.num = 0x400;\n  do {\n    uVar5 = 0x400;\n    pbVar4 = &iter;\n    pbVar6 = &iter.next;\n    iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next);\n    if (iter.num == 0) break;\n    iter.i = 0;\n    do {\n      while( true ) {\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }\n      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));\n      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;\n      iter.i = iter.i + 1;\n    } while (iter.i < iter.num);\nLAB_00057e38:\n  } while (iter.num == 0x400);\n  if (bset == *(bitset_conflict *)puVar8) {\n    return true;\n  }\n  puVar8 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar7 = *(undefined1 **)(puVar8 + 0x35e78);\n  type = ((bset->b).vtable)->type;\n  uVar2 = *puVar7;\n  *puVar7 = 0;\n  if (type == BITSET_STATS) {\n    type = bitset_stats_type_get(bset);\n  }\n  bset_00 = bitset_alloc(0,type);\n  bVar3 = pbVar4->list[0];\n  *puVar7 = uVar2;\n  (**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5);\n  uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00);\n  bitset_free(bset_00);\n  return (_Bool)uVar2;\n}\n\n" (ERROR "_Bool bitset_copy_(bitset_conflict dst,bitset_conflict src)\n\n{\n  bitset_conflict bset;\n  uint uVar1;\n  bitset_conflict bset_00;\n  undefined1 uVar2;\n  bitset_bindex bVar3;\n  bitset_iterator *pbVar4;\n  bitset_type type;\n  undefined4 uVar5;\n  bitset_bindex *pbVar6;\n  undefined1 *puVar7;\n  undefined *puVar8;\n  bitset_iterator iter;\n  \n  puVar8 = PTR___stack_chk_guard_0008df8c;\n  bset = *(bitset_conflict *)PTR___stack_chk_guard_0008df8c;\n  (*((dst->b).vtable)->zero)(dst);\n  iter.next = 0;\n  iter.num = 0x400;\n  do {\n    uVar5 = 0x400;\n    pbVar4 = &iter;\n    pbVar6 = &iter.next;\n    iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next);\n    if (iter.num == 0) break;\n    iter.i = 0;\n    do {\n      while( true ) {\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }\n      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));\n      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;\n      iter.i = iter.i + 1;\n    } while (iter.i < iter.num);\nLAB_00057e38:\n  } while (iter.num == 0x400);\n  if (bset == *(bitset_conflict *)puVar8) {\n    return true;\n  }\n  puVar8 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar7 = *(undefined1 **)(puVar8 + 0x35e78);\n  type = ((bset->b).vtable)->type;\n  uVar2 = *puVar7;\n  *puVar7 = 0;\n  if (type == BITSET_STATS) {\n    type = bitset_stats_type_get(bset);\n  }\n  bset_00 = bitset_alloc(0,type);\n  bVar3 = pbVar4->list[0];\n  *puVar7 = uVar2;\n  (**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5);\n  uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00);\n  bitset_free(bset_00);\n  return (_Bool)uVar2;\n}" type_identifier (function_declarator "bitset_copy_(bitset_conflict dst,bitset_conflict src)" identifier (parameter_list "(bitset_conflict dst,bitset_conflict src)" ( (parameter_declaration "bitset_conflict dst" type_identifier identifier) , (parameter_declaration "bitset_conflict src" type_identifier identifier) ))) { (declaration "bitset_conflict bset;" type_identifier identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "bitset_conflict bset_00;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "bitset_bindex bVar3;" type_identifier identifier ;) (declaration "bitset_iterator *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "bitset_type type;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "bitset_bindex *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "bitset_iterator iter;" type_identifier identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_0008df8c;" (assignment_expression "puVar8 = PTR___stack_chk_guard_0008df8c" identifier = identifier) ;) (expression_statement "bset = *(bitset_conflict *)PTR___stack_chk_guard_0008df8c;" (assignment_expression "bset = *(bitset_conflict *)PTR___stack_chk_guard_0008df8c" identifier = (pointer_expression "*(bitset_conflict *)PTR___stack_chk_guard_0008df8c" * (cast_expression "(bitset_conflict *)PTR___stack_chk_guard_0008df8c" ( (type_descriptor "bitset_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*((dst->b).vtable)->zero)(dst);" (call_expression "(*((dst->b).vtable)->zero)(dst)" (parenthesized_expression "(*((dst->b).vtable)->zero)" ( (pointer_expression "*((dst->b).vtable)->zero" * (field_expression "((dst->b).vtable)->zero" (parenthesized_expression "((dst->b).vtable)" ( (field_expression "(dst->b).vtable" (parenthesized_expression "(dst->b)" ( (field_expression "dst->b" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (argument_list "(dst)" ( identifier ))) ;) (expression_statement "iter.next = 0;" (assignment_expression "iter.next = 0" (field_expression "iter.next" identifier . field_identifier) = number_literal) ;) (expression_statement "iter.num = 0x400;" (assignment_expression "iter.num = 0x400" (field_expression "iter.num" identifier . field_identifier) = number_literal) ;) do (compound_statement "{\n    uVar5 = 0x400;\n    pbVar4 = &iter;\n    pbVar6 = &iter.next;\n    iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next);\n    if (iter.num == 0) break;\n    iter.i = 0;\n    do {\n      while( true ) {\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }\n      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));\n      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;\n      iter.i = iter.i + 1;\n    } while (iter.i < iter.num);\nLAB_00057e38:\n  } while (iter.num == 0x400);\n  if (bset == *(bitset_conflict *)puVar8) {\n    return true;\n  }\n  puVar8 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar7 = *(undefined1 **)(puVar8 + 0x35e78);\n  type = ((bset->b).vtable)->type;\n  uVar2 = *puVar7;\n  *puVar7 = 0;\n  if (type == BITSET_STATS) {\n    type = bitset_stats_type_get(bset);\n  }\n  bset_00 = bitset_alloc(0,type);\n  bVar3 = pbVar4->list[0];\n  *puVar7 = uVar2;\n  (**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5);\n  uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00);\n  bitset_free(bset_00);\n  return (_Bool)uVar2;\n}" { (expression_statement "uVar5 = 0x400;" (assignment_expression "uVar5 = 0x400" identifier = number_literal) ;) (expression_statement "pbVar4 = &iter;" (assignment_expression "pbVar4 = &iter" identifier = (pointer_expression "&iter" & identifier)) ;) (expression_statement "pbVar6 = &iter.next;" (assignment_expression "pbVar6 = &iter.next" identifier = (pointer_expression "&iter.next" & (field_expression "iter.next" identifier . field_identifier))) ;) (expression_statement "iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next);" (assignment_expression "iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next)" (field_expression "iter.num" identifier . field_identifier) = (call_expression "(*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next)" (parenthesized_expression "(*((src->b).vtable)->list)" ( (pointer_expression "*((src->b).vtable)->list" * (field_expression "((src->b).vtable)->list" (parenthesized_expression "((src->b).vtable)" ( (field_expression "(src->b).vtable" (parenthesized_expression "(src->b)" ( (field_expression "src->b" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (argument_list "(src,iter.list,0x400,&iter.next)" ( identifier , (field_expression "iter.list" identifier . field_identifier) , number_literal , (pointer_expression "&iter.next" & (field_expression "iter.next" identifier . field_identifier)) )))) ;) (if_statement "if (iter.num == 0) break;" if (parenthesized_expression "(iter.num == 0)" ( (binary_expression "iter.num == 0" (field_expression "iter.num" identifier . field_identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iter.i = 0;" (assignment_expression "iter.i = 0" (field_expression "iter.i" identifier . field_identifier) = number_literal) ;) (do_statement "do {\n      while( true ) {\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }\n      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));\n      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;\n      iter.i = iter.i + 1;\n    } while (iter.i < iter.num);" do (compound_statement "{\n      while( true ) {\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }\n      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));\n      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;\n      iter.i = iter.i + 1;\n    }" { (while_statement "while( true ) {\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pbVar4 = (bitset_iterator *)iter.list[iter.i];\n        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;\n        if (uVar1 < (dst->b).csize) break;\n        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);\n        iter.i = iter.i + 1;\n        if (iter.num <= iter.i) goto LAB_00057e38;\n      }" { (expression_statement "pbVar4 = (bitset_iterator *)iter.list[iter.i];" (assignment_expression "pbVar4 = (bitset_iterator *)iter.list[iter.i]" identifier = (cast_expression "(bitset_iterator *)iter.list[iter.i]" ( (type_descriptor "bitset_iterator *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "iter.list[iter.i]" (field_expression "iter.list" identifier . field_identifier) [ (field_expression "iter.i" identifier . field_identifier) ]))) ;) (expression_statement "uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;" (assignment_expression "uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex" identifier = (binary_expression "((uint)pbVar4 >> 5) - (dst->b).cindex" (parenthesized_expression "((uint)pbVar4 >> 5)" ( (binary_expression "(uint)pbVar4 >> 5" (cast_expression "(uint)pbVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - (field_expression "(dst->b).cindex" (parenthesized_expression "(dst->b)" ( (field_expression "dst->b" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (uVar1 < (dst->b).csize) break;" if (parenthesized_expression "(uVar1 < (dst->b).csize)" ( (binary_expression "uVar1 < (dst->b).csize" identifier < (field_expression "(dst->b).csize" (parenthesized_expression "(dst->b)" ( (field_expression "dst->b" identifier -> field_identifier) )) . field_identifier)) )) (break_statement "break;" break ;)) (expression_statement "(*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);" (call_expression "(*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4)" (parenthesized_expression "(*((dst->b).vtable)->set)" ( (pointer_expression "*((dst->b).vtable)->set" * (field_expression "((dst->b).vtable)->set" (parenthesized_expression "((dst->b).vtable)" ( (field_expression "(dst->b).vtable" (parenthesized_expression "(dst->b)" ( (field_expression "dst->b" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (argument_list "(dst,(bitset_bindex)pbVar4)" ( identifier , (cast_expression "(bitset_bindex)pbVar4" ( (type_descriptor "bitset_bindex" type_identifier) ) identifier) ))) ;) (expression_statement "iter.i = iter.i + 1;" (assignment_expression "iter.i = iter.i + 1" (field_expression "iter.i" identifier . field_identifier) = (binary_expression "iter.i + 1" (field_expression "iter.i" identifier . field_identifier) + number_literal)) ;) (if_statement "if (iter.num <= iter.i) goto LAB_00057e38;" if (parenthesized_expression "(iter.num <= iter.i)" ( (binary_expression "iter.num <= iter.i" (field_expression "iter.num" identifier . field_identifier) <= (field_expression "iter.i" identifier . field_identifier)) )) (goto_statement "goto LAB_00057e38;" goto statement_identifier ;)) })) (expression_statement "pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));" (assignment_expression "pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f))" identifier = (cast_expression "(bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f))" ( (type_descriptor "bitset_iterator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f))" ( (binary_expression "(dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f)" (subscript_expression "(dst->b).cdata[uVar1]" (field_expression "(dst->b).cdata" (parenthesized_expression "(dst->b)" ( (field_expression "dst->b" identifier -> field_identifier) )) . field_identifier) [ identifier ]) | (binary_expression "1 << ((uint)pbVar4 & 0x1f)" number_literal << (parenthesized_expression "((uint)pbVar4 & 0x1f)" ( (binary_expression "(uint)pbVar4 & 0x1f" (cast_expression "(uint)pbVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) )))) ;) (expression_statement "(dst->b).cdata[uVar1] = (bitset_word)pbVar4;" (assignment_expression "(dst->b).cdata[uVar1] = (bitset_word)pbVar4" (subscript_expression "(dst->b).cdata[uVar1]" (field_expression "(dst->b).cdata" (parenthesized_expression "(dst->b)" ( (field_expression "dst->b" identifier -> field_identifier) )) . field_identifier) [ identifier ]) = (cast_expression "(bitset_word)pbVar4" ( (type_descriptor "bitset_word" type_identifier) ) identifier)) ;) (expression_statement "iter.i = iter.i + 1;" (assignment_expression "iter.i = iter.i + 1" (field_expression "iter.i" identifier . field_identifier) = (binary_expression "iter.i + 1" (field_expression "iter.i" identifier . field_identifier) + number_literal)) ;) }) while (parenthesized_expression "(iter.i < iter.num)" ( (binary_expression "iter.i < iter.num" (field_expression "iter.i" identifier . field_identifier) < (field_expression "iter.num" identifier . field_identifier)) )) ;) (labeled_statement "LAB_00057e38:\n  } while (iter.num == 0x400);" statement_identifier : (ERROR "}" }) (while_statement "while (iter.num == 0x400);" while (parenthesized_expression "(iter.num == 0x400)" ( (binary_expression "iter.num == 0x400" (field_expression "iter.num" identifier . field_identifier) == number_literal) )) (expression_statement ";" ;))) (if_statement "if (bset == *(bitset_conflict *)puVar8) {\n    return true;\n  }" if (parenthesized_expression "(bset == *(bitset_conflict *)puVar8)" ( (binary_expression "bset == *(bitset_conflict *)puVar8" identifier == (pointer_expression "*(bitset_conflict *)puVar8" * (cast_expression "(bitset_conflict *)puVar8" ( (type_descriptor "bitset_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_0008df68;" (assignment_expression "puVar8 = PTR___stack_chk_fail_0008df68" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0008df68)();" (call_expression "(*(code *)PTR___stack_chk_fail_0008df68)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0008df68)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0008df68" * (cast_expression "(code *)PTR___stack_chk_fail_0008df68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = *(undefined1 **)(puVar8 + 0x35e78);" (assignment_expression "puVar7 = *(undefined1 **)(puVar8 + 0x35e78)" identifier = (pointer_expression "*(undefined1 **)(puVar8 + 0x35e78)" * (cast_expression "(undefined1 **)(puVar8 + 0x35e78)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x35e78)" ( (binary_expression "puVar8 + 0x35e78" identifier + number_literal) ))))) ;) (expression_statement "type = ((bset->b).vtable)->type;" (assignment_expression "type = ((bset->b).vtable)->type" identifier = (field_expression "((bset->b).vtable)->type" (parenthesized_expression "((bset->b).vtable)" ( (field_expression "(bset->b).vtable" (parenthesized_expression "(bset->b)" ( (field_expression "bset->b" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "uVar2 = *puVar7;" (assignment_expression "uVar2 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (if_statement "if (type == BITSET_STATS) {\n    type = bitset_stats_type_get(bset);\n  }" if (parenthesized_expression "(type == BITSET_STATS)" ( (binary_expression "type == BITSET_STATS" identifier == identifier) )) (compound_statement "{\n    type = bitset_stats_type_get(bset);\n  }" { (expression_statement "type = bitset_stats_type_get(bset);" (assignment_expression "type = bitset_stats_type_get(bset)" identifier = (call_expression "bitset_stats_type_get(bset)" identifier (argument_list "(bset)" ( identifier )))) ;) })) (expression_statement "bset_00 = bitset_alloc(0,type);" (assignment_expression "bset_00 = bitset_alloc(0,type)" identifier = (call_expression "bitset_alloc(0,type)" identifier (argument_list "(0,type)" ( number_literal , identifier )))) ;) (expression_statement "bVar3 = pbVar4->list[0];" (assignment_expression "bVar3 = pbVar4->list[0]" identifier = (subscript_expression "pbVar4->list[0]" (field_expression "pbVar4->list" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "*puVar7 = uVar2;" (assignment_expression "*puVar7 = uVar2" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "(**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5);" (call_expression "(**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5)" (parenthesized_expression "(**(code **)(bVar3 + 0x3c))" ( (pointer_expression "**(code **)(bVar3 + 0x3c)" * (pointer_expression "*(code **)(bVar3 + 0x3c)" * (cast_expression "(code **)(bVar3 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(bVar3 + 0x3c)" ( (binary_expression "bVar3 + 0x3c" identifier + number_literal) ))))) )) (argument_list "(bset_00,pbVar4,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00);" (assignment_expression "uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00)" identifier = (call_expression "(**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00)" (parenthesized_expression "(**(code **)(*pbVar6 + 0x50))" ( (pointer_expression "**(code **)(*pbVar6 + 0x50)" * (pointer_expression "*(code **)(*pbVar6 + 0x50)" * (cast_expression "(code **)(*pbVar6 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*pbVar6 + 0x50)" ( (binary_expression "*pbVar6 + 0x50" (pointer_expression "*pbVar6" * identifier) + number_literal) ))))) )) (argument_list "(bset,pbVar6,bset_00)" ( identifier , identifier , identifier )))) ;) (expression_statement "bitset_free(bset_00);" (call_expression "bitset_free(bset_00)" identifier (argument_list "(bset_00)" ( identifier ))) ;) (return_statement "return (_Bool)uVar2;" return (cast_expression "(_Bool)uVar2" ( (type_descriptor "_Bool" type_identifier) ) identifier) ;) })))
(translation_unit "undefined4 bitset_copy_(int *param_1,int *param_2)\n\n{\n  undefined1 uVar1;\n  uint *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  undefined1 *puVar10;\n  undefined *puVar11;\n  int local_1030 [1024];\n  int local_30;\n  uint local_2c;\n  uint local_28;\n  int *local_24;\n  \n  puVar11 = PTR___stack_chk_guard_0008df8c;\n  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;\n  (**(code **)(*param_1 + 0x24))();\n  local_30 = 0;\n  local_2c = 0x400;\n  do {\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}\n\n" (ERROR "undefined4 bitset_copy_(int *param_1,int *param_2)\n\n{\n  undefined1 uVar1;\n  uint *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  undefined1 *puVar10;\n  undefined *puVar11;\n  int local_1030 [1024];\n  int local_30;\n  uint local_2c;\n  uint local_28;\n  int *local_24;\n  \n  puVar11 = PTR___stack_chk_guard_0008df8c;\n  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;\n  (**(code **)(*param_1 + 0x24))();\n  local_30 = 0;\n  local_2c = 0x400;\n  do {\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}" type_identifier (function_declarator "bitset_copy_(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int local_1030 [1024];" primitive_type (array_declarator "local_1030 [1024]" identifier [ number_literal ]) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_guard_0008df8c;" (assignment_expression "puVar11 = PTR___stack_chk_guard_0008df8c" identifier = identifier) ;) (expression_statement "local_24 = *(int **)PTR___stack_chk_guard_0008df8c;" (assignment_expression "local_24 = *(int **)PTR___stack_chk_guard_0008df8c" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_0008df8c" * (cast_expression "(int **)PTR___stack_chk_guard_0008df8c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(**(code **)(*param_1 + 0x24))();" (call_expression "(**(code **)(*param_1 + 0x24))()" (parenthesized_expression "(**(code **)(*param_1 + 0x24))" ( (pointer_expression "**(code **)(*param_1 + 0x24)" * (pointer_expression "*(code **)(*param_1 + 0x24)" * (cast_expression "(code **)(*param_1 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x24)" ( (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0x400;" (assignment_expression "local_2c = 0x400" identifier = number_literal) ;) do (compound_statement "{\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}" { (expression_statement "uVar8 = 0x400;" (assignment_expression "uVar8 = 0x400" identifier = number_literal) ;) (expression_statement "piVar6 = local_1030;" (assignment_expression "piVar6 = local_1030" identifier = identifier) ;) (expression_statement "piVar9 = &local_30;" (assignment_expression "piVar9 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);" (assignment_expression "local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400)" identifier = (call_expression "(**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400)" (parenthesized_expression "(**(code **)(*param_2 + 0x74))" ( (pointer_expression "**(code **)(*param_2 + 0x74)" * (pointer_expression "*(code **)(*param_2 + 0x74)" * (cast_expression "(code **)(*param_2 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x74)" ( (binary_expression "*param_2 + 0x74" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,local_1030,0x400)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (local_2c == 0) break;" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);" do (compound_statement "{\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    }" { (while_statement "while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }" { (expression_statement "piVar6 = (int *)local_1030[local_28];" (assignment_expression "piVar6 = (int *)local_1030[local_28]" identifier = (cast_expression "(int *)local_1030[local_28]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_1030[local_28]" identifier [ identifier ]))) ;) (expression_statement "uVar3 = ((uint)piVar6 >> 5) - param_1[1];" (assignment_expression "uVar3 = ((uint)piVar6 >> 5) - param_1[1]" identifier = (binary_expression "((uint)piVar6 >> 5) - param_1[1]" (parenthesized_expression "((uint)piVar6 >> 5)" ( (binary_expression "(uint)piVar6 >> 5" (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar3 < (uint)param_1[2]) break;" if (parenthesized_expression "(uVar3 < (uint)param_1[2])" ( (binary_expression "uVar3 < (uint)param_1[2]" identifier < (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)*param_1)(param_1);" (call_expression "(**(code **)*param_1)(param_1)" (parenthesized_expression "(**(code **)*param_1)" ( (pointer_expression "**(code **)*param_1" * (pointer_expression "*(code **)*param_1" * (cast_expression "(code **)*param_1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_1" * identifier)))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (if_statement "if (local_2c <= local_28) goto LAB_00057e38;" if (parenthesized_expression "(local_2c <= local_28)" ( (binary_expression "local_2c <= local_28" identifier <= identifier) )) (goto_statement "goto LAB_00057e38;" goto statement_identifier ;)) })) (expression_statement "puVar2 = (uint *)(param_1[3] + uVar3 * 4);" (assignment_expression "puVar2 = (uint *)(param_1[3] + uVar3 * 4)" identifier = (cast_expression "(uint *)(param_1[3] + uVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + uVar3 * 4)" ( (binary_expression "param_1[3] + uVar3 * 4" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));" (assignment_expression "piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" identifier = (cast_expression "(int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" ( (binary_expression "*puVar2 | 1 << ((uint)piVar6 & 0x1f)" (pointer_expression "*puVar2" * identifier) | (binary_expression "1 << ((uint)piVar6 & 0x1f)" number_literal << (parenthesized_expression "((uint)piVar6 & 0x1f)" ( (binary_expression "(uint)piVar6 & 0x1f" (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) )))) ;) (expression_statement "*puVar2 = (uint)piVar6;" (assignment_expression "*puVar2 = (uint)piVar6" (pointer_expression "*puVar2" * identifier) = (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_28 < local_2c)" ( (binary_expression "local_28 < local_2c" identifier < identifier) )) ;) (labeled_statement "LAB_00057e38:\n  } while (local_2c == 0x400);" statement_identifier : (ERROR "}" }) (while_statement "while (local_2c == 0x400);" while (parenthesized_expression "(local_2c == 0x400)" ( (binary_expression "local_2c == 0x400" identifier == number_literal) )) (expression_statement ";" ;))) (if_statement "if (local_24 == *(int **)puVar11) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int **)puVar11)" ( (binary_expression "local_24 == *(int **)puVar11" identifier == (pointer_expression "*(int **)puVar11" * (cast_expression "(int **)puVar11" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "piVar5 = local_24;" (assignment_expression "piVar5 = local_24" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_0008df68;" (assignment_expression "puVar11 = PTR___stack_chk_fail_0008df68" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0008df68)();" (call_expression "(*(code *)PTR___stack_chk_fail_0008df68)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0008df68)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0008df68" * (cast_expression "(code *)PTR___stack_chk_fail_0008df68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar10 = *(undefined1 **)(puVar11 + 0x35e78);" (assignment_expression "puVar10 = *(undefined1 **)(puVar11 + 0x35e78)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + 0x35e78)" * (cast_expression "(undefined1 **)(puVar11 + 0x35e78)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x35e78)" ( (binary_expression "puVar11 + 0x35e78" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(*piVar5 + 0x80);" (assignment_expression "iVar7 = *(int *)(*piVar5 + 0x80)" identifier = (pointer_expression "*(int *)(*piVar5 + 0x80)" * (cast_expression "(int *)(*piVar5 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0x80)" ( (binary_expression "*piVar5 + 0x80" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar1 = *puVar10;" (assignment_expression "uVar1 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (if_statement "if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }" if (parenthesized_expression "(iVar7 == 5)" ( (binary_expression "iVar7 == 5" identifier == number_literal) )) (compound_statement "{\n    iVar7 = bitset_stats_type_get();\n  }" { (expression_statement "iVar7 = bitset_stats_type_get();" (assignment_expression "iVar7 = bitset_stats_type_get()" identifier = (call_expression "bitset_stats_type_get()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "uVar4 = bitset_alloc(0,iVar7);" (assignment_expression "uVar4 = bitset_alloc(0,iVar7)" identifier = (call_expression "bitset_alloc(0,iVar7)" identifier (argument_list "(0,iVar7)" ( number_literal , identifier )))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*puVar10 = uVar1;" (assignment_expression "*puVar10 = uVar1" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "(**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);" (call_expression "(**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8)" (parenthesized_expression "(**(code **)(iVar7 + 0x3c))" ( (pointer_expression "**(code **)(iVar7 + 0x3c)" * (pointer_expression "*(code **)(iVar7 + 0x3c)" * (cast_expression "(code **)(iVar7 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) ))))) )) (argument_list "(uVar4,piVar6,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);" (call_expression "(**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4)" (parenthesized_expression "(**(code **)(*piVar9 + 0x50))" ( (pointer_expression "**(code **)(*piVar9 + 0x50)" * (pointer_expression "*(code **)(*piVar9 + 0x50)" * (cast_expression "(code **)(*piVar9 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x50)" ( (binary_expression "*piVar9 + 0x50" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,piVar9,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = bitset_free(uVar4);" (assignment_expression "uVar8 = bitset_free(uVar4)" identifier = (call_expression "bitset_free(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (return_statement "return uVar8;" return identifier ;) })))
(translation_unit (ERROR TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (break_statement break ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (ERROR }) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (expression_statement ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_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 ( IDENT , 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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })))
(ERROR "undefined4 bitset_copy_(int *param_1,int *param_2)\n\n{\n  undefined1 uVar1;\n  uint *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  undefined1 *puVar10;\n  undefined *puVar11;\n  int local_1030 [1024];\n  int local_30;\n  uint local_2c;\n  uint local_28;\n  int *local_24;\n  \n  puVar11 = PTR___stack_chk_guard_0008df8c;\n  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;\n  (**(code **)(*param_1 + 0x24))();\n  local_30 = 0;\n  local_2c = 0x400;\n  do {\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}" (type_identifier "undefined4") (function_declarator "bitset_copy_(int *param_1,int *param_2)" (identifier "bitset_copy_") (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int local_1030 [1024];" (primitive_type "int") (array_declarator "local_1030 [1024]" (identifier "local_1030") ([ "[") (number_literal "1024") (] "]")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "puVar11 = PTR___stack_chk_guard_0008df8c;" (assignment_expression "puVar11 = PTR___stack_chk_guard_0008df8c" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_guard_0008df8c")) (; ";")) (expression_statement "local_24 = *(int **)PTR___stack_chk_guard_0008df8c;" (assignment_expression "local_24 = *(int **)PTR___stack_chk_guard_0008df8c" (identifier "local_24") (= "=") (pointer_expression "*(int **)PTR___stack_chk_guard_0008df8c" (* "*") (cast_expression "(int **)PTR___stack_chk_guard_0008df8c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0008df8c")))) (; ";")) (expression_statement "(**(code **)(*param_1 + 0x24))();" (call_expression "(**(code **)(*param_1 + 0x24))()" (parenthesized_expression "(**(code **)(*param_1 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x24)" (* "*") (cast_expression "(code **)(*param_1 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x24)" (( "(") (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0x400;" (assignment_expression "local_2c = 0x400" (identifier "local_2c") (= "=") (number_literal "0x400")) (; ";")) (do "do") (compound_statement "{\n    uVar8 = 0x400;\n    piVar6 = local_1030;\n    piVar9 = &local_30;\n    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);\n    if (local_2c == 0) break;\n    local_28 = 0;\n    do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);\nLAB_00057e38:\n  } while (local_2c == 0x400);\n  if (local_24 == *(int **)puVar11) {\n    return 1;\n  }\n  piVar5 = local_24;\n  puVar11 = PTR___stack_chk_fail_0008df68;\n  (*(code *)PTR___stack_chk_fail_0008df68)();\n  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);\n  iVar7 = *(int *)(*piVar5 + 0x80);\n  uVar1 = *puVar10;\n  *puVar10 = 0;\n  if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }\n  uVar4 = bitset_alloc(0,iVar7);\n  iVar7 = *piVar6;\n  *puVar10 = uVar1;\n  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);\n  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);\n  uVar8 = bitset_free(uVar4);\n  return uVar8;\n}" ({ "{") (expression_statement "uVar8 = 0x400;" (assignment_expression "uVar8 = 0x400" (identifier "uVar8") (= "=") (number_literal "0x400")) (; ";")) (expression_statement "piVar6 = local_1030;" (assignment_expression "piVar6 = local_1030" (identifier "piVar6") (= "=") (identifier "local_1030")) (; ";")) (expression_statement "piVar9 = &local_30;" (assignment_expression "piVar9 = &local_30" (identifier "piVar9") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);" (assignment_expression "local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400)" (identifier "local_2c") (= "=") (call_expression "(**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400)" (parenthesized_expression "(**(code **)(*param_2 + 0x74))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x74)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x74)" (* "*") (cast_expression "(code **)(*param_2 + 0x74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x74)" (( "(") (binary_expression "*param_2 + 0x74" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x74")) () ")"))))) () ")")) (argument_list "(param_2,local_1030,0x400)" (( "(") (identifier "param_2") (, ",") (identifier "local_1030") (, ",") (number_literal "0x400") () ")")))) (; ";")) (if_statement "if (local_2c == 0) break;" (if "if") (parenthesized_expression "(local_2c == 0)" (( "(") (binary_expression "local_2c == 0" (identifier "local_2c") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    } while (local_28 < local_2c);" (do "do") (compound_statement "{\n      while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }\n      puVar2 = (uint *)(param_1[3] + uVar3 * 4);\n      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));\n      *puVar2 = (uint)piVar6;\n      local_28 = local_28 + 1;\n    }" ({ "{") (while_statement "while( true ) {\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        piVar6 = (int *)local_1030[local_28];\n        uVar3 = ((uint)piVar6 >> 5) - param_1[1];\n        if (uVar3 < (uint)param_1[2]) break;\n        (**(code **)*param_1)(param_1);\n        local_28 = local_28 + 1;\n        if (local_2c <= local_28) goto LAB_00057e38;\n      }" ({ "{") (expression_statement "piVar6 = (int *)local_1030[local_28];" (assignment_expression "piVar6 = (int *)local_1030[local_28]" (identifier "piVar6") (= "=") (cast_expression "(int *)local_1030[local_28]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_1030[local_28]" (identifier "local_1030") ([ "[") (identifier "local_28") (] "]")))) (; ";")) (expression_statement "uVar3 = ((uint)piVar6 >> 5) - param_1[1];" (assignment_expression "uVar3 = ((uint)piVar6 >> 5) - param_1[1]" (identifier "uVar3") (= "=") (binary_expression "((uint)piVar6 >> 5) - param_1[1]" (parenthesized_expression "((uint)piVar6 >> 5)" (( "(") (binary_expression "(uint)piVar6 >> 5" (cast_expression "(uint)piVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar6")) (>> ">>") (number_literal "5")) () ")")) (- "-") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (uVar3 < (uint)param_1[2]) break;" (if "if") (parenthesized_expression "(uVar3 < (uint)param_1[2])" (( "(") (binary_expression "uVar3 < (uint)param_1[2]" (identifier "uVar3") (< "<") (cast_expression "(uint)param_1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "(**(code **)*param_1)(param_1);" (call_expression "(**(code **)*param_1)(param_1)" (parenthesized_expression "(**(code **)*param_1)" (( "(") (pointer_expression "**(code **)*param_1" (* "*") (pointer_expression "*(code **)*param_1" (* "*") (cast_expression "(code **)*param_1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_2c <= local_28) goto LAB_00057e38;" (if "if") (parenthesized_expression "(local_2c <= local_28)" (( "(") (binary_expression "local_2c <= local_28" (identifier "local_2c") (<= "<=") (identifier "local_28")) () ")")) (goto_statement "goto LAB_00057e38;" (goto "goto") (statement_identifier "LAB_00057e38") (; ";"))) (} "}"))) (expression_statement "puVar2 = (uint *)(param_1[3] + uVar3 * 4);" (assignment_expression "puVar2 = (uint *)(param_1[3] + uVar3 * 4)" (identifier "puVar2") (= "=") (cast_expression "(uint *)(param_1[3] + uVar3 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[3] + uVar3 * 4)" (( "(") (binary_expression "param_1[3] + uVar3 * 4" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));" (assignment_expression "piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" (identifier "piVar6") (= "=") (cast_expression "(int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*puVar2 | 1 << ((uint)piVar6 & 0x1f))" (( "(") (binary_expression "*puVar2 | 1 << ((uint)piVar6 & 0x1f)" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (| "|") (binary_expression "1 << ((uint)piVar6 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)piVar6 & 0x1f)" (( "(") (binary_expression "(uint)piVar6 & 0x1f" (cast_expression "(uint)piVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar6")) (& "&") (number_literal "0x1f")) () ")")))) () ")")))) (; ";")) (expression_statement "*puVar2 = (uint)piVar6;" (assignment_expression "*puVar2 = (uint)piVar6" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (cast_expression "(uint)piVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_28 < local_2c)" (( "(") (binary_expression "local_28 < local_2c" (identifier "local_28") (< "<") (identifier "local_2c")) () ")")) (; ";")) (labeled_statement "LAB_00057e38:\n  } while (local_2c == 0x400);" (statement_identifier "LAB_00057e38") (: ":") (ERROR "}" (} "}")) (while_statement "while (local_2c == 0x400);" (while "while") (parenthesized_expression "(local_2c == 0x400)" (( "(") (binary_expression "local_2c == 0x400" (identifier "local_2c") (== "==") (number_literal "0x400")) () ")")) (expression_statement ";" (; ";")))) (if_statement "if (local_24 == *(int **)puVar11) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int **)puVar11)" (( "(") (binary_expression "local_24 == *(int **)puVar11" (identifier "local_24") (== "==") (pointer_expression "*(int **)puVar11" (* "*") (cast_expression "(int **)puVar11" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar11")))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "piVar5 = local_24;" (assignment_expression "piVar5 = local_24" (identifier "piVar5") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar11 = PTR___stack_chk_fail_0008df68;" (assignment_expression "puVar11 = PTR___stack_chk_fail_0008df68" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_fail_0008df68")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0008df68)();" (call_expression "(*(code *)PTR___stack_chk_fail_0008df68)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0008df68)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0008df68" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0008df68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0008df68"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = *(undefined1 **)(puVar11 + 0x35e78);" (assignment_expression "puVar10 = *(undefined1 **)(puVar11 + 0x35e78)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined1 **)(puVar11 + 0x35e78)" (* "*") (cast_expression "(undefined1 **)(puVar11 + 0x35e78)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x35e78)" (( "(") (binary_expression "puVar11 + 0x35e78" (identifier "puVar11") (+ "+") (number_literal "0x35e78")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(*piVar5 + 0x80);" (assignment_expression "iVar7 = *(int *)(*piVar5 + 0x80)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(*piVar5 + 0x80)" (* "*") (cast_expression "(int *)(*piVar5 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + 0x80)" (( "(") (binary_expression "*piVar5 + 0x80" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "uVar1 = *puVar10;" (assignment_expression "uVar1 = *puVar10" (identifier "uVar1") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 == 5) {\n    iVar7 = bitset_stats_type_get();\n  }" (if "if") (parenthesized_expression "(iVar7 == 5)" (( "(") (binary_expression "iVar7 == 5" (identifier "iVar7") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    iVar7 = bitset_stats_type_get();\n  }" ({ "{") (expression_statement "iVar7 = bitset_stats_type_get();" (assignment_expression "iVar7 = bitset_stats_type_get()" (identifier "iVar7") (= "=") (call_expression "bitset_stats_type_get()" (identifier "bitset_stats_type_get") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "uVar4 = bitset_alloc(0,iVar7);" (assignment_expression "uVar4 = bitset_alloc(0,iVar7)" (identifier "uVar4") (= "=") (call_expression "bitset_alloc(0,iVar7)" (identifier "bitset_alloc") (argument_list "(0,iVar7)" (( "(") (number_literal "0") (, ",") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" (identifier "iVar7") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "*puVar10 = uVar1;" (assignment_expression "*puVar10 = uVar1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "(**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);" (call_expression "(**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8)" (parenthesized_expression "(**(code **)(iVar7 + 0x3c))" (( "(") (pointer_expression "**(code **)(iVar7 + 0x3c)" (* "*") (pointer_expression "*(code **)(iVar7 + 0x3c)" (* "*") (cast_expression "(code **)(iVar7 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x3c)" (( "(") (binary_expression "iVar7 + 0x3c" (identifier "iVar7") (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(uVar4,piVar6,uVar8)" (( "(") (identifier "uVar4") (, ",") (identifier "piVar6") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "(**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);" (call_expression "(**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4)" (parenthesized_expression "(**(code **)(*piVar9 + 0x50))" (( "(") (pointer_expression "**(code **)(*piVar9 + 0x50)" (* "*") (pointer_expression "*(code **)(*piVar9 + 0x50)" (* "*") (cast_expression "(code **)(*piVar9 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar9 + 0x50)" (( "(") (binary_expression "*piVar9 + 0x50" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(piVar5,piVar9,uVar4)" (( "(") (identifier "piVar5") (, ",") (identifier "piVar9") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "uVar8 = bitset_free(uVar4);" (assignment_expression "uVar8 = bitset_free(uVar4)" (identifier "uVar8") (= "=") (call_expression "bitset_free(uVar4)" (identifier "bitset_free") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}")))

_Bool bitset_copy_(bitset_conflict dst,bitset_conflict src)

{
  bitset_conflict bset;
  uint uVar1;
  bitset_conflict bset_00;
  undefined1 uVar2;
  bitset_bindex bVar3;
  bitset_iterator *pbVar4;
  bitset_type type;
  undefined4 uVar5;
  bitset_bindex *pbVar6;
  undefined1 *puVar7;
  undefined *puVar8;
  bitset_iterator iter;
  
  puVar8 = PTR___stack_chk_guard_0008df8c;
  bset = *(bitset_conflict *)PTR___stack_chk_guard_0008df8c;
  (*((dst->b).vtable)->zero)(dst);
  iter.next = 0;
  iter.num = 0x400;
  do {
    uVar5 = 0x400;
    pbVar4 = &iter;
    pbVar6 = &iter.next;
    iter.num = (*((src->b).vtable)->list)(src,iter.list,0x400,&iter.next);
    if (iter.num == 0) break;
    iter.i = 0;
    do {
      while( true ) {
        pbVar4 = (bitset_iterator *)iter.list[iter.i];
        uVar1 = ((uint)pbVar4 >> 5) - (dst->b).cindex;
        if (uVar1 < (dst->b).csize) break;
        (*((dst->b).vtable)->set)(dst,(bitset_bindex)pbVar4);
        iter.i = iter.i + 1;
        if (iter.num <= iter.i) goto LAB_00057e38;
      }
      pbVar4 = (bitset_iterator *)((dst->b).cdata[uVar1] | 1 << ((uint)pbVar4 & 0x1f));
      (dst->b).cdata[uVar1] = (bitset_word)pbVar4;
      iter.i = iter.i + 1;
    } while (iter.i < iter.num);
LAB_00057e38:
  } while (iter.num == 0x400);
  if (bset == *(bitset_conflict *)puVar8) {
    return true;
  }
  puVar8 = PTR___stack_chk_fail_0008df68;
  (*(code *)PTR___stack_chk_fail_0008df68)();
  puVar7 = *(undefined1 **)(puVar8 + 0x35e78);
  type = ((bset->b).vtable)->type;
  uVar2 = *puVar7;
  *puVar7 = 0;
  if (type == BITSET_STATS) {
    type = bitset_stats_type_get(bset);
  }
  bset_00 = bitset_alloc(0,type);
  bVar3 = pbVar4->list[0];
  *puVar7 = uVar2;
  (**(code **)(bVar3 + 0x3c))(bset_00,pbVar4,uVar5);
  uVar2 = (**(code **)(*pbVar6 + 0x50))(bset,pbVar6,bset_00);
  bitset_free(bset_00);
  return (_Bool)uVar2;
}


(translation_unit (ERROR type: (type_identifier) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (break_statement)) (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: (pointer_expression argument: (identifier)))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (expression_statement))) (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 declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (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: (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: (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 (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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: (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (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 (identifier) (identifier) (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (identifier)))))

undefined4 MASKED(int *param_1,int *param_2)

{
  undefined1 uVar1;
  uint *puVar2;
  uint uVar3;
  undefined4 uVar4;
  int *piVar5;
  int *piVar6;
  int iVar7;
  undefined4 uVar8;
  int *piVar9;
  undefined1 *puVar10;
  undefined *puVar11;
  int local_1030 [1024];
  int local_30;
  uint local_2c;
  uint local_28;
  int *local_24;
  
  puVar11 = PTR___stack_chk_guard_0008df8c;
  local_24 = *(int **)PTR___stack_chk_guard_0008df8c;
  (**(code **)(*param_1 + 0x24))();
  local_30 = 0;
  local_2c = 0x400;
  do {
    uVar8 = 0x400;
    piVar6 = local_1030;
    piVar9 = &local_30;
    local_2c = (**(code **)(*param_2 + 0x74))(param_2,local_1030,0x400);
    if (local_2c == 0) break;
    local_28 = 0;
    do {
      while( true ) {
        piVar6 = (int *)local_1030[local_28];
        uVar3 = ((uint)piVar6 >> 5) - param_1[1];
        if (uVar3 < (uint)param_1[2]) break;
        (**(code **)*param_1)(param_1);
        local_28 = local_28 + 1;
        if (local_2c <= local_28) goto LAB_00057e38;
      }
      puVar2 = (uint *)(param_1[3] + uVar3 * 4);
      piVar6 = (int *)(*puVar2 | 1 << ((uint)piVar6 & 0x1f));
      *puVar2 = (uint)piVar6;
      local_28 = local_28 + 1;
    } while (local_28 < local_2c);
LAB_00057e38:
  } while (local_2c == 0x400);
  if (local_24 == *(int **)puVar11) {
    return 1;
  }
  piVar5 = local_24;
  puVar11 = PTR___stack_chk_fail_0008df68;
  (*(code *)PTR___stack_chk_fail_0008df68)();
  puVar10 = *(undefined1 **)(puVar11 + 0x35e78);
  iVar7 = *(int *)(*piVar5 + 0x80);
  uVar1 = *puVar10;
  *puVar10 = 0;
  if (iVar7 == 5) {
    iVar7 = bitset_stats_type_get();
  }
  uVar4 = bitset_alloc(0,iVar7);
  iVar7 = *piVar6;
  *puVar10 = uVar1;
  (**(code **)(iVar7 + 0x3c))(uVar4,piVar6,uVar8);
  (**(code **)(*piVar9 + 0x50))(piVar5,piVar9,uVar4);
  uVar8 = bitset_free(uVar4);
  return uVar8;
}

