
int wildcard_iterate(char *filename,_func_int_void_ptr_char_ptr *func,void *ctx)

{
  int iVar1;
  
  iVar1 = (*(code *)PTR_strlen_000bee74)();
                    /* WARNING: Subroutine does not return */
  safemalloc(iVar1 + 1,1);
}



uint wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)

{
  bool bVar1;
  int iVar2;
  undefined4 uVar3;
  undefined *puVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  uint uVar9;
  
  iVar2 = (*(code *)PTR_strlen_000bee74)();
  uVar3 = safemalloc(iVar2 + 1,1);
  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);
  if (iVar2 == 0) {
    iVar2 = sftp_begin_wildcard_matching(param_1);
    safefree(uVar3);
    if (iVar2 == 0) {
      uVar9 = 0;
    }
    else {
      uVar9 = 1;
      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;
      bVar1 = false;
      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {
        iVar7 = canonify(iVar6);
        if (iVar7 == 0) {
          uVar3 = fxp_error();
          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);
          uVar9 = 0;
        }
        safefree(iVar6);
        uVar5 = (*param_2)(param_3,iVar7);
        uVar9 = uVar9 & uVar5;
        safefree(iVar7);
        bVar1 = true;
      }
      if (!bVar1) {
        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);
      }
      sftp_finish_wildcard_matching(iVar2);
    }
  }
  else {
    iVar2 = canonify(uVar3);
    if (iVar2 == 0) {
      uVar8 = fxp_error();
      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);
    }
    uVar9 = (*param_2)(param_3,iVar2);
    safefree(iVar2);
    safefree(uVar3);
  }
  return uVar9;
}


lui gp,0xa
addiu gp,gp,-0x61e4
addu gp,gp,t9
addiu sp,sp,-0x48
sw ra,0x44(sp)
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x10(sp)
sw a0,0x48(sp)
or s4,a1,zero
or s5,a2,zero
lw t9,-0x74fc(gp)
jalr t9
_nop
lw gp,0x10(sp)
li a1,0x1
addiu a0,v0,0x1
lw t9,-0x7f9c(gp)
bal 0x000217e8
_nop
lw gp,0x10(sp)
or s0,v0,zero
lw a1,0x48(sp)
or a0,v0,zero
lw t9,-0x7d84(gp)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x0002c73c
_or a0,s0,zero
or s8,v0,zero
lw a0,0x48(sp)
lw t9,-0x7c5c(gp)
bal 0x0002bf7c
_nop
lw gp,0x10(sp)
or s3,v0,zero
or a0,s0,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
beq s3,zero,0x0002c808
_or s1,s8,zero
li s2,0x1
lw s6,-0x7c58(gp)
lw s7,-0x7c7c(gp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x43c8
b 0x0002c684
_sw v0,0x1c(sp)
or a0,s0,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
or a1,s1,zero
or a0,s5,zero
or t9,s4,zero
jalr t9
_nop
lw gp,0x10(sp)
and s2,s2,v0
or a0,s1,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
li s1,0x1
or a0,s3,zero
or t9,s6,zero
bal 0x0002c1bc
_nop
lw gp,0x10(sp)
beq v0,zero,0x0002c6f4
_or s0,v0,zero
or a0,s0,zero
or t9,s7,zero
bal 0x0002a074
_nop
lw gp,0x10(sp)
bne v0,zero,0x0002c63c
_or s1,v0,zero
lw t9,-0x7d54(gp)
bal 0x000374b4
_nop
lw gp,0x10(sp)
or a3,v0,zero
or a2,s0,zero
lw a1,0x1c(sp)
li a0,0x1
lw t9,-0x7564(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0002c63c
_or s2,s8,zero
beq s1,zero,0x0002c718
_lw a2,0x48(sp)
or a0,s3,zero
lw t9,-0x7c54(gp)
bal 0x0002c484
_nop
lw gp,0x10(sp)
b 0x0002c79c
_or v0,s2,zero
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x43e0
li a0,0x1
lw t9,-0x7564(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0002c700
_or a0,s3,zero
lw t9,-0x7c7c(gp)
bal 0x0002a074
_nop
lw gp,0x10(sp)
beq v0,zero,0x0002c7cc
_or s1,v0,zero
or a1,s1,zero
or a0,s5,zero
or t9,s4,zero
jalr t9
_nop
lw gp,0x10(sp)
or s2,v0,zero
or a0,s1,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
or a0,s0,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
or v0,s2,zero
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7d54(gp)
bal 0x000374b4
_nop
lw gp,0x10(sp)
or a3,v0,zero
lw a2,0x48(sp)
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x43c8
li a0,0x1
lw t9,-0x7564(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0002c758
_or a1,s1,zero
b 0x0002c798
_or s2,s8,zero
(translation_unit "uint wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}\n\n" (function_definition "uint wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}" type_identifier (function_declarator "wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,code *param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)();" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)()" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)()" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar3 = safemalloc(iVar2 + 1,1);" (assignment_expression "uVar3 = safemalloc(iVar2 + 1,1)" identifier = (call_expression "safemalloc(iVar2 + 1,1)" identifier (argument_list "(iVar2 + 1,1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);" (assignment_expression "iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1)" identifier = (call_expression "(*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1)" (parenthesized_expression "(*(code *)PTR_wc_unescape_000be5ec)" ( (pointer_expression "*(code *)PTR_wc_unescape_000be5ec" * (cast_expression "(code *)PTR_wc_unescape_000be5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,param_1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }" { (expression_statement "iVar2 = sftp_begin_wildcard_matching(param_1);" (assignment_expression "iVar2 = sftp_begin_wildcard_matching(param_1)" identifier = (call_expression "sftp_begin_wildcard_matching(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (if_statement "if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0;\n    }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" else (compound_statement "{\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (expression_statement "puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;" (assignment_expression "puVar4 = PTR_s_1_0_000be3a8 + -0x43c8" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x43c8" identifier + number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (while_statement "while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }" while (parenthesized_expression "(iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0)" ( (comma_expression "iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0" (assignment_expression "iVar6 = sftp_wildcard_get_filename(iVar2)" identifier = (call_expression "sftp_wildcard_get_filename(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }" { (expression_statement "iVar7 = canonify(iVar6);" (assignment_expression "iVar7 = canonify(iVar6)" identifier = (call_expression "canonify(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }" { (expression_statement "uVar3 = fxp_error();" (assignment_expression "uVar3 = fxp_error()" identifier = (call_expression "fxp_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" ( (pointer_expression "*(code *)PTR___printf_chk_000bee0c" * (cast_expression "(code *)PTR___printf_chk_000bee0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar4,iVar6,uVar3)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) })) (expression_statement "safefree(iVar6);" (call_expression "safefree(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "uVar5 = (*param_2)(param_3,iVar7);" (assignment_expression "uVar5 = (*param_2)(param_3,iVar7)" identifier = (call_expression "(*param_2)(param_3,iVar7)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(param_3,iVar7)" ( identifier , identifier )))) ;) (expression_statement "uVar9 = uVar9 & uVar5;" (assignment_expression "uVar9 = uVar9 & uVar5" identifier = (binary_expression "uVar9 & uVar5" identifier & identifier)) ;) (expression_statement "safefree(iVar7);" (call_expression "safefree(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) })) (if_statement "if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }" { (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" ( (pointer_expression "*(code *)PTR___printf_chk_000bee0c" * (cast_expression "(code *)PTR___printf_chk_000bee0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1)" ( number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x43e0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "sftp_finish_wildcard_matching(iVar2);" (call_expression "sftp_finish_wildcard_matching(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) }))) }) (else_clause "else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" else (compound_statement "{\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" { (expression_statement "iVar2 = canonify(uVar3);" (assignment_expression "iVar2 = canonify(uVar3)" identifier = (call_expression "canonify(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }" { (expression_statement "uVar8 = fxp_error();" (assignment_expression "uVar8 = fxp_error()" identifier = (call_expression "fxp_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" ( (pointer_expression "*(code *)PTR___printf_chk_000bee0c" * (cast_expression "(code *)PTR___printf_chk_000bee0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8)" ( number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x43c8" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "uVar9 = (*param_2)(param_3,iVar2);" (assignment_expression "uVar9 = (*param_2)(param_3,iVar2)" identifier = (call_expression "(*param_2)(param_3,iVar2)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(param_3,iVar2)" ( identifier , identifier )))) ;) (expression_statement "safefree(iVar2);" (call_expression "safefree(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) }))) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit "int wildcard_iterate(char *filename,_func_int_void_ptr_char_ptr *func,void *ctx)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strlen_000bee74)();\n                    /* WARNING: Subroutine does not return */\n  safemalloc(iVar1 + 1,1);\n}\n\n" (function_definition "int wildcard_iterate(char *filename,_func_int_void_ptr_char_ptr *func,void *ctx)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strlen_000bee74)();\n                    /* WARNING: Subroutine does not return */\n  safemalloc(iVar1 + 1,1);\n}" primitive_type (function_declarator "wildcard_iterate(char *filename,_func_int_void_ptr_char_ptr *func,void *ctx)" identifier (parameter_list "(char *filename,_func_int_void_ptr_char_ptr *func,void *ctx)" ( (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) , (parameter_declaration "_func_int_void_ptr_char_ptr *func" type_identifier (pointer_declarator "*func" * identifier)) , (parameter_declaration "void *ctx" primitive_type (pointer_declarator "*ctx" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strlen_000bee74)();\n                    /* WARNING: Subroutine does not return */\n  safemalloc(iVar1 + 1,1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = (*(code *)PTR_strlen_000bee74)();" (assignment_expression "iVar1 = (*(code *)PTR_strlen_000bee74)()" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)()" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) comment (expression_statement "safemalloc(iVar1 + 1,1);" (call_expression "safemalloc(iVar1 + 1,1)" identifier (argument_list "(iVar1 + 1,1)" ( (binary_expression "iVar1 + 1" identifier + number_literal) , number_literal ))) ;) })))
(translation_unit "uint wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}\n\n" (function_definition "uint wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}" type_identifier (function_declarator "wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,code *param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)();" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)()" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)()" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar3 = safemalloc(iVar2 + 1,1);" (assignment_expression "uVar3 = safemalloc(iVar2 + 1,1)" identifier = (call_expression "safemalloc(iVar2 + 1,1)" identifier (argument_list "(iVar2 + 1,1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);" (assignment_expression "iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1)" identifier = (call_expression "(*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1)" (parenthesized_expression "(*(code *)PTR_wc_unescape_000be5ec)" ( (pointer_expression "*(code *)PTR_wc_unescape_000be5ec" * (cast_expression "(code *)PTR_wc_unescape_000be5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,param_1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }" { (expression_statement "iVar2 = sftp_begin_wildcard_matching(param_1);" (assignment_expression "iVar2 = sftp_begin_wildcard_matching(param_1)" identifier = (call_expression "sftp_begin_wildcard_matching(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (if_statement "if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0;\n    }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" else (compound_statement "{\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (expression_statement "puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;" (assignment_expression "puVar4 = PTR_s_1_0_000be3a8 + -0x43c8" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x43c8" identifier + number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (while_statement "while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }" while (parenthesized_expression "(iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0)" ( (comma_expression "iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0" (assignment_expression "iVar6 = sftp_wildcard_get_filename(iVar2)" identifier = (call_expression "sftp_wildcard_get_filename(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }" { (expression_statement "iVar7 = canonify(iVar6);" (assignment_expression "iVar7 = canonify(iVar6)" identifier = (call_expression "canonify(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }" { (expression_statement "uVar3 = fxp_error();" (assignment_expression "uVar3 = fxp_error()" identifier = (call_expression "fxp_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" ( (pointer_expression "*(code *)PTR___printf_chk_000bee0c" * (cast_expression "(code *)PTR___printf_chk_000bee0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar4,iVar6,uVar3)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) })) (expression_statement "safefree(iVar6);" (call_expression "safefree(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "uVar5 = (*param_2)(param_3,iVar7);" (assignment_expression "uVar5 = (*param_2)(param_3,iVar7)" identifier = (call_expression "(*param_2)(param_3,iVar7)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(param_3,iVar7)" ( identifier , identifier )))) ;) (expression_statement "uVar9 = uVar9 & uVar5;" (assignment_expression "uVar9 = uVar9 & uVar5" identifier = (binary_expression "uVar9 & uVar5" identifier & identifier)) ;) (expression_statement "safefree(iVar7);" (call_expression "safefree(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) })) (if_statement "if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }" { (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" ( (pointer_expression "*(code *)PTR___printf_chk_000bee0c" * (cast_expression "(code *)PTR___printf_chk_000bee0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1)" ( number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x43e0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "sftp_finish_wildcard_matching(iVar2);" (call_expression "sftp_finish_wildcard_matching(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) }))) }) (else_clause "else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" else (compound_statement "{\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" { (expression_statement "iVar2 = canonify(uVar3);" (assignment_expression "iVar2 = canonify(uVar3)" identifier = (call_expression "canonify(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }" { (expression_statement "uVar8 = fxp_error();" (assignment_expression "uVar8 = fxp_error()" identifier = (call_expression "fxp_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" ( (pointer_expression "*(code *)PTR___printf_chk_000bee0c" * (cast_expression "(code *)PTR___printf_chk_000bee0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8)" ( number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x43c8" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "uVar9 = (*param_2)(param_3,iVar2);" (assignment_expression "uVar9 = (*param_2)(param_3,iVar2)" identifier = (call_expression "(*param_2)(param_3,iVar2)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(param_3,iVar2)" ( identifier , identifier )))) ;) (expression_statement "safefree(iVar2);" (call_expression "safefree(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) }))) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}" (type_identifier "uint") (function_declarator "wildcard_iterate(undefined4 param_1,code *param_2,undefined4 param_3)" (identifier "wildcard_iterate") (parameter_list "(undefined4 param_1,code *param_2,undefined4 param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  \n  iVar2 = (*(code *)PTR_strlen_000bee74)();\n  uVar3 = safemalloc(iVar2 + 1,1);\n  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);\n  if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }\n  return uVar9;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)();" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000bee74)()" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" (( "(") (pointer_expression "*(code *)PTR_strlen_000bee74" (* "*") (cast_expression "(code *)PTR_strlen_000bee74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000bee74"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = safemalloc(iVar2 + 1,1);" (assignment_expression "uVar3 = safemalloc(iVar2 + 1,1)" (identifier "uVar3") (= "=") (call_expression "safemalloc(iVar2 + 1,1)" (identifier "safemalloc") (argument_list "(iVar2 + 1,1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);" (assignment_expression "iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1)" (parenthesized_expression "(*(code *)PTR_wc_unescape_000be5ec)" (( "(") (pointer_expression "*(code *)PTR_wc_unescape_000be5ec" (* "*") (cast_expression "(code *)PTR_wc_unescape_000be5ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_wc_unescape_000be5ec"))) () ")")) (argument_list "(uVar3,param_1)" (( "(") (identifier "uVar3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }\n  else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = sftp_begin_wildcard_matching(param_1);\n    safefree(uVar3);\n    if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }\n  }" ({ "{") (expression_statement "iVar2 = sftp_begin_wildcard_matching(param_1);" (assignment_expression "iVar2 = sftp_begin_wildcard_matching(param_1)" (identifier "iVar2") (= "=") (call_expression "sftp_begin_wildcard_matching(param_1)" (identifier "sftp_begin_wildcard_matching") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" (identifier "safefree") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (if_statement "if (iVar2 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = 0;\n    }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" (else "else") (compound_statement "{\n      uVar9 = 1;\n      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;\n      bVar1 = false;\n      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }\n      if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }\n      sftp_finish_wildcard_matching(iVar2);\n    }" ({ "{") (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" (identifier "uVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;" (assignment_expression "puVar4 = PTR_s_1_0_000be3a8 + -0x43c8" (identifier "puVar4") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x43c8" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x43c8"))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (while_statement "while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }" (while "while") (parenthesized_expression "(iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0)" (( "(") (comma_expression "iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0" (assignment_expression "iVar6 = sftp_wildcard_get_filename(iVar2)" (identifier "iVar6") (= "=") (call_expression "sftp_wildcard_get_filename(iVar2)" (identifier "sftp_wildcard_get_filename") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        iVar7 = canonify(iVar6);\n        if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }\n        safefree(iVar6);\n        uVar5 = (*param_2)(param_3,iVar7);\n        uVar9 = uVar9 & uVar5;\n        safefree(iVar7);\n        bVar1 = true;\n      }" ({ "{") (expression_statement "iVar7 = canonify(iVar6);" (assignment_expression "iVar7 = canonify(iVar6)" (identifier "iVar7") (= "=") (call_expression "canonify(iVar6)" (identifier "canonify") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar3 = fxp_error();\n          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);\n          uVar9 = 0;\n        }" ({ "{") (expression_statement "uVar3 = fxp_error();" (assignment_expression "uVar3 = fxp_error()" (identifier "uVar3") (= "=") (call_expression "fxp_error()" (identifier "fxp_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_000bee0c" (* "*") (cast_expression "(code *)PTR___printf_chk_000bee0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_000bee0c"))) () ")")) (argument_list "(1,puVar4,iVar6,uVar3)" (( "(") (number_literal "1") (, ",") (identifier "puVar4") (, ",") (identifier "iVar6") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "safefree(iVar6);" (call_expression "safefree(iVar6)" (identifier "safefree") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "uVar5 = (*param_2)(param_3,iVar7);" (assignment_expression "uVar5 = (*param_2)(param_3,iVar7)" (identifier "uVar5") (= "=") (call_expression "(*param_2)(param_3,iVar7)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(param_3,iVar7)" (( "(") (identifier "param_3") (, ",") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "uVar9 = uVar9 & uVar5;" (assignment_expression "uVar9 = uVar9 & uVar5" (identifier "uVar9") (= "=") (binary_expression "uVar9 & uVar5" (identifier "uVar9") (& "&") (identifier "uVar5"))) (; ";")) (expression_statement "safefree(iVar7);" (call_expression "safefree(iVar7)" (identifier "safefree") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}"))) (if_statement "if (!bVar1) {\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);\n      }" ({ "{") (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_000bee0c" (* "*") (cast_expression "(code *)PTR___printf_chk_000bee0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_000bee0c"))) () ")")) (argument_list "(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1)" (( "(") (number_literal "1") (, ",") (binary_expression "PTR_s_1_0_000be3a8 + -0x43e0" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x43e0")) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "sftp_finish_wildcard_matching(iVar2);" (call_expression "sftp_finish_wildcard_matching(iVar2)" (identifier "sftp_finish_wildcard_matching") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" (else "else") (compound_statement "{\n    iVar2 = canonify(uVar3);\n    if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }\n    uVar9 = (*param_2)(param_3,iVar2);\n    safefree(iVar2);\n    safefree(uVar3);\n  }" ({ "{") (expression_statement "iVar2 = canonify(uVar3);" (assignment_expression "iVar2 = canonify(uVar3)" (identifier "iVar2") (= "=") (call_expression "canonify(uVar3)" (identifier "canonify") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = fxp_error();\n      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);\n    }" ({ "{") (expression_statement "uVar8 = fxp_error();" (assignment_expression "uVar8 = fxp_error()" (identifier "uVar8") (= "=") (call_expression "fxp_error()" (identifier "fxp_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);" (call_expression "(*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8)" (parenthesized_expression "(*(code *)PTR___printf_chk_000bee0c)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_000bee0c" (* "*") (cast_expression "(code *)PTR___printf_chk_000bee0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_000bee0c"))) () ")")) (argument_list "(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8)" (( "(") (number_literal "1") (, ",") (binary_expression "PTR_s_1_0_000be3a8 + -0x43c8" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x43c8")) (, ",") (identifier "param_1") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = (*param_2)(param_3,iVar2);" (assignment_expression "uVar9 = (*param_2)(param_3,iVar2)" (identifier "uVar9") (= "=") (call_expression "(*param_2)(param_3,iVar2)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(param_3,iVar2)" (( "(") (identifier "param_3") (, ",") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "safefree(iVar2);" (call_expression "safefree(iVar2)" (identifier "safefree") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" (identifier "safefree") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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) (identifier))))) (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 (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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 (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 (number_literal) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) 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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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 (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (return_statement (identifier)))))

uint MASKED(undefined4 param_1,code *param_2,undefined4 param_3)

{
  bool bVar1;
  int iVar2;
  undefined4 uVar3;
  undefined *puVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  uint uVar9;
  
  iVar2 = (*(code *)PTR_strlen_000bee74)();
  uVar3 = safemalloc(iVar2 + 1,1);
  iVar2 = (*(code *)PTR_wc_unescape_000be5ec)(uVar3,param_1);
  if (iVar2 == 0) {
    iVar2 = sftp_begin_wildcard_matching(param_1);
    safefree(uVar3);
    if (iVar2 == 0) {
      uVar9 = 0;
    }
    else {
      uVar9 = 1;
      puVar4 = PTR_s_1_0_000be3a8 + -0x43c8;
      bVar1 = false;
      while (iVar6 = sftp_wildcard_get_filename(iVar2), iVar6 != 0) {
        iVar7 = canonify(iVar6);
        if (iVar7 == 0) {
          uVar3 = fxp_error();
          (*(code *)PTR___printf_chk_000bee0c)(1,puVar4,iVar6,uVar3);
          uVar9 = 0;
        }
        safefree(iVar6);
        uVar5 = (*param_2)(param_3,iVar7);
        uVar9 = uVar9 & uVar5;
        safefree(iVar7);
        bVar1 = true;
      }
      if (!bVar1) {
        (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43e0,param_1);
      }
      sftp_finish_wildcard_matching(iVar2);
    }
  }
  else {
    iVar2 = canonify(uVar3);
    if (iVar2 == 0) {
      uVar8 = fxp_error();
      (*(code *)PTR___printf_chk_000bee0c)(1,PTR_s_1_0_000be3a8 + -0x43c8,param_1,uVar8);
    }
    uVar9 = (*param_2)(param_3,iVar2);
    safefree(iVar2);
    safefree(uVar3);
  }
  return uVar9;
}

