
void drop_usermodehelper(char *filename,int cap_idx)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  uint lo;
  uint hi;
  char buf [32];
  
  iVar1 = *(int *)PTR___stack_chk_guard_00132164;
  pcVar3 = buf;
  iVar2 = (*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f);
  if (iVar2 < 0) goto LAB_00098264;
  buf[iVar2] = '\0';
  iVar2 = (*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi);
  if (iVar2 != 2) {
    (*(code *)PTR_bb_perror_msg_and_die_001311f4)
              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);
  }
  pcVar3 = &DAT_00000001;
  if (0x1f < cap_idx) goto LAB_00098280;
  lo = lo & ~(1 << (cap_idx & 0x1fU));
  while( true ) {
    filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);
    pcVar3 = &DAT_00000001;
    (*(code *)PTR___dprintf_chk_00131d90)
              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);
    (*(code *)PTR_close_00131ca8)(filename);
LAB_00098264:
    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_00098280:
    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));
  }
  return;
}



void FUN_00098148(undefined4 param_1,uint param_2)

{
  int iVar1;
  undefined1 *puVar2;
  uint local_3c;
  uint local_38;
  undefined1 auStack_34 [32];
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_00132164;
  puVar2 = auStack_34;
  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);
  if (iVar1 < 0) goto LAB_00098264;
  auStack_34[iVar1] = 0;
  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);
  if (iVar1 != 2) {
    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);
  }
  puVar2 = &DAT_00000001;
  if (0x1f < (int)param_2) goto LAB_00098280;
  local_3c = local_3c & ~(1 << (param_2 & 0x1f));
  while( true ) {
    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);
    puVar2 = &DAT_00000001;
    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);
    (*(code *)PTR_close_00131ca8)(param_1);
LAB_00098264:
    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_00098280:
    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));
  }
  return;
}


lui gp,0xa
addiu gp,gp,0x1008
addu gp,gp,t9
addiu sp,sp,-0x60
sw ra,0x5c(sp)
sw s1,0x58(sp)
sw s0,0x54(sp)
sw gp,0x18(sp)
or s0,a0,zero
or s1,a1,zero
lw v0,-0x6fec(gp)
lw v0,0x0(v0)
sw v0,0x4c(sp)
li a2,0x1f
addiu a1,sp,0x2c
lw t9,-0x7d58(gp)
jalr t9
_nop
lw gp,0x18(sp)
bltz v0,0x00098264
_addiu v1,sp,0x50
addu v0,v1,v0
sb zero,-0x24(v0)
addiu a3,sp,0x28
addiu a2,sp,0x24
lw a1,-0x7fac(gp)
addiu a1,a1,0x125c
addiu a0,sp,0x2c
lw t9,-0x739c(gp)
jalr t9
_nop
lw gp,0x18(sp)
li v1,0x2
beq v0,v1,0x000981e8
_or a1,s0,zero
lw a0,-0x7fac(gp)
addiu a0,a0,0x1264
lw t9,-0x7f5c(gp)
jalr t9
_nop
slti v0,s1,0x20
beq v0,zero,0x00098280
_li a1,0x1
sllv a1,a1,s1
nor a1,zero,a1
lw v0,0x24(sp)
and a1,v0,a1
sw a1,0x24(sp)
li a1,0x1
or a0,s0,zero
lw t9,-0x7ebc(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s0,v0,zero
lw v0,0x28(sp)
sw v0,0x10(sp)
lw a3,0x24(sp)
lw a2,-0x7fac(gp)
addiu a2,a2,0x125c
li a1,0x1
or a0,s0,zero
lw t9,-0x73c0(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,s0,zero
lw t9,-0x74a8(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x4c(sp)
lw v0,-0x6fec(gp)
lw v0,0x0(v0)
beq v1,v0,0x00098298
_lw t9,-0x706c(gp)
jalr t9
_nop
sllv a1,a1,s1
nor a1,zero,a1
lw v0,0x28(sp)
and a1,v0,a1
b 0x00098208
_sw a1,0x28(sp)
lw ra,0x5c(sp)
lw s1,0x58(sp)
lw s0,0x54(sp)
jr ra
_addiu sp,sp,0x60
(translation_unit "void FUN_00098148(undefined4 param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}\n\n" (function_definition "void FUN_00098148(undefined4 param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00098148(undefined4 param_1,uint param_2)" identifier (parameter_list "(undefined4 param_1,uint param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined1 auStack_34 [32];" type_identifier (array_declarator "auStack_34 [32]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar2 = auStack_34;" (assignment_expression "puVar2 = auStack_34" identifier = identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);" (assignment_expression "iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f)" identifier = (call_expression "(*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f)" (parenthesized_expression "(*(code *)PTR_FUN_001313f8)" ( (pointer_expression "*(code *)PTR_FUN_001313f8" * (cast_expression "(code *)PTR_FUN_001313f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar2,0x1f)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 < 0) goto LAB_00098264;" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00098264;" goto statement_identifier ;)) (expression_statement "auStack_34[iVar1] = 0;" (assignment_expression "auStack_34[iVar1] = 0" (subscript_expression "auStack_34[iVar1]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);" (assignment_expression "iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" identifier = (call_expression "(*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" (parenthesized_expression "(*(code *)PTR_sscanf_00131db4)" ( (pointer_expression "*(code *)PTR_sscanf_00131db4" * (cast_expression "(code *)PTR_sscanf_00131db4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" ( identifier , (binary_expression "PTR_FUN_001311a4 + 0x125c" identifier + number_literal) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_38" & identifier) )))) ;) (if_statement "if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }" { (expression_statement "(*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);" (call_expression "(*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_001311f4)" ( (pointer_expression "*(code *)PTR_FUN_001311f4" * (cast_expression "(code *)PTR_FUN_001311f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_001311a4 + 0x1264,param_1)" ( (binary_expression "PTR_FUN_001311a4 + 0x1264" identifier + number_literal) , identifier ))) ;) })) (expression_statement "puVar2 = &DAT_00000001;" (assignment_expression "puVar2 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (if_statement "if (0x1f < (int)param_2) goto LAB_00098280;" if (parenthesized_expression "(0x1f < (int)param_2)" ( (binary_expression "0x1f < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00098280;" goto statement_identifier ;)) (expression_statement "local_3c = local_3c & ~(1 << (param_2 & 0x1f));" (assignment_expression "local_3c = local_3c & ~(1 << (param_2 & 0x1f))" identifier = (binary_expression "local_3c & ~(1 << (param_2 & 0x1f))" identifier & (unary_expression "~(1 << (param_2 & 0x1f))" ~ (parenthesized_expression "(1 << (param_2 & 0x1f))" ( (binary_expression "1 << (param_2 & 0x1f)" number_literal << (parenthesized_expression "(param_2 & 0x1f)" ( (binary_expression "param_2 & 0x1f" identifier & number_literal) ))) ))))) ;) (while_statement "while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }" { (expression_statement "param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);" (assignment_expression "param_1 = (*(code *)PTR_FUN_00131294)(param_1,1)" identifier = (call_expression "(*(code *)PTR_FUN_00131294)(param_1,1)" (parenthesized_expression "(*(code *)PTR_FUN_00131294)" ( (pointer_expression "*(code *)PTR_FUN_00131294" * (cast_expression "(code *)PTR_FUN_00131294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1)" ( identifier , number_literal )))) ;) (expression_statement "puVar2 = &DAT_00000001;" (assignment_expression "puVar2 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (expression_statement "(*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);" (call_expression "(*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38)" (parenthesized_expression "(*(code *)PTR___dprintf_chk_00131d90)" ( (pointer_expression "*(code *)PTR___dprintf_chk_00131d90" * (cast_expression "(code *)PTR___dprintf_chk_00131d90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38)" ( identifier , number_literal , (binary_expression "PTR_FUN_001311a4 + 0x125c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_close_00131ca8)(param_1);" (call_expression "(*(code *)PTR_close_00131ca8)(param_1)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" ( (pointer_expression "*(code *)PTR_close_00131ca8" * (cast_expression "(code *)PTR_close_00131ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (labeled_statement "LAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" statement_identifier : (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00132164" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;))) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));" statement_identifier : (expression_statement "local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));" (assignment_expression "local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f))" identifier = (binary_expression "local_38 & ~((int)puVar2 << (param_2 & 0x1f))" identifier & (unary_expression "~((int)puVar2 << (param_2 & 0x1f))" ~ (parenthesized_expression "((int)puVar2 << (param_2 & 0x1f))" ( (binary_expression "(int)puVar2 << (param_2 & 0x1f)" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "(param_2 & 0x1f)" ( (binary_expression "param_2 & 0x1f" identifier & number_literal) ))) ))))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit "void drop_usermodehelper(char *filename,int cap_idx)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  uint lo;\n  uint hi;\n  char buf [32];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar3 = buf;\n  iVar2 = (*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f);\n  if (iVar2 < 0) goto LAB_00098264;\n  buf[iVar2] = '\0';\n  iVar2 = (*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi);\n  if (iVar2 != 2) {\n    (*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);\n  }\n  pcVar3 = &DAT_00000001;\n  if (0x1f < cap_idx) goto LAB_00098280;\n  lo = lo & ~(1 << (cap_idx & 0x1fU));\n  while( true ) {\n    filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);\n    pcVar3 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);\n    (*(code *)PTR_close_00131ca8)(filename);\nLAB_00098264:\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));\n  }\n  return;\n}\n\n" (function_definition "void drop_usermodehelper(char *filename,int cap_idx)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  uint lo;\n  uint hi;\n  char buf [32];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar3 = buf;\n  iVar2 = (*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f);\n  if (iVar2 < 0) goto LAB_00098264;\n  buf[iVar2] = '\0';\n  iVar2 = (*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi);\n  if (iVar2 != 2) {\n    (*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);\n  }\n  pcVar3 = &DAT_00000001;\n  if (0x1f < cap_idx) goto LAB_00098280;\n  lo = lo & ~(1 << (cap_idx & 0x1fU));\n  while( true ) {\n    filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);\n    pcVar3 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);\n    (*(code *)PTR_close_00131ca8)(filename);\nLAB_00098264:\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));\n  }\n  return;\n}" primitive_type (function_declarator "drop_usermodehelper(char *filename,int cap_idx)" identifier (parameter_list "(char *filename,int cap_idx)" ( (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) , (parameter_declaration "int cap_idx" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  uint lo;\n  uint hi;\n  char buf [32];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar3 = buf;\n  iVar2 = (*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f);\n  if (iVar2 < 0) goto LAB_00098264;\n  buf[iVar2] = '\0';\n  iVar2 = (*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi);\n  if (iVar2 != 2) {\n    (*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);\n  }\n  pcVar3 = &DAT_00000001;\n  if (0x1f < cap_idx) goto LAB_00098280;\n  lo = lo & ~(1 << (cap_idx & 0x1fU));\n  while( true ) {\n    filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);\n    pcVar3 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);\n    (*(code *)PTR_close_00131ca8)(filename);\nLAB_00098264:\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint lo;" type_identifier identifier ;) (declaration "uint hi;" type_identifier identifier ;) (declaration "char buf [32];" primitive_type (array_declarator "buf [32]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar3 = buf;" (assignment_expression "pcVar3 = buf" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f);" (assignment_expression "iVar2 = (*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f)" identifier = (call_expression "(*(code *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f)" (parenthesized_expression "(*(code *)PTR_open_read_close_001313f8)" ( (pointer_expression "*(code *)PTR_open_read_close_001313f8" * (cast_expression "(code *)PTR_open_read_close_001313f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filename,pcVar3,0x1f)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 < 0) goto LAB_00098264;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00098264;" goto statement_identifier ;)) (expression_statement "buf[iVar2] = '\0';" (assignment_expression "buf[iVar2] = '\0'" (subscript_expression "buf[iVar2]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi)" identifier = (call_expression "(*(code *)PTR_sscanf_00131db4)(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi)" (parenthesized_expression "(*(code *)PTR_sscanf_00131db4)" ( (pointer_expression "*(code *)PTR_sscanf_00131db4" * (cast_expression "(code *)PTR_sscanf_00131db4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buf,PTR_bdcommands_4__name_4__001311a4 + 0x125c,&lo,&hi)" ( identifier , (binary_expression "PTR_bdcommands_4__name_4__001311a4 + 0x125c" identifier + number_literal) , (pointer_expression "&lo" & identifier) , (pointer_expression "&hi" & identifier) )))) ;) (if_statement "if (iVar2 != 2) {\n    (*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);\n  }" if (parenthesized_expression "(iVar2 != 2)" ( (binary_expression "iVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);\n  }" { (expression_statement "(*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename);" (call_expression "(*(code *)PTR_bb_perror_msg_and_die_001311f4)\n              (PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename)" (parenthesized_expression "(*(code *)PTR_bb_perror_msg_and_die_001311f4)" ( (pointer_expression "*(code *)PTR_bb_perror_msg_and_die_001311f4" * (cast_expression "(code *)PTR_bb_perror_msg_and_die_001311f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_bdcommands_4__name_4__001311a4 + 0x1264,filename)" ( (binary_expression "PTR_bdcommands_4__name_4__001311a4 + 0x1264" identifier + number_literal) , identifier ))) ;) })) (expression_statement "pcVar3 = &DAT_00000001;" (assignment_expression "pcVar3 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (if_statement "if (0x1f < cap_idx) goto LAB_00098280;" if (parenthesized_expression "(0x1f < cap_idx)" ( (binary_expression "0x1f < cap_idx" number_literal < identifier) )) (goto_statement "goto LAB_00098280;" goto statement_identifier ;)) (expression_statement "lo = lo & ~(1 << (cap_idx & 0x1fU));" (assignment_expression "lo = lo & ~(1 << (cap_idx & 0x1fU))" identifier = (binary_expression "lo & ~(1 << (cap_idx & 0x1fU))" identifier & (unary_expression "~(1 << (cap_idx & 0x1fU))" ~ (parenthesized_expression "(1 << (cap_idx & 0x1fU))" ( (binary_expression "1 << (cap_idx & 0x1fU)" number_literal << (parenthesized_expression "(cap_idx & 0x1fU)" ( (binary_expression "cap_idx & 0x1fU" identifier & number_literal) ))) ))))) ;) (while_statement "while( true ) {\n    filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);\n    pcVar3 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);\n    (*(code *)PTR_close_00131ca8)(filename);\nLAB_00098264:\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);\n    pcVar3 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);\n    (*(code *)PTR_close_00131ca8)(filename);\nLAB_00098264:\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));\n  }" { (expression_statement "filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1);" (assignment_expression "filename = (char *)(*(code *)PTR_xopen_00131294)(filename,1)" identifier = (cast_expression "(char *)(*(code *)PTR_xopen_00131294)(filename,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xopen_00131294)(filename,1)" (parenthesized_expression "(*(code *)PTR_xopen_00131294)" ( (pointer_expression "*(code *)PTR_xopen_00131294" * (cast_expression "(code *)PTR_xopen_00131294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filename,1)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar3 = &DAT_00000001;" (assignment_expression "pcVar3 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (expression_statement "(*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi);" (call_expression "(*(code *)PTR___dprintf_chk_00131d90)\n              (filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi)" (parenthesized_expression "(*(code *)PTR___dprintf_chk_00131d90)" ( (pointer_expression "*(code *)PTR___dprintf_chk_00131d90" * (cast_expression "(code *)PTR___dprintf_chk_00131d90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filename,1,PTR_bdcommands_4__name_4__001311a4 + 0x125c,lo,hi)" ( identifier , number_literal , (binary_expression "PTR_bdcommands_4__name_4__001311a4 + 0x125c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_close_00131ca8)(filename);" (call_expression "(*(code *)PTR_close_00131ca8)(filename)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" ( (pointer_expression "*(code *)PTR_close_00131ca8" * (cast_expression "(code *)PTR_close_00131ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filename)" ( identifier ))) ;) (labeled_statement "LAB_00098264:\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;" statement_identifier : (if_statement "if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;" if (parenthesized_expression "(iVar1 == *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "iVar1 == *(int *)PTR___stack_chk_guard_00132164" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;))) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00098280:\n    hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));" statement_identifier : (expression_statement "hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU));" (assignment_expression "hi = hi & ~((int)pcVar3 << (cap_idx & 0x1fU))" identifier = (binary_expression "hi & ~((int)pcVar3 << (cap_idx & 0x1fU))" identifier & (unary_expression "~((int)pcVar3 << (cap_idx & 0x1fU))" ~ (parenthesized_expression "((int)pcVar3 << (cap_idx & 0x1fU))" ( (binary_expression "(int)pcVar3 << (cap_idx & 0x1fU)" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "(cap_idx & 0x1fU)" ( (binary_expression "cap_idx & 0x1fU" identifier & number_literal) ))) ))))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00098148(undefined4 param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}\n\n" (function_definition "void FUN_00098148(undefined4 param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00098148(undefined4 param_1,uint param_2)" identifier (parameter_list "(undefined4 param_1,uint param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined1 auStack_34 [32];" type_identifier (array_declarator "auStack_34 [32]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar2 = auStack_34;" (assignment_expression "puVar2 = auStack_34" identifier = identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);" (assignment_expression "iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f)" identifier = (call_expression "(*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f)" (parenthesized_expression "(*(code *)PTR_FUN_001313f8)" ( (pointer_expression "*(code *)PTR_FUN_001313f8" * (cast_expression "(code *)PTR_FUN_001313f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar2,0x1f)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 < 0) goto LAB_00098264;" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00098264;" goto statement_identifier ;)) (expression_statement "auStack_34[iVar1] = 0;" (assignment_expression "auStack_34[iVar1] = 0" (subscript_expression "auStack_34[iVar1]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);" (assignment_expression "iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" identifier = (call_expression "(*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" (parenthesized_expression "(*(code *)PTR_sscanf_00131db4)" ( (pointer_expression "*(code *)PTR_sscanf_00131db4" * (cast_expression "(code *)PTR_sscanf_00131db4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" ( identifier , (binary_expression "PTR_FUN_001311a4 + 0x125c" identifier + number_literal) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_38" & identifier) )))) ;) (if_statement "if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }" { (expression_statement "(*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);" (call_expression "(*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_001311f4)" ( (pointer_expression "*(code *)PTR_FUN_001311f4" * (cast_expression "(code *)PTR_FUN_001311f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_001311a4 + 0x1264,param_1)" ( (binary_expression "PTR_FUN_001311a4 + 0x1264" identifier + number_literal) , identifier ))) ;) })) (expression_statement "puVar2 = &DAT_00000001;" (assignment_expression "puVar2 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (if_statement "if (0x1f < (int)param_2) goto LAB_00098280;" if (parenthesized_expression "(0x1f < (int)param_2)" ( (binary_expression "0x1f < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00098280;" goto statement_identifier ;)) (expression_statement "local_3c = local_3c & ~(1 << (param_2 & 0x1f));" (assignment_expression "local_3c = local_3c & ~(1 << (param_2 & 0x1f))" identifier = (binary_expression "local_3c & ~(1 << (param_2 & 0x1f))" identifier & (unary_expression "~(1 << (param_2 & 0x1f))" ~ (parenthesized_expression "(1 << (param_2 & 0x1f))" ( (binary_expression "1 << (param_2 & 0x1f)" number_literal << (parenthesized_expression "(param_2 & 0x1f)" ( (binary_expression "param_2 & 0x1f" identifier & number_literal) ))) ))))) ;) (while_statement "while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }" { (expression_statement "param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);" (assignment_expression "param_1 = (*(code *)PTR_FUN_00131294)(param_1,1)" identifier = (call_expression "(*(code *)PTR_FUN_00131294)(param_1,1)" (parenthesized_expression "(*(code *)PTR_FUN_00131294)" ( (pointer_expression "*(code *)PTR_FUN_00131294" * (cast_expression "(code *)PTR_FUN_00131294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1)" ( identifier , number_literal )))) ;) (expression_statement "puVar2 = &DAT_00000001;" (assignment_expression "puVar2 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (expression_statement "(*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);" (call_expression "(*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38)" (parenthesized_expression "(*(code *)PTR___dprintf_chk_00131d90)" ( (pointer_expression "*(code *)PTR___dprintf_chk_00131d90" * (cast_expression "(code *)PTR___dprintf_chk_00131d90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38)" ( identifier , number_literal , (binary_expression "PTR_FUN_001311a4 + 0x125c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_close_00131ca8)(param_1);" (call_expression "(*(code *)PTR_close_00131ca8)(param_1)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" ( (pointer_expression "*(code *)PTR_close_00131ca8" * (cast_expression "(code *)PTR_close_00131ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (labeled_statement "LAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" statement_identifier : (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00132164" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;))) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));" statement_identifier : (expression_statement "local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));" (assignment_expression "local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f))" identifier = (binary_expression "local_38 & ~((int)puVar2 << (param_2 & 0x1f))" identifier & (unary_expression "~((int)puVar2 << (param_2 & 0x1f))" ~ (parenthesized_expression "((int)puVar2 << (param_2 & 0x1f))" ( (binary_expression "(int)puVar2 << (param_2 & 0x1f)" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "(param_2 & 0x1f)" ( (binary_expression "param_2 & 0x1f" identifier & number_literal) ))) ))))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (break_statement break ;))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;)) })) (return_statement return ;) })))
(function_definition "void FUN_00098148(undefined4 param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00098148(undefined4 param_1,uint param_2)" (identifier "FUN_00098148") (parameter_list "(undefined4 param_1,uint param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  uint local_3c;\n  uint local_38;\n  undefined1 auStack_34 [32];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  puVar2 = auStack_34;\n  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);\n  if (iVar1 < 0) goto LAB_00098264;\n  auStack_34[iVar1] = 0;\n  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);\n  if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }\n  puVar2 = &DAT_00000001;\n  if (0x1f < (int)param_2) goto LAB_00098280;\n  local_3c = local_3c & ~(1 << (param_2 & 0x1f));\n  while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "undefined1 auStack_34 [32];" (type_identifier "undefined1") (array_declarator "auStack_34 [32]" (identifier "auStack_34") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00132164" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00132164" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00132164")))) (; ";")) (expression_statement "puVar2 = auStack_34;" (assignment_expression "puVar2 = auStack_34" (identifier "puVar2") (= "=") (identifier "auStack_34")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);" (assignment_expression "iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f)" (parenthesized_expression "(*(code *)PTR_FUN_001313f8)" (( "(") (pointer_expression "*(code *)PTR_FUN_001313f8" (* "*") (cast_expression "(code *)PTR_FUN_001313f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001313f8"))) () ")")) (argument_list "(param_1,puVar2,0x1f)" (( "(") (identifier "param_1") (, ",") (identifier "puVar2") (, ",") (number_literal "0x1f") () ")")))) (; ";")) (if_statement "if (iVar1 < 0) goto LAB_00098264;" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00098264;" (goto "goto") (statement_identifier "LAB_00098264") (; ";"))) (expression_statement "auStack_34[iVar1] = 0;" (assignment_expression "auStack_34[iVar1] = 0" (subscript_expression "auStack_34[iVar1]" (identifier "auStack_34") ([ "[") (identifier "iVar1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);" (assignment_expression "iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" (parenthesized_expression "(*(code *)PTR_sscanf_00131db4)" (( "(") (pointer_expression "*(code *)PTR_sscanf_00131db4" (* "*") (cast_expression "(code *)PTR_sscanf_00131db4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_00131db4"))) () ")")) (argument_list "(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38)" (( "(") (identifier "auStack_34") (, ",") (binary_expression "PTR_FUN_001311a4 + 0x125c" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "0x125c")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (if_statement "if (iVar1 != 2) {\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }" (if "if") (parenthesized_expression "(iVar1 != 2)" (( "(") (binary_expression "iVar1 != 2" (identifier "iVar1") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);\n  }" ({ "{") (expression_statement "(*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);" (call_expression "(*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_001311f4)" (( "(") (pointer_expression "*(code *)PTR_FUN_001311f4" (* "*") (cast_expression "(code *)PTR_FUN_001311f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001311f4"))) () ")")) (argument_list "(PTR_FUN_001311a4 + 0x1264,param_1)" (( "(") (binary_expression "PTR_FUN_001311a4 + 0x1264" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "0x1264")) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = &DAT_00000001;" (assignment_expression "puVar2 = &DAT_00000001" (identifier "puVar2") (= "=") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001"))) (; ";")) (if_statement "if (0x1f < (int)param_2) goto LAB_00098280;" (if "if") (parenthesized_expression "(0x1f < (int)param_2)" (( "(") (binary_expression "0x1f < (int)param_2" (number_literal "0x1f") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (goto_statement "goto LAB_00098280;" (goto "goto") (statement_identifier "LAB_00098280") (; ";"))) (expression_statement "local_3c = local_3c & ~(1 << (param_2 & 0x1f));" (assignment_expression "local_3c = local_3c & ~(1 << (param_2 & 0x1f))" (identifier "local_3c") (= "=") (binary_expression "local_3c & ~(1 << (param_2 & 0x1f))" (identifier "local_3c") (& "&") (unary_expression "~(1 << (param_2 & 0x1f))" (~ "~") (parenthesized_expression "(1 << (param_2 & 0x1f))" (( "(") (binary_expression "1 << (param_2 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(param_2 & 0x1f)" (( "(") (binary_expression "param_2 & 0x1f" (identifier "param_2") (& "&") (number_literal "0x1f")) () ")"))) () ")"))))) (; ";")) (while_statement "while( true ) {\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);\n    puVar2 = &DAT_00000001;\n    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);\n    (*(code *)PTR_close_00131ca8)(param_1);\nLAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));\n  }" ({ "{") (expression_statement "param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);" (assignment_expression "param_1 = (*(code *)PTR_FUN_00131294)(param_1,1)" (identifier "param_1") (= "=") (call_expression "(*(code *)PTR_FUN_00131294)(param_1,1)" (parenthesized_expression "(*(code *)PTR_FUN_00131294)" (( "(") (pointer_expression "*(code *)PTR_FUN_00131294" (* "*") (cast_expression "(code *)PTR_FUN_00131294" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00131294"))) () ")")) (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "puVar2 = &DAT_00000001;" (assignment_expression "puVar2 = &DAT_00000001" (identifier "puVar2") (= "=") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001"))) (; ";")) (expression_statement "(*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);" (call_expression "(*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38)" (parenthesized_expression "(*(code *)PTR___dprintf_chk_00131d90)" (( "(") (pointer_expression "*(code *)PTR___dprintf_chk_00131d90" (* "*") (cast_expression "(code *)PTR___dprintf_chk_00131d90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___dprintf_chk_00131d90"))) () ")")) (argument_list "(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_FUN_001311a4 + 0x125c" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "0x125c")) (, ",") (identifier "local_3c") (, ",") (identifier "local_38") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_close_00131ca8)(param_1);" (call_expression "(*(code *)PTR_close_00131ca8)(param_1)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" (( "(") (pointer_expression "*(code *)PTR_close_00131ca8" (* "*") (cast_expression "(code *)PTR_close_00131ca8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_00131ca8"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (labeled_statement "LAB_00098264:\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" (statement_identifier "LAB_00098264") (: ":") (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" (if "if") (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00132164)" (( "(") (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00132164" (identifier "local_14") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00132164" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00132164")))) () ")")) (break_statement "break;" (break "break") (; ";")))) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_001320e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001320e4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00098280:\n    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));" (statement_identifier "LAB_00098280") (: ":") (expression_statement "local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));" (assignment_expression "local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f))" (identifier "local_38") (= "=") (binary_expression "local_38 & ~((int)puVar2 << (param_2 & 0x1f))" (identifier "local_38") (& "&") (unary_expression "~((int)puVar2 << (param_2 & 0x1f))" (~ "~") (parenthesized_expression "((int)puVar2 << (param_2 & 0x1f))" (( "(") (binary_expression "(int)puVar2 << (param_2 & 0x1f)" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (<< "<<") (parenthesized_expression "(param_2 & 0x1f)" (( "(") (binary_expression "param_2 & 0x1f" (identifier "param_2") (& "&") (number_literal "0x1f")) () ")"))) () ")"))))) (; ";"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *filename,int var_3)

{
  int var_5;
  int var_1;
  char *pcVar3;
  type_1 var_4;
  type_1 var_6;
  char buf [32];
  
  var_5 = *(int *)PTR___stack_chk_guard_00132164;
  pcVar3 = buf;
  var_1 = (*(type_2 *)PTR_open_read_close_001313f8)(filename,pcVar3,0x1f);
  if (var_1 < 0) goto LAB_00098264;
  buf[var_1] = '\0';
  var_1 = (*(type_2 *)PTR_sscanf_00131db4)(buf,var_2 + 0x125c,&var_4,&var_6);
  if (var_1 != 2) {
    (*(type_2 *)PTR_bb_perror_msg_and_die_001311f4)
              (var_2 + 0x1264,filename);
  }
  pcVar3 = &DAT_00000001;
  if (0x1f < var_3) goto LAB_00098280;
  var_4 = var_4 & ~(1 << (var_3 & 0x1fU));
  while( true ) {
    filename = (char *)(*(type_2 *)PTR_xopen_00131294)(filename,1);
    pcVar3 = &DAT_00000001;
    (*(type_2 *)PTR___dprintf_chk_00131d90)
              (filename,1,var_2 + 0x125c,var_4,var_6);
    (*(type_2 *)PTR_close_00131ca8)(filename);
LAB_00098264:
    if (var_5 == *(int *)PTR___stack_chk_guard_00132164) break;
    (*(type_2 *)PTR___stack_chk_fail_001320e4)();
LAB_00098280:
    var_6 = var_6 & ~((int)pcVar3 << (var_3 & 0x1fU));
  }
  return;
}


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

void MASKED(undefined4 param_1,uint param_2)

{
  int iVar1;
  undefined1 *puVar2;
  uint local_3c;
  uint local_38;
  undefined1 auStack_34 [32];
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_00132164;
  puVar2 = auStack_34;
  iVar1 = (*(code *)PTR_FUN_001313f8)(param_1,puVar2,0x1f);
  if (iVar1 < 0) goto LAB_00098264;
  auStack_34[iVar1] = 0;
  iVar1 = (*(code *)PTR_sscanf_00131db4)(auStack_34,PTR_FUN_001311a4 + 0x125c,&local_3c,&local_38);
  if (iVar1 != 2) {
    (*(code *)PTR_FUN_001311f4)(PTR_FUN_001311a4 + 0x1264,param_1);
  }
  puVar2 = &DAT_00000001;
  if (0x1f < (int)param_2) goto LAB_00098280;
  local_3c = local_3c & ~(1 << (param_2 & 0x1f));
  while( true ) {
    param_1 = (*(code *)PTR_FUN_00131294)(param_1,1);
    puVar2 = &DAT_00000001;
    (*(code *)PTR___dprintf_chk_00131d90)(param_1,1,PTR_FUN_001311a4 + 0x125c,local_3c,local_38);
    (*(code *)PTR_close_00131ca8)(param_1);
LAB_00098264:
    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_00098280:
    local_38 = local_38 & ~((int)puVar2 << (param_2 & 0x1f));
  }
  return;
}

