
int config_file_action(char *filename,stat *statbuf,void *userdata,int depth)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  char *pcVar6;
  module_entry *pmVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  undefined *unaff_s2;
  char **unaff_s4;
  int *piVar11;
  int *piVar12;
  code *local_160;
  undefined *local_15c;
  undefined *local_14c;
  undefined *local_148;
  undefined *local_144;
  code *local_140;
  char *tokens [3];
  char wildcard [256];
  
  puVar4 = PTR___stack_chk_guard_0012b14c;
  iVar5 = *(int *)PTR___stack_chk_guard_0012b14c;
  pcVar6 = bb_basename(filename);
  if (*pcVar6 != '.') {
    iVar9 = 2;
    if (1 < depth) goto LAB_00036924;
    if ((depth == 0) ||
       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {
      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);
      iVar9 = 0;
      if (filename != (char *)0x0) {
        local_15c = PTR_UINT_0012a18c;
        unaff_s4 = tokens;
        local_160 = (code *)PTR_config_read_0012a458;
        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;
        local_148 = PTR_UINT_0012a18c + 0x1ed0;
        local_14c = PTR_UINT_0012a18c;
        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);
        local_144 = PTR_UINT_0012a18c;
        goto LAB_000368f0;
      }
      goto LAB_00036924;
    }
  }
  iVar9 = 1;
LAB_00036924:
  do {
    if (iVar5 == *(int *)puVar4) {
      return iVar9;
    }
    (*(code *)PTR___stack_chk_fail_0012b0c8)();
    do {
      pcVar6 = tokens[0];
      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);
      puVar3 = PTR_filename2modname_0012a464;
      if (iVar9 == 0) {
        if (tokens[2] != (char *)0x0) {
          filename2modname(tokens[1],wildcard);
          puVar2 = PTR_llist_add_to_0012a430;
          puVar1 = PTR_moddb_get_or_create_0012a428;
          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;
          piVar12 = (int *)*piVar11;
          if (piVar12 != (int *)0x0) {
            do {
              while( true ) {
                iVar10 = piVar12[1];
                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);
                if (iVar9 == 0) break;
LAB_000369f8:
                piVar12 = (int *)*piVar12;
                if (piVar12 == (int *)0x0) goto LAB_000368f0;
              }
              uVar8 = (*(code *)puVar3)(tokens[2],0);
              (*(code *)puVar2)(iVar10 + 0x10,uVar8);
              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {
                iVar9 = piVar11[2];
                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;
                piVar11[2] = iVar9 + -1;
              }
              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);
              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;
              iVar10 = piVar11[2];
              piVar12 = (int *)*piVar12;
              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;
              piVar11[2] = iVar10 + 1;
            } while (piVar12 != (int *)0x0);
          }
        }
      }
      else {
        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);
        if (iVar9 == 0) {
          if (tokens[2] != (char *)0x0) {
            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),
                                         tokens[1]);
            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);
            pmVar7->options = pcVar6;
          }
        }
        else {
          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);
          if (iVar9 == 0) {
            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)
            ;
          }
          else {
            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);
            if (iVar9 == 0) {
              pmVar7 = moddb_get_or_create((module_db *)
                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);
              pmVar7->flags = pmVar7->flags | 8;
            }
          }
        }
      }
LAB_000368f0:
      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);
    } while (iVar9 != 0);
    (*(code *)PTR_config_close_0012a468)(filename);
    iVar9 = 1;
  } while( true );
}



undefined4 FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  char *pcVar7;
  int iVar8;
  undefined *puVar9;
  code *pcVar10;
  int iVar11;
  undefined4 uVar12;
  int iVar13;
  undefined *puVar14;
  int *piVar15;
  int *piVar16;
  undefined4 local_138;
  undefined4 local_134;
  int local_130;
  undefined1 auStack_12c [256];
  int local_2c;
  
  puVar6 = PTR___stack_chk_guard_0012b14c;
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  pcVar7 = (char *)FUN_0001884c();
  if (*pcVar7 != '.') {
    uVar12 = 2;
    if (1 < param_4) goto LAB_00036924;
    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {
      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);
      puVar4 = PTR_FUN_0012a458;
      puVar1 = PTR_UINT_0012a18c;
      uVar12 = 0;
      if (iVar8 != 0) {
        puVar14 = PTR_UINT_0012a18c + 0x1d3c;
        puVar9 = PTR_UINT_0012a18c + 0x1ed0;
        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);
LAB_000368f0:
        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);
        uVar12 = local_138;
        if (iVar11 != 0) {
          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);
          puVar5 = PTR_FUN_0012a464;
          if (iVar11 == 0) {
            if (local_130 != 0) {
              FUN_000377b8(local_134);
              puVar3 = PTR_FUN_0012a430;
              puVar2 = PTR_FUN_0012a428;
              piVar15 = *(int **)PTR_DAT_0012a304;
              piVar16 = (int *)*piVar15;
              if (piVar16 != (int *)0x0) {
                do {
                  while( true ) {
                    iVar13 = piVar16[1];
                    iVar11 = (*(code *)PTR_fnmatch_0012b064)
                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);
                    if (iVar11 == 0) break;
LAB_000369f8:
                    piVar16 = (int *)*piVar16;
                    if (piVar16 == (int *)0x0) goto LAB_000368f0;
                  }
                  uVar12 = (*(code *)puVar5)(local_130,0);
                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);
                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {
                    iVar11 = piVar15[2];
                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;
                    piVar15[2] = iVar11 + -1;
                  }
                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);
                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;
                  iVar13 = piVar15[2];
                  piVar16 = (int *)*piVar16;
                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;
                  piVar15[2] = iVar13 + 1;
                } while (piVar16 != (int *)0x0);
              }
            }
          }
          else {
            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);
            if (iVar11 == 0) {
              if (local_130 != 0) {
                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);
                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);
                *(undefined4 *)(iVar11 + 0x1c) = uVar12;
              }
            }
            else {
              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);
              if (iVar11 == 0) {
                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);
              }
              else {
                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);
                if (iVar11 == 0) {
                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);
                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;
                }
              }
            }
          }
          goto LAB_000368f0;
        }
        (*(code *)PTR_FUN_0012a468)(iVar8);
        uVar12 = 1;
      }
      goto LAB_00036924;
    }
  }
  uVar12 = 1;
LAB_00036924:
  if (local_2c != *(int *)puVar6) {
    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
    return uVar12;
  }
  return uVar12;
}


lui gp,0x10
addiu gp,gp,-0x4694
addu gp,gp,t9
addiu sp,sp,-0x188
lw t9,-0x7f2c(gp)
sw s3,0x16c(sp)
lw s3,-0x7004(gp)
sw gp,0x18(sp)
sw s1,0x164(sp)
or s1,a0,zero
sw s0,0x160(sp)
or s0,a3,zero
sw ra,0x184(sp)
sw s8,0x180(sp)
sw s7,0x17c(sp)
sw s6,0x178(sp)
sw s5,0x174(sp)
sw s4,0x170(sp)
sw s2,0x168(sp)
lw v0,0x0(s3)
sw v0,0x15c(sp)
bal 0x0001884c
_nop
li v1,0x2e
lbu a0,0x0(v0)
bne a0,v1,0x00036858
_lw gp,0x18(sp)
b 0x00036924
_li v1,0x1
slti a0,s0,0x2
beq a0,zero,0x00036924
_li v1,0x2
beq s0,zero,0x00036884
_lw a1,-0x7fc4(gp)
or a0,v0,zero
lw t9,-0x7ce0(gp)
bal 0x0001849c
_addiu a1,a1,0x1ec0
beq v0,zero,0x00036850
_lw gp,0x18(sp)
lw a1,-0x7f8c(gp)
lw t9,-0x7cf0(gp)
jalr t9
_or a0,s1,zero
or v1,zero,zero
lw gp,0x18(sp)
beq v0,zero,0x00036924
_or s1,v0,zero
lw v0,-0x7fc4(gp)
addiu s4,sp,0x50
lw s2,-0x7fc4(gp)
sw v0,0x2c(sp)
lw v0,-0x7cf8(gp)
addiu s2,s2,0x1d3c
sw v0,0x28(sp)
lw v0,-0x7fc4(gp)
addiu v0,v0,0x1ed0
sw v0,0x40(sp)
lw v0,-0x7fc4(gp)
sw v0,0x3c(sp)
lw v0,-0x7db8(gp)
addiu v0,v0,0x644c
sw v0,0x48(sp)
lw v0,-0x7fc4(gp)
sw v0,0x44(sp)
lw v0,0x2c(sp)
lui a2,0x47
lw t9,0x28(sp)
or a1,s4,zero
addiu a2,a2,0x203
addiu a3,v0,0x1e14
jalr t9
_or a0,s1,zero
bne v0,zero,0x00036970
_lw gp,0x18(sp)
lw t9,-0x7ce8(gp)
jalr t9
_or a0,s1,zero
li v1,0x1
lw gp,0x18(sp)
lw a0,0x15c(sp)
or v0,v1,zero
lw v1,0x0(s3)
bne a0,v1,0x00036964
_lw ra,0x184(sp)
lw s8,0x180(sp)
lw s7,0x17c(sp)
lw s6,0x178(sp)
lw s5,0x174(sp)
lw s4,0x170(sp)
lw s3,0x16c(sp)
lw s2,0x168(sp)
lw s1,0x164(sp)
lw s0,0x160(sp)
jr ra
_addiu sp,sp,0x188
lw t9,-0x7088(gp)
jalr t9
_nop
lw s0,0x50(sp)
or a1,s2,zero
lw t9,-0x6f88(gp)
jalr t9
_or a0,s0,zero
bne v0,zero,0x00036a0c
_lw gp,0x18(sp)
lw v0,0x58(sp)
beq v0,zero,0x000368e8
_lw t9,-0x7cec(gp)
addiu a1,sp,0x5c
lw a0,0x54(sp)
sw a1,0x24(sp)
bal 0x000377b8
_sw t9,0x30(sp)
lw gp,0x18(sp)
lw v0,-0x7e4c(gp)
lw s5,0x0(v0)
lw s6,0x0(s5)
beq s6,zero,0x000368e8
_lw v0,-0x7d20(gp)
addiu s8,s5,0x194
li s7,-0x3
sw v0,0x34(sp)
lw v0,-0x7d28(gp)
sw v0,0x38(sp)
lw s0,0x4(s6)
or a2,zero,zero
lw t9,-0x70ec(gp)
lw a0,0x24(sp)
jalr t9
_lw a1,0x8(s0)
beq v0,zero,0x00036aec
_lw gp,0x18(sp)
lw s6,0x0(s6)
bne s6,zero,0x000369d8
_lw v0,0x2c(sp)
b 0x000368f0
_lui a2,0x47
lw v0,0x3c(sp)
or a0,s0,zero
lw t9,-0x6f88(gp)
jalr t9
_addiu a1,v0,0x1ec8
bne v0,zero,0x00036a64
_lw gp,0x18(sp)
lw v0,0x58(sp)
beq v0,zero,0x000368e8
_lw v0,-0x7e4c(gp)
lw t9,-0x7d28(gp)
lw a1,0x54(sp)
lw a0,0x0(v0)
bal 0x000379d8
_addiu a0,a0,0x194
lw a1,0x58(sp)
or s0,v0,zero
lw t9,0x48(sp)
jalr t9
_lw a0,0x1c(v0)
b 0x000368e8
_sw v0,0x1c(s0)
lw t9,-0x6f88(gp)
or a0,s0,zero
jalr t9
_lw a1,0x40(sp)
bne v0,zero,0x00036aa8
_lw gp,0x18(sp)
lw a2,-0x7db8(gp)
or a3,zero,zero
lw a0,0x54(sp)
li a1,0x21
lw t9,-0x7d14(gp)
addiu a2,a2,0x67e4
sw zero,0x14(sp)
jalr t9
_sw zero,0x10(sp)
b 0x000368ec
_lw v0,0x2c(sp)
lw v0,0x44(sp)
or a0,s0,zero
lw t9,-0x6f88(gp)
jalr t9
_addiu a1,v0,0x1ed8
bne v0,zero,0x000368e8
_lw gp,0x18(sp)
lw v0,-0x7e4c(gp)
lw a1,0x54(sp)
lw t9,-0x7d28(gp)
lw a0,0x0(v0)
bal 0x000379d8
_addiu a0,a0,0x194
lw v1,0x14(v0)
ori v1,v1,0x8
b 0x000368e8
_sw v1,0x14(v0)
lw a0,0x58(sp)
lw t9,0x30(sp)
jalr t9
_or a1,zero,zero
addiu a0,s0,0x10
lw t9,0x34(sp)
or a1,v0,zero
jalr t9
_sw v0,0x4c(sp)
lw a0,0x14(s0)
andi a1,a0,0x2
beq a1,zero,0x00036b34
_lw v0,0x4c(sp)
lw a1,0x8(s5)
and a0,a0,s7
sw a0,0x14(s0)
addiu a0,a1,-0x1
sw a0,0x8(s5)
lw t9,0x38(sp)
or a1,v0,zero
jalr t9
_or a0,s8,zero
lw a0,0x14(v0)
andi a1,a0,0x2
bne a1,zero,0x000369f8
_lw gp,0x18(sp)
lw a1,0x8(s5)
ori a0,a0,0x2
lw s6,0x0(s6)
sw a0,0x14(v0)
addiu a1,a1,0x1
bne s6,zero,0x000369d8
_sw a1,0x8(s5)
b 0x000368ec
_lw v0,0x2c(sp)
(translation_unit "undefined4 FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}\n\n" (function_definition "undefined4 FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}" type_identifier (function_declarator "FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 local_138;" type_identifier identifier ;) (declaration "undefined4 local_134;" type_identifier identifier ;) (declaration "int local_130;" primitive_type identifier ;) (declaration "undefined1 auStack_12c [256];" type_identifier (array_declarator "auStack_12c [256]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar7 = (char *)FUN_0001884c();" (assignment_expression "pcVar7 = (char *)FUN_0001884c()" identifier = (cast_expression "(char *)FUN_0001884c()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001884c()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }" if (parenthesized_expression "(*pcVar7 != '.')" ( (binary_expression "*pcVar7 != '.'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }" { (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (if_statement "if (1 < param_4) goto LAB_00036924;" if (parenthesized_expression "(1 < param_4)" ( (binary_expression "1 < param_4" number_literal < identifier) )) (goto_statement "goto LAB_00036924;" goto statement_identifier ;)) (if_statement "if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }" if (parenthesized_expression "((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0))" ( (binary_expression "(param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)" ( (comma_expression "iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0" (assignment_expression "iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" identifier = (call_expression "FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" identifier (argument_list "(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" ( identifier , (binary_expression "PTR_UINT_0012a18c + 0x1ec0" identifier + number_literal) )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }" { (expression_statement "iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);" (assignment_expression "iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4)" identifier = (call_expression "(*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a460)" ( (pointer_expression "*(code *)PTR_FUN_0012a460" * (cast_expression "(code *)PTR_FUN_0012a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_FUN_0012a1c4)" ( identifier , identifier )))) ;) (expression_statement "puVar4 = PTR_FUN_0012a458;" (assignment_expression "puVar4 = PTR_FUN_0012a458" identifier = identifier) ;) (expression_statement "puVar1 = PTR_UINT_0012a18c;" (assignment_expression "puVar1 = PTR_UINT_0012a18c" identifier = identifier) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }" { (expression_statement "puVar14 = PTR_UINT_0012a18c + 0x1d3c;" (assignment_expression "puVar14 = PTR_UINT_0012a18c + 0x1d3c" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1d3c" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR_UINT_0012a18c + 0x1ed0;" (assignment_expression "puVar9 = PTR_UINT_0012a18c + 0x1ed0" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1ed0" identifier + number_literal)) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c)" identifier = (cast_expression "(code *)(PTR_LAB_0012a398 + 0x644c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0012a398 + 0x644c)" ( (binary_expression "PTR_LAB_0012a398 + 0x644c" identifier + number_literal) )))) ;) (labeled_statement "LAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);" statement_identifier : (expression_statement "iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);" (assignment_expression "iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" identifier = (call_expression "(*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" ( identifier , (pointer_expression "&local_138" & identifier) , number_literal , (binary_expression "puVar1 + 0x1e14" identifier + number_literal) )))) ;)) (expression_statement "uVar12 = local_138;" (assignment_expression "uVar12 = local_138" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_138,puVar14)" ( identifier , identifier )))) ;) (expression_statement "puVar5 = PTR_FUN_0012a464;" (assignment_expression "puVar5 = PTR_FUN_0012a464" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }" { (if_statement "if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }" { (expression_statement "FUN_000377b8(local_134);" (call_expression "FUN_000377b8(local_134)" identifier (argument_list "(local_134)" ( identifier ))) ;) (expression_statement "puVar3 = PTR_FUN_0012a430;" (assignment_expression "puVar3 = PTR_FUN_0012a430" identifier = identifier) ;) (expression_statement "puVar2 = PTR_FUN_0012a428;" (assignment_expression "puVar2 = PTR_FUN_0012a428" identifier = identifier) ;) (expression_statement "piVar15 = *(int **)PTR_DAT_0012a304;" (assignment_expression "piVar15 = *(int **)PTR_DAT_0012a304" identifier = (pointer_expression "*(int **)PTR_DAT_0012a304" * (cast_expression "(int **)PTR_DAT_0012a304" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar16 = (int *)*piVar15;" (assignment_expression "piVar16 = (int *)*piVar15" identifier = (cast_expression "(int *)*piVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar15" * identifier))) ;) (if_statement "if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }" { (do_statement "do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);" do (compound_statement "{\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                }" { (while_statement "while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }" { (expression_statement "iVar13 = piVar16[1];" (assignment_expression "iVar13 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);" (assignment_expression "iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0)" identifier = (call_expression "(*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0)" (parenthesized_expression "(*(code *)PTR_fnmatch_0012b064)" ( (pointer_expression "*(code *)PTR_fnmatch_0012b064" * (cast_expression "(code *)PTR_fnmatch_0012b064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_12c,*(undefined4 *)(iVar13 + 8),0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar13 + 8)" * (cast_expression "(undefined4 *)(iVar13 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar11 == 0) break;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000369f8:\n                    piVar16 = (int *)*piVar16;" statement_identifier : (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;)) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000368f0;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000368f0;" goto statement_identifier ;)) })) (expression_statement "uVar12 = (*(code *)puVar5)(local_130,0);" (assignment_expression "uVar12 = (*(code *)puVar5)(local_130,0)" identifier = (call_expression "(*(code *)puVar5)(local_130,0)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_130,0)" ( identifier , number_literal )))) ;) (expression_statement "(*(code *)puVar3)(iVar13 + 0x10,uVar12);" (call_expression "(*(code *)puVar3)(iVar13 + 0x10,uVar12)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13 + 0x10,uVar12)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) , identifier ))) ;) (if_statement "if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }" if (parenthesized_expression "((*(uint *)(iVar13 + 0x14) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 0x14) & 2)" ( (binary_expression "*(uint *)(iVar13 + 0x14) & 2" (pointer_expression "*(uint *)(iVar13 + 0x14)" * (cast_expression "(uint *)(iVar13 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }" { (expression_statement "iVar11 = piVar15[2];" (assignment_expression "iVar11 = piVar15[2]" identifier = (subscript_expression "piVar15[2]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar13 + 0x14)" * (cast_expression "(uint *)(iVar13 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar13 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar13 + 0x14)" * (cast_expression "(uint *)(iVar13 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar15[2] = iVar11 + -1;" (assignment_expression "piVar15[2] = iVar11 + -1" (subscript_expression "piVar15[2]" identifier [ number_literal ]) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);" (assignment_expression "iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12)" identifier = (call_expression "(*(code *)puVar2)(piVar15 + 0x65,uVar12)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar15 + 0x65,uVar12)" ( (binary_expression "piVar15 + 0x65" identifier + number_literal) , identifier )))) ;) (if_statement "if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;" if (parenthesized_expression "((*(uint *)(iVar11 + 0x14) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar11 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x14) & 2)" ( (binary_expression "*(uint *)(iVar11 + 0x14) & 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000369f8;" goto statement_identifier ;)) (expression_statement "iVar13 = piVar15[2];" (assignment_expression "iVar13 = piVar15[2]" identifier = (subscript_expression "piVar15[2]" identifier [ number_literal ])) ;) (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;) (expression_statement "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;" (assignment_expression "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar11 + 0x14) | 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar15[2] = iVar13 + 1;" (assignment_expression "piVar15[2] = iVar13 + 1" (subscript_expression "piVar15[2]" identifier [ number_literal ]) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) }) (else_clause "else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" else (compound_statement "{\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,puVar1 + 0x1ec8)" ( identifier , (binary_expression "puVar1 + 0x1ec8" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }" { (if_statement "if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }" { (expression_statement "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);" (assignment_expression "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier = (call_expression "FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier (argument_list "(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" ( (binary_expression "*(int *)PTR_DAT_0012a304 + 0x194" (pointer_expression "*(int *)PTR_DAT_0012a304" * (cast_expression "(int *)PTR_DAT_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , identifier )))) ;) (expression_statement "uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);" (assignment_expression "uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130)" identifier = (call_expression "(*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(undefined4 *)(iVar11 + 0x1c),local_130)" ( (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" * (cast_expression "(undefined4 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(iVar11 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" * (cast_expression "(undefined4 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" else (compound_statement "{\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,puVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }" { (expression_statement "(*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);" (call_expression "(*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a43c)" ( (pointer_expression "*(code *)PTR_FUN_0012a43c" * (cast_expression "(code *)PTR_FUN_0012a43c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" ( identifier , number_literal , (binary_expression "PTR_LAB_0012a398 + 0x67e4" identifier + number_literal) , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" else (compound_statement "{\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,puVar1 + 0x1ed8)" ( identifier , (binary_expression "puVar1 + 0x1ed8" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }" { (expression_statement "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);" (assignment_expression "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier = (call_expression "FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier (argument_list "(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" ( (binary_expression "*(int *)PTR_DAT_0012a304 + 0x194" (pointer_expression "*(int *)PTR_DAT_0012a304" * (cast_expression "(int *)PTR_DAT_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , identifier )))) ;) (expression_statement "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar11 + 0x14) | 8" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) | number_literal)) ;) })) }))) }))) }))) (goto_statement "goto LAB_000368f0;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_FUN_0012a468)(iVar8);" (call_expression "(*(code *)PTR_FUN_0012a468)(iVar8)" (parenthesized_expression "(*(code *)PTR_FUN_0012a468)" ( (pointer_expression "*(code *)PTR_FUN_0012a468" * (cast_expression "(code *)PTR_FUN_0012a468" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_00036924;" goto statement_identifier ;) })) })) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar6)" ( (binary_expression "local_2c != *(int *)puVar6" identifier != (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" { (expression_statement "uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar12;" return identifier ;) }))) (return_statement "return uVar12;" return identifier ;) })))
(translation_unit "int config_file_action(char *filename,stat *statbuf,void *userdata,int depth)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  char *pcVar6;\n  module_entry *pmVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *unaff_s2;\n  char **unaff_s4;\n  int *piVar11;\n  int *piVar12;\n  code *local_160;\n  undefined *local_15c;\n  undefined *local_14c;\n  undefined *local_148;\n  undefined *local_144;\n  code *local_140;\n  char *tokens [3];\n  char wildcard [256];\n  \n  puVar4 = PTR___stack_chk_guard_0012b14c;\n  iVar5 = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar6 = bb_basename(filename);\n  if (*pcVar6 != '.') {\n    iVar9 = 2;\n    if (1 < depth) goto LAB_00036924;\n    if ((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }\n  }\n  iVar9 = 1;\nLAB_00036924:\n  do {\n    if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);\n    (*(code *)PTR_config_close_0012a468)(filename);\n    iVar9 = 1;\n  } while( true );\n}\n\n" (function_definition "int config_file_action(char *filename,stat *statbuf,void *userdata,int depth)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  char *pcVar6;\n  module_entry *pmVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *unaff_s2;\n  char **unaff_s4;\n  int *piVar11;\n  int *piVar12;\n  code *local_160;\n  undefined *local_15c;\n  undefined *local_14c;\n  undefined *local_148;\n  undefined *local_144;\n  code *local_140;\n  char *tokens [3];\n  char wildcard [256];\n  \n  puVar4 = PTR___stack_chk_guard_0012b14c;\n  iVar5 = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar6 = bb_basename(filename);\n  if (*pcVar6 != '.') {\n    iVar9 = 2;\n    if (1 < depth) goto LAB_00036924;\n    if ((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }\n  }\n  iVar9 = 1;\nLAB_00036924:\n  do {\n    if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);\n    (*(code *)PTR_config_close_0012a468)(filename);\n    iVar9 = 1;\n  } while( true );\n}" primitive_type (function_declarator "config_file_action(char *filename,stat *statbuf,void *userdata,int depth)" identifier (parameter_list "(char *filename,stat *statbuf,void *userdata,int depth)" ( (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) , (parameter_declaration "stat *statbuf" type_identifier (pointer_declarator "*statbuf" * identifier)) , (parameter_declaration "void *userdata" primitive_type (pointer_declarator "*userdata" * identifier)) , (parameter_declaration "int depth" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  char *pcVar6;\n  module_entry *pmVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *unaff_s2;\n  char **unaff_s4;\n  int *piVar11;\n  int *piVar12;\n  code *local_160;\n  undefined *local_15c;\n  undefined *local_14c;\n  undefined *local_148;\n  undefined *local_144;\n  code *local_140;\n  char *tokens [3];\n  char wildcard [256];\n  \n  puVar4 = PTR___stack_chk_guard_0012b14c;\n  iVar5 = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar6 = bb_basename(filename);\n  if (*pcVar6 != '.') {\n    iVar9 = 2;\n    if (1 < depth) goto LAB_00036924;\n    if ((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }\n  }\n  iVar9 = 1;\nLAB_00036924:\n  do {\n    if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);\n    (*(code *)PTR_config_close_0012a468)(filename);\n    iVar9 = 1;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "module_entry *pmVar7;" type_identifier (pointer_declarator "*pmVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "char **unaff_s4;" primitive_type (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier)) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "code *local_160;" type_identifier (pointer_declarator "*local_160" * identifier) ;) (declaration "undefined *local_15c;" type_identifier (pointer_declarator "*local_15c" * identifier) ;) (declaration "undefined *local_14c;" type_identifier (pointer_declarator "*local_14c" * identifier) ;) (declaration "undefined *local_148;" type_identifier (pointer_declarator "*local_148" * identifier) ;) (declaration "undefined *local_144;" type_identifier (pointer_declarator "*local_144" * identifier) ;) (declaration "code *local_140;" type_identifier (pointer_declarator "*local_140" * identifier) ;) (declaration "char *tokens [3];" primitive_type (pointer_declarator "*tokens [3]" * (array_declarator "tokens [3]" identifier [ number_literal ])) ;) (declaration "char wildcard [256];" primitive_type (array_declarator "wildcard [256]" identifier [ number_literal ]) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iVar5 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar6 = bb_basename(filename);" (assignment_expression "pcVar6 = bb_basename(filename)" identifier = (call_expression "bb_basename(filename)" identifier (argument_list "(filename)" ( identifier )))) ;) (if_statement "if (*pcVar6 != '.') {\n    iVar9 = 2;\n    if (1 < depth) goto LAB_00036924;\n    if ((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }\n  }" if (parenthesized_expression "(*pcVar6 != '.')" ( (binary_expression "*pcVar6 != '.'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n    iVar9 = 2;\n    if (1 < depth) goto LAB_00036924;\n    if ((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }\n  }" { (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (if_statement "if (1 < depth) goto LAB_00036924;" if (parenthesized_expression "(1 < depth)" ( (binary_expression "1 < depth" number_literal < identifier) )) (goto_statement "goto LAB_00036924;" goto statement_identifier ;)) (if_statement "if ((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)) {\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }" if (parenthesized_expression "((depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0))" ( (binary_expression "(depth == 0) ||\n       (pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)" (parenthesized_expression "(depth == 0)" ( (binary_expression "depth == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0), pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0)" identifier = (call_expression "is_suffixed_with(pcVar6,PTR_UINT_0012a18c + 0x1ec0)" identifier (argument_list "(pcVar6,PTR_UINT_0012a18c + 0x1ec0)" ( identifier , (binary_expression "PTR_UINT_0012a18c + 0x1ec0" identifier + number_literal) )))) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);\n      iVar9 = 0;\n      if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }\n      goto LAB_00036924;\n    }" { (expression_statement "filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4);" (assignment_expression "filename = (char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4)" identifier = (cast_expression "(char *)(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_config_open2_0012a460)(filename,PTR_fopen_for_read_0012a1c4)" (parenthesized_expression "(*(code *)PTR_config_open2_0012a460)" ( (pointer_expression "*(code *)PTR_config_open2_0012a460" * (cast_expression "(code *)PTR_config_open2_0012a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filename,PTR_fopen_for_read_0012a1c4)" ( identifier , identifier ))))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (filename != (char *)0x0) {\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }" if (parenthesized_expression "(filename != (char *)0x0)" ( (binary_expression "filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_15c = PTR_UINT_0012a18c;\n        unaff_s4 = tokens;\n        local_160 = (code *)PTR_config_read_0012a458;\n        unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;\n        local_148 = PTR_UINT_0012a18c + 0x1ed0;\n        local_14c = PTR_UINT_0012a18c;\n        local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);\n        local_144 = PTR_UINT_0012a18c;\n        goto LAB_000368f0;\n      }" { (expression_statement "local_15c = PTR_UINT_0012a18c;" (assignment_expression "local_15c = PTR_UINT_0012a18c" identifier = identifier) ;) (expression_statement "unaff_s4 = tokens;" (assignment_expression "unaff_s4 = tokens" identifier = identifier) ;) (expression_statement "local_160 = (code *)PTR_config_read_0012a458;" (assignment_expression "local_160 = (code *)PTR_config_read_0012a458" identifier = (cast_expression "(code *)PTR_config_read_0012a458" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s2 = PTR_UINT_0012a18c + 0x1d3c;" (assignment_expression "unaff_s2 = PTR_UINT_0012a18c + 0x1d3c" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1d3c" identifier + number_literal)) ;) (expression_statement "local_148 = PTR_UINT_0012a18c + 0x1ed0;" (assignment_expression "local_148 = PTR_UINT_0012a18c + 0x1ed0" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1ed0" identifier + number_literal)) ;) (expression_statement "local_14c = PTR_UINT_0012a18c;" (assignment_expression "local_14c = PTR_UINT_0012a18c" identifier = identifier) ;) (expression_statement "local_140 = (code *)(PTR_LAB_0012a398 + 0x644c);" (assignment_expression "local_140 = (code *)(PTR_LAB_0012a398 + 0x644c)" identifier = (cast_expression "(code *)(PTR_LAB_0012a398 + 0x644c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0012a398 + 0x644c)" ( (binary_expression "PTR_LAB_0012a398 + 0x644c" identifier + number_literal) )))) ;) (expression_statement "local_144 = PTR_UINT_0012a18c;" (assignment_expression "local_144 = PTR_UINT_0012a18c" identifier = identifier) ;) (goto_statement "goto LAB_000368f0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00036924;" goto statement_identifier ;) })) })) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00036924:\n  do {\n    if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);\n    (*(code *)PTR_config_close_0012a468)(filename);\n    iVar9 = 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);\n    (*(code *)PTR_config_close_0012a468)(filename);\n    iVar9 = 1;\n  } while( true );" do (compound_statement "{\n    if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);\n    (*(code *)PTR_config_close_0012a468)(filename);\n    iVar9 = 1;\n  }" { (if_statement "if (iVar5 == *(int *)puVar4) {\n      return iVar9;\n    }" if (parenthesized_expression "(iVar5 == *(int *)puVar4)" ( (binary_expression "iVar5 == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return iVar9;\n    }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (do_statement "do {\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    } while (iVar9 != 0);" do (compound_statement "{\n      pcVar6 = tokens[0];\n      iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);\n      puVar3 = PTR_filename2modname_0012a464;\n      if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }\nLAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);\n    }" { (expression_statement "pcVar6 = tokens[0];" (assignment_expression "pcVar6 = tokens[0]" identifier = (subscript_expression "tokens[0]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2);" (assignment_expression "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(tokens[0],unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tokens[0],unaff_s2)" ( (subscript_expression "tokens[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar3 = PTR_filename2modname_0012a464;" (assignment_expression "puVar3 = PTR_filename2modname_0012a464" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }\n      }" { (if_statement "if (tokens[2] != (char *)0x0) {\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }" if (parenthesized_expression "(tokens[2] != (char *)0x0)" ( (binary_expression "tokens[2] != (char *)0x0" (subscript_expression "tokens[2]" identifier [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          filename2modname(tokens[1],wildcard);\n          puVar2 = PTR_llist_add_to_0012a430;\n          puVar1 = PTR_moddb_get_or_create_0012a428;\n          piVar11 = *(int **)PTR_ptr_to_globals_0012a304;\n          piVar12 = (int *)*piVar11;\n          if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }\n        }" { (expression_statement "filename2modname(tokens[1],wildcard);" (call_expression "filename2modname(tokens[1],wildcard)" identifier (argument_list "(tokens[1],wildcard)" ( (subscript_expression "tokens[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "puVar2 = PTR_llist_add_to_0012a430;" (assignment_expression "puVar2 = PTR_llist_add_to_0012a430" identifier = identifier) ;) (expression_statement "puVar1 = PTR_moddb_get_or_create_0012a428;" (assignment_expression "puVar1 = PTR_moddb_get_or_create_0012a428" identifier = identifier) ;) (expression_statement "piVar11 = *(int **)PTR_ptr_to_globals_0012a304;" (assignment_expression "piVar11 = *(int **)PTR_ptr_to_globals_0012a304" identifier = (pointer_expression "*(int **)PTR_ptr_to_globals_0012a304" * (cast_expression "(int **)PTR_ptr_to_globals_0012a304" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar12 = (int *)*piVar11;" (assignment_expression "piVar12 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);\n          }" { (do_statement "do {\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            } while (piVar12 != (int *)0x0);" do (compound_statement "{\n              while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }\n              uVar8 = (*(code *)puVar3)(tokens[2],0);\n              (*(code *)puVar2)(iVar10 + 0x10,uVar8);\n              if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }\n              iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);\n              if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;\n              iVar10 = piVar11[2];\n              piVar12 = (int *)*piVar12;\n              *(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;\n              piVar11[2] = iVar10 + 1;\n            }" { (while_statement "while( true ) {\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar10 = piVar12[1];\n                iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);\n                if (iVar9 == 0) break;\nLAB_000369f8:\n                piVar12 = (int *)*piVar12;\n                if (piVar12 == (int *)0x0) goto LAB_000368f0;\n              }" { (expression_statement "iVar10 = piVar12[1];" (assignment_expression "iVar10 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0);" (assignment_expression "iVar9 = (*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0)" identifier = (call_expression "(*(code *)PTR_fnmatch_0012b064)(wildcard,*(undefined4 *)(iVar10 + 8),0)" (parenthesized_expression "(*(code *)PTR_fnmatch_0012b064)" ( (pointer_expression "*(code *)PTR_fnmatch_0012b064" * (cast_expression "(code *)PTR_fnmatch_0012b064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(wildcard,*(undefined4 *)(iVar10 + 8),0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000369f8:\n                piVar12 = (int *)*piVar12;" statement_identifier : (expression_statement "piVar12 = (int *)*piVar12;" (assignment_expression "piVar12 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;)) (if_statement "if (piVar12 == (int *)0x0) goto LAB_000368f0;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000368f0;" goto statement_identifier ;)) })) (expression_statement "uVar8 = (*(code *)puVar3)(tokens[2],0);" (assignment_expression "uVar8 = (*(code *)puVar3)(tokens[2],0)" identifier = (call_expression "(*(code *)puVar3)(tokens[2],0)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tokens[2],0)" ( (subscript_expression "tokens[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "(*(code *)puVar2)(iVar10 + 0x10,uVar8);" (call_expression "(*(code *)puVar2)(iVar10 + 0x10,uVar8)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10 + 0x10,uVar8)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) , identifier ))) ;) (if_statement "if ((*(uint *)(iVar10 + 0x14) & 2) != 0) {\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }" if (parenthesized_expression "((*(uint *)(iVar10 + 0x14) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar10 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar10 + 0x14) & 2)" ( (binary_expression "*(uint *)(iVar10 + 0x14) & 2" (pointer_expression "*(uint *)(iVar10 + 0x14)" * (cast_expression "(uint *)(iVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar9 = piVar11[2];\n                *(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;\n                piVar11[2] = iVar9 + -1;\n              }" { (expression_statement "iVar9 = piVar11[2];" (assignment_expression "iVar9 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar10 + 0x14) = *(uint *)(iVar10 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar10 + 0x14)" * (cast_expression "(uint *)(iVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar10 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar10 + 0x14)" * (cast_expression "(uint *)(iVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar11[2] = iVar9 + -1;" (assignment_expression "piVar11[2] = iVar9 + -1" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar11 + 0x65,uVar8)" identifier = (call_expression "(*(code *)puVar1)(piVar11 + 0x65,uVar8)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar11 + 0x65,uVar8)" ( (binary_expression "piVar11 + 0x65" identifier + number_literal) , identifier )))) ;) (if_statement "if ((*(uint *)(iVar9 + 0x14) & 2) != 0) goto LAB_000369f8;" if (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 2)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 2" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000369f8;" goto statement_identifier ;)) (expression_statement "iVar10 = piVar11[2];" (assignment_expression "iVar10 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "piVar12 = (int *)*piVar12;" (assignment_expression "piVar12 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "*(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2;" (assignment_expression "*(uint *)(iVar9 + 0x14) = *(uint *)(iVar9 + 0x14) | 2" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar9 + 0x14) | 2" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar11[2] = iVar10 + 1;" (assignment_expression "piVar11[2] = iVar10 + 1" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) }) (else_clause "else {\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);\n        if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8);" (assignment_expression "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_14c + 0x1ec8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,local_14c + 0x1ec8)" ( identifier , (binary_expression "local_14c + 0x1ec8" identifier + number_literal) )))) ;) (if_statement "if (iVar9 == 0) {\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }\n        else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }\n        }" { (if_statement "if (tokens[2] != (char *)0x0) {\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }" if (parenthesized_expression "(tokens[2] != (char *)0x0)" ( (binary_expression "tokens[2] != (char *)0x0" (subscript_expression "tokens[2]" identifier [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);\n            pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);\n            pmVar7->options = pcVar6;\n          }" { (expression_statement "pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1]);" (assignment_expression "pmVar7 = moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1])" identifier = (call_expression "moddb_get_or_create((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1])" identifier (argument_list "((module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194),\n                                         tokens[1])" ( (cast_expression "(module_db *)(*(int *)PTR_ptr_to_globals_0012a304 + 0x194)" ( (type_descriptor "module_db *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_ptr_to_globals_0012a304 + 0x194)" ( (binary_expression "*(int *)PTR_ptr_to_globals_0012a304 + 0x194" (pointer_expression "*(int *)PTR_ptr_to_globals_0012a304" * (cast_expression "(int *)PTR_ptr_to_globals_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) , (subscript_expression "tokens[1]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2]);" (assignment_expression "pcVar6 = (char *)(*local_140)(pmVar7->options,tokens[2])" identifier = (cast_expression "(char *)(*local_140)(pmVar7->options,tokens[2])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_140)(pmVar7->options,tokens[2])" (parenthesized_expression "(*local_140)" ( (pointer_expression "*local_140" * identifier) )) (argument_list "(pmVar7->options,tokens[2])" ( (field_expression "pmVar7->options" identifier -> field_identifier) , (subscript_expression "tokens[2]" identifier [ number_literal ]) ))))) ;) (expression_statement "pmVar7->options = pcVar6;" (assignment_expression "pmVar7->options = pcVar6" (field_expression "pmVar7->options" identifier -> field_identifier) = identifier) ;) })) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);\n          if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148);" (assignment_expression "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_148)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,local_148)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }\n          else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            (*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;\n          }" { (expression_statement "(*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)\n            ;" (call_expression "(*(code *)PTR_recursive_action_0012a43c)(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" (parenthesized_expression "(*(code *)PTR_recursive_action_0012a43c)" ( (pointer_expression "*(code *)PTR_recursive_action_0012a43c" * (cast_expression "(code *)PTR_recursive_action_0012a43c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tokens[1],0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" ( (subscript_expression "tokens[1]" identifier [ number_literal ]) , number_literal , (binary_expression "PTR_LAB_0012a398 + 0x67e4" identifier + number_literal) , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }" else (compound_statement "{\n            iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);\n            if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }\n          }" { (expression_statement "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8);" (assignment_expression "iVar9 = (*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(pcVar6,local_144 + 0x1ed8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,local_144 + 0x1ed8)" ( identifier , (binary_expression "local_144 + 0x1ed8" identifier + number_literal) )))) ;) (if_statement "if (iVar9 == 0) {\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);\n              pmVar7->flags = pmVar7->flags | 8;\n            }" { (expression_statement "pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1]);" (assignment_expression "pmVar7 = moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1])" identifier = (call_expression "moddb_get_or_create((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1])" identifier (argument_list "((module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194),tokens[1])" ( (cast_expression "(module_db *)\n                                           (*(int *)PTR_ptr_to_globals_0012a304 + 0x194)" ( (type_descriptor "module_db *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_ptr_to_globals_0012a304 + 0x194)" ( (binary_expression "*(int *)PTR_ptr_to_globals_0012a304 + 0x194" (pointer_expression "*(int *)PTR_ptr_to_globals_0012a304" * (cast_expression "(int *)PTR_ptr_to_globals_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) , (subscript_expression "tokens[1]" identifier [ number_literal ]) )))) ;) (expression_statement "pmVar7->flags = pmVar7->flags | 8;" (assignment_expression "pmVar7->flags = pmVar7->flags | 8" (field_expression "pmVar7->flags" identifier -> field_identifier) = (binary_expression "pmVar7->flags | 8" (field_expression "pmVar7->flags" identifier -> field_identifier) | number_literal)) ;) })) }))) }))) }))) (labeled_statement "LAB_000368f0:\n      iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);" statement_identifier : (expression_statement "iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14);" (assignment_expression "iVar9 = (*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14)" identifier = (call_expression "(*local_160)(filename,unaff_s4,0x470203,local_15c + 0x1e14)" (parenthesized_expression "(*local_160)" ( (pointer_expression "*local_160" * identifier) )) (argument_list "(filename,unaff_s4,0x470203,local_15c + 0x1e14)" ( identifier , identifier , number_literal , (binary_expression "local_15c + 0x1e14" identifier + number_literal) )))) ;)) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_config_close_0012a468)(filename);" (call_expression "(*(code *)PTR_config_close_0012a468)(filename)" (parenthesized_expression "(*(code *)PTR_config_close_0012a468)" ( (pointer_expression "*(code *)PTR_config_close_0012a468" * (cast_expression "(code *)PTR_config_close_0012a468" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filename)" ( identifier ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "undefined4 FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}\n\n" (function_definition "undefined4 FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}" type_identifier (function_declarator "FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 local_138;" type_identifier identifier ;) (declaration "undefined4 local_134;" type_identifier identifier ;) (declaration "int local_130;" primitive_type identifier ;) (declaration "undefined1 auStack_12c [256];" type_identifier (array_declarator "auStack_12c [256]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar7 = (char *)FUN_0001884c();" (assignment_expression "pcVar7 = (char *)FUN_0001884c()" identifier = (cast_expression "(char *)FUN_0001884c()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001884c()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }" if (parenthesized_expression "(*pcVar7 != '.')" ( (binary_expression "*pcVar7 != '.'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }" { (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (if_statement "if (1 < param_4) goto LAB_00036924;" if (parenthesized_expression "(1 < param_4)" ( (binary_expression "1 < param_4" number_literal < identifier) )) (goto_statement "goto LAB_00036924;" goto statement_identifier ;)) (if_statement "if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }" if (parenthesized_expression "((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0))" ( (binary_expression "(param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)" ( (comma_expression "iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0" (assignment_expression "iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" identifier = (call_expression "FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" identifier (argument_list "(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" ( identifier , (binary_expression "PTR_UINT_0012a18c + 0x1ec0" identifier + number_literal) )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }" { (expression_statement "iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);" (assignment_expression "iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4)" identifier = (call_expression "(*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a460)" ( (pointer_expression "*(code *)PTR_FUN_0012a460" * (cast_expression "(code *)PTR_FUN_0012a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_FUN_0012a1c4)" ( identifier , identifier )))) ;) (expression_statement "puVar4 = PTR_FUN_0012a458;" (assignment_expression "puVar4 = PTR_FUN_0012a458" identifier = identifier) ;) (expression_statement "puVar1 = PTR_UINT_0012a18c;" (assignment_expression "puVar1 = PTR_UINT_0012a18c" identifier = identifier) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }" { (expression_statement "puVar14 = PTR_UINT_0012a18c + 0x1d3c;" (assignment_expression "puVar14 = PTR_UINT_0012a18c + 0x1d3c" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1d3c" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR_UINT_0012a18c + 0x1ed0;" (assignment_expression "puVar9 = PTR_UINT_0012a18c + 0x1ed0" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1ed0" identifier + number_literal)) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c)" identifier = (cast_expression "(code *)(PTR_LAB_0012a398 + 0x644c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0012a398 + 0x644c)" ( (binary_expression "PTR_LAB_0012a398 + 0x644c" identifier + number_literal) )))) ;) (labeled_statement "LAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);" statement_identifier : (expression_statement "iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);" (assignment_expression "iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" identifier = (call_expression "(*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" ( identifier , (pointer_expression "&local_138" & identifier) , number_literal , (binary_expression "puVar1 + 0x1e14" identifier + number_literal) )))) ;)) (expression_statement "uVar12 = local_138;" (assignment_expression "uVar12 = local_138" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_138,puVar14)" ( identifier , identifier )))) ;) (expression_statement "puVar5 = PTR_FUN_0012a464;" (assignment_expression "puVar5 = PTR_FUN_0012a464" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }" { (if_statement "if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }" { (expression_statement "FUN_000377b8(local_134);" (call_expression "FUN_000377b8(local_134)" identifier (argument_list "(local_134)" ( identifier ))) ;) (expression_statement "puVar3 = PTR_FUN_0012a430;" (assignment_expression "puVar3 = PTR_FUN_0012a430" identifier = identifier) ;) (expression_statement "puVar2 = PTR_FUN_0012a428;" (assignment_expression "puVar2 = PTR_FUN_0012a428" identifier = identifier) ;) (expression_statement "piVar15 = *(int **)PTR_DAT_0012a304;" (assignment_expression "piVar15 = *(int **)PTR_DAT_0012a304" identifier = (pointer_expression "*(int **)PTR_DAT_0012a304" * (cast_expression "(int **)PTR_DAT_0012a304" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar16 = (int *)*piVar15;" (assignment_expression "piVar16 = (int *)*piVar15" identifier = (cast_expression "(int *)*piVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar15" * identifier))) ;) (if_statement "if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }" { (do_statement "do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);" do (compound_statement "{\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                }" { (while_statement "while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }" { (expression_statement "iVar13 = piVar16[1];" (assignment_expression "iVar13 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);" (assignment_expression "iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0)" identifier = (call_expression "(*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0)" (parenthesized_expression "(*(code *)PTR_fnmatch_0012b064)" ( (pointer_expression "*(code *)PTR_fnmatch_0012b064" * (cast_expression "(code *)PTR_fnmatch_0012b064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_12c,*(undefined4 *)(iVar13 + 8),0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar13 + 8)" * (cast_expression "(undefined4 *)(iVar13 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar11 == 0) break;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000369f8:\n                    piVar16 = (int *)*piVar16;" statement_identifier : (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;)) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000368f0;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000368f0;" goto statement_identifier ;)) })) (expression_statement "uVar12 = (*(code *)puVar5)(local_130,0);" (assignment_expression "uVar12 = (*(code *)puVar5)(local_130,0)" identifier = (call_expression "(*(code *)puVar5)(local_130,0)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_130,0)" ( identifier , number_literal )))) ;) (expression_statement "(*(code *)puVar3)(iVar13 + 0x10,uVar12);" (call_expression "(*(code *)puVar3)(iVar13 + 0x10,uVar12)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13 + 0x10,uVar12)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) , identifier ))) ;) (if_statement "if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }" if (parenthesized_expression "((*(uint *)(iVar13 + 0x14) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 0x14) & 2)" ( (binary_expression "*(uint *)(iVar13 + 0x14) & 2" (pointer_expression "*(uint *)(iVar13 + 0x14)" * (cast_expression "(uint *)(iVar13 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }" { (expression_statement "iVar11 = piVar15[2];" (assignment_expression "iVar11 = piVar15[2]" identifier = (subscript_expression "piVar15[2]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar13 + 0x14)" * (cast_expression "(uint *)(iVar13 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar13 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar13 + 0x14)" * (cast_expression "(uint *)(iVar13 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar15[2] = iVar11 + -1;" (assignment_expression "piVar15[2] = iVar11 + -1" (subscript_expression "piVar15[2]" identifier [ number_literal ]) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);" (assignment_expression "iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12)" identifier = (call_expression "(*(code *)puVar2)(piVar15 + 0x65,uVar12)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar15 + 0x65,uVar12)" ( (binary_expression "piVar15 + 0x65" identifier + number_literal) , identifier )))) ;) (if_statement "if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;" if (parenthesized_expression "((*(uint *)(iVar11 + 0x14) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar11 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x14) & 2)" ( (binary_expression "*(uint *)(iVar11 + 0x14) & 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000369f8;" goto statement_identifier ;)) (expression_statement "iVar13 = piVar15[2];" (assignment_expression "iVar13 = piVar15[2]" identifier = (subscript_expression "piVar15[2]" identifier [ number_literal ])) ;) (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;) (expression_statement "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;" (assignment_expression "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar11 + 0x14) | 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar15[2] = iVar13 + 1;" (assignment_expression "piVar15[2] = iVar13 + 1" (subscript_expression "piVar15[2]" identifier [ number_literal ]) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) }) (else_clause "else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" else (compound_statement "{\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,puVar1 + 0x1ec8)" ( identifier , (binary_expression "puVar1 + 0x1ec8" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }" { (if_statement "if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }" { (expression_statement "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);" (assignment_expression "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier = (call_expression "FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier (argument_list "(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" ( (binary_expression "*(int *)PTR_DAT_0012a304 + 0x194" (pointer_expression "*(int *)PTR_DAT_0012a304" * (cast_expression "(int *)PTR_DAT_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , identifier )))) ;) (expression_statement "uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);" (assignment_expression "uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130)" identifier = (call_expression "(*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(undefined4 *)(iVar11 + 0x1c),local_130)" ( (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" * (cast_expression "(undefined4 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(iVar11 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" * (cast_expression "(undefined4 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" else (compound_statement "{\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,puVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }" { (expression_statement "(*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);" (call_expression "(*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a43c)" ( (pointer_expression "*(code *)PTR_FUN_0012a43c" * (cast_expression "(code *)PTR_FUN_0012a43c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" ( identifier , number_literal , (binary_expression "PTR_LAB_0012a398 + 0x67e4" identifier + number_literal) , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" else (compound_statement "{\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" { (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8)" identifier = (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" ( (pointer_expression "*(code *)PTR_strcmp_0012b1c8" * (cast_expression "(code *)PTR_strcmp_0012b1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,puVar1 + 0x1ed8)" ( identifier , (binary_expression "puVar1 + 0x1ed8" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }" { (expression_statement "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);" (assignment_expression "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier = (call_expression "FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" identifier (argument_list "(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" ( (binary_expression "*(int *)PTR_DAT_0012a304 + 0x194" (pointer_expression "*(int *)PTR_DAT_0012a304" * (cast_expression "(int *)PTR_DAT_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , identifier )))) ;) (expression_statement "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar11 + 0x14) | 8" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) | number_literal)) ;) })) }))) }))) }))) (goto_statement "goto LAB_000368f0;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_FUN_0012a468)(iVar8);" (call_expression "(*(code *)PTR_FUN_0012a468)(iVar8)" (parenthesized_expression "(*(code *)PTR_FUN_0012a468)" ( (pointer_expression "*(code *)PTR_FUN_0012a468" * (cast_expression "(code *)PTR_FUN_0012a468" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_00036924;" goto statement_identifier ;) })) })) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar6)" ( (binary_expression "local_2c != *(int *)puVar6" identifier != (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" { (expression_statement "uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar12;" return identifier ;) }))) (return_statement "return uVar12;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) (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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) })) }) (else_clause else (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 , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }) (else_clause else (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 , 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 ( IDENT , LIT , (binary_expression IDENT + LIT) , LIT , LIT , LIT ))) ;) }) (else_clause else (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 , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) }))) }))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}" (type_identifier "undefined4") (function_declarator "FUN_000367e4(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" (identifier "FUN_000367e4") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  undefined *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 local_138;\n  undefined4 local_134;\n  int local_130;\n  undefined1 auStack_12c [256];\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_0012b14c;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pcVar7 = (char *)FUN_0001884c();\n  if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }\n  uVar12 = 1;\nLAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }\n  return uVar12;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined4 local_138;" (type_identifier "undefined4") (identifier "local_138") (; ";")) (declaration "undefined4 local_134;" (type_identifier "undefined4") (identifier "local_134") (; ";")) (declaration "int local_130;" (primitive_type "int") (identifier "local_130") (; ";")) (declaration "undefined1 auStack_12c [256];" (type_identifier "undefined1") (array_declarator "auStack_12c [256]" (identifier "auStack_12c") ([ "[") (number_literal "256") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar6 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0012b14c" (identifier "puVar6") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (expression_statement "pcVar7 = (char *)FUN_0001884c();" (assignment_expression "pcVar7 = (char *)FUN_0001884c()" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_0001884c()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001884c()" (identifier "FUN_0001884c") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*pcVar7 != '.') {\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }" (if "if") (parenthesized_expression "(*pcVar7 != '.')" (( "(") (binary_expression "*pcVar7 != '.'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n    uVar12 = 2;\n    if (1 < param_4) goto LAB_00036924;\n    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }\n  }" ({ "{") (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" (identifier "uVar12") (= "=") (number_literal "2")) (; ";")) (if_statement "if (1 < param_4) goto LAB_00036924;" (if "if") (parenthesized_expression "(1 < param_4)" (( "(") (binary_expression "1 < param_4" (number_literal "1") (< "<") (identifier "param_4")) () ")")) (goto_statement "goto LAB_00036924;" (goto "goto") (statement_identifier "LAB_00036924") (; ";"))) (if_statement "if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }" (if "if") (parenthesized_expression "((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0))" (( "(") (binary_expression "(param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)" (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)" (( "(") (comma_expression "iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0" (assignment_expression "iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" (identifier "iVar8") (= "=") (call_expression "FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" (identifier "FUN_0001849c") (argument_list "(pcVar7,PTR_UINT_0012a18c + 0x1ec0)" (( "(") (identifier "pcVar7") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x1ec0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x1ec0")) () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);\n      puVar4 = PTR_FUN_0012a458;\n      puVar1 = PTR_UINT_0012a18c;\n      uVar12 = 0;\n      if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }\n      goto LAB_00036924;\n    }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);" (assignment_expression "iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a460)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a460" (* "*") (cast_expression "(code *)PTR_FUN_0012a460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a460"))) () ")")) (argument_list "(param_1,PTR_FUN_0012a1c4)" (( "(") (identifier "param_1") (, ",") (identifier "PTR_FUN_0012a1c4") () ")")))) (; ";")) (expression_statement "puVar4 = PTR_FUN_0012a458;" (assignment_expression "puVar4 = PTR_FUN_0012a458" (identifier "puVar4") (= "=") (identifier "PTR_FUN_0012a458")) (; ";")) (expression_statement "puVar1 = PTR_UINT_0012a18c;" (assignment_expression "puVar1 = PTR_UINT_0012a18c" (identifier "puVar1") (= "=") (identifier "PTR_UINT_0012a18c")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar8 != 0) {\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar14 = PTR_UINT_0012a18c + 0x1d3c;\n        puVar9 = PTR_UINT_0012a18c + 0x1ed0;\n        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);\nLAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);\n        uVar12 = local_138;\n        if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }\n        (*(code *)PTR_FUN_0012a468)(iVar8);\n        uVar12 = 1;\n      }" ({ "{") (expression_statement "puVar14 = PTR_UINT_0012a18c + 0x1d3c;" (assignment_expression "puVar14 = PTR_UINT_0012a18c + 0x1d3c" (identifier "puVar14") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x1d3c" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x1d3c"))) (; ";")) (expression_statement "puVar9 = PTR_UINT_0012a18c + 0x1ed0;" (assignment_expression "puVar9 = PTR_UINT_0012a18c + 0x1ed0" (identifier "puVar9") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x1ed0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x1ed0"))) (; ";")) (expression_statement "pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(PTR_LAB_0012a398 + 0x644c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0012a398 + 0x644c)" (( "(") (binary_expression "PTR_LAB_0012a398 + 0x644c" (identifier "PTR_LAB_0012a398") (+ "+") (number_literal "0x644c")) () ")")))) (; ";")) (labeled_statement "LAB_000368f0:\n        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);" (statement_identifier "LAB_000368f0") (: ":") (expression_statement "iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);" (assignment_expression "iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" (identifier "iVar11") (= "=") (call_expression "(*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(iVar8,&local_138,0x470203,puVar1 + 0x1e14)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "&local_138" (& "&") (identifier "local_138")) (, ",") (number_literal "0x470203") (, ",") (binary_expression "puVar1 + 0x1e14" (identifier "puVar1") (+ "+") (number_literal "0x1e14")) () ")")))) (; ";"))) (expression_statement "uVar12 = local_138;" (assignment_expression "uVar12 = local_138" (identifier "uVar12") (= "=") (identifier "local_138")) (; ";")) (if_statement "if (iVar11 != 0) {\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);\n          puVar5 = PTR_FUN_0012a464;\n          if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }\n          goto LAB_000368f0;\n        }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0012b1c8" (* "*") (cast_expression "(code *)PTR_strcmp_0012b1c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0012b1c8"))) () ")")) (argument_list "(local_138,puVar14)" (( "(") (identifier "local_138") (, ",") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "puVar5 = PTR_FUN_0012a464;" (assignment_expression "puVar5 = PTR_FUN_0012a464" (identifier "puVar5") (= "=") (identifier "PTR_FUN_0012a464")) (; ";")) (if_statement "if (iVar11 == 0) {\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }\n          else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }\n          }" ({ "{") (if_statement "if (local_130 != 0) {\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }" (if "if") (parenthesized_expression "(local_130 != 0)" (( "(") (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_000377b8(local_134);\n              puVar3 = PTR_FUN_0012a430;\n              puVar2 = PTR_FUN_0012a428;\n              piVar15 = *(int **)PTR_DAT_0012a304;\n              piVar16 = (int *)*piVar15;\n              if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }\n            }" ({ "{") (expression_statement "FUN_000377b8(local_134);" (call_expression "FUN_000377b8(local_134)" (identifier "FUN_000377b8") (argument_list "(local_134)" (( "(") (identifier "local_134") () ")"))) (; ";")) (expression_statement "puVar3 = PTR_FUN_0012a430;" (assignment_expression "puVar3 = PTR_FUN_0012a430" (identifier "puVar3") (= "=") (identifier "PTR_FUN_0012a430")) (; ";")) (expression_statement "puVar2 = PTR_FUN_0012a428;" (assignment_expression "puVar2 = PTR_FUN_0012a428" (identifier "puVar2") (= "=") (identifier "PTR_FUN_0012a428")) (; ";")) (expression_statement "piVar15 = *(int **)PTR_DAT_0012a304;" (assignment_expression "piVar15 = *(int **)PTR_DAT_0012a304" (identifier "piVar15") (= "=") (pointer_expression "*(int **)PTR_DAT_0012a304" (* "*") (cast_expression "(int **)PTR_DAT_0012a304" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0012a304")))) (; ";")) (expression_statement "piVar16 = (int *)*piVar15;" (assignment_expression "piVar16 = (int *)*piVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)*piVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar15" (* "*") (identifier "piVar15")))) (; ";")) (if_statement "if (piVar16 != (int *)0x0) {\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);\n              }" ({ "{") (do_statement "do {\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                } while (piVar16 != (int *)0x0);" (do "do") (compound_statement "{\n                  while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }\n                  uVar12 = (*(code *)puVar5)(local_130,0);\n                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);\n                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }\n                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);\n                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;\n                  iVar13 = piVar15[2];\n                  piVar16 = (int *)*piVar16;\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;\n                  piVar15[2] = iVar13 + 1;\n                }" ({ "{") (while_statement "while( true ) {\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                    iVar13 = piVar16[1];\n                    iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);\n                    if (iVar11 == 0) break;\nLAB_000369f8:\n                    piVar16 = (int *)*piVar16;\n                    if (piVar16 == (int *)0x0) goto LAB_000368f0;\n                  }" ({ "{") (expression_statement "iVar13 = piVar16[1];" (assignment_expression "iVar13 = piVar16[1]" (identifier "iVar13") (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);" (assignment_expression "iVar11 = (*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_fnmatch_0012b064)\n                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0)" (parenthesized_expression "(*(code *)PTR_fnmatch_0012b064)" (( "(") (pointer_expression "*(code *)PTR_fnmatch_0012b064" (* "*") (cast_expression "(code *)PTR_fnmatch_0012b064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fnmatch_0012b064"))) () ")")) (argument_list "(auStack_12c,*(undefined4 *)(iVar13 + 8),0)" (( "(") (identifier "auStack_12c") (, ",") (pointer_expression "*(undefined4 *)(iVar13 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar13 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) break;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000369f8:\n                    piVar16 = (int *)*piVar16;" (statement_identifier "LAB_000369f8") (: ":") (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" (identifier "piVar16") (= "=") (cast_expression "(int *)*piVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar16" (* "*") (identifier "piVar16")))) (; ";"))) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000368f0;" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000368f0;" (goto "goto") (statement_identifier "LAB_000368f0") (; ";"))) (} "}"))) (expression_statement "uVar12 = (*(code *)puVar5)(local_130,0);" (assignment_expression "uVar12 = (*(code *)puVar5)(local_130,0)" (identifier "uVar12") (= "=") (call_expression "(*(code *)puVar5)(local_130,0)" (parenthesized_expression "(*(code *)puVar5)" (( "(") (pointer_expression "*(code *)puVar5" (* "*") (cast_expression "(code *)puVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) () ")")) (argument_list "(local_130,0)" (( "(") (identifier "local_130") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(*(code *)puVar3)(iVar13 + 0x10,uVar12);" (call_expression "(*(code *)puVar3)(iVar13 + 0x10,uVar12)" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(iVar13 + 0x10,uVar12)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }" (if "if") (parenthesized_expression "((*(uint *)(iVar13 + 0x14) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(iVar13 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 0x14) & 2)" (( "(") (binary_expression "*(uint *)(iVar13 + 0x14) & 2" (pointer_expression "*(uint *)(iVar13 + 0x14)" (* "*") (cast_expression "(uint *)(iVar13 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar11 = piVar15[2];\n                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;\n                    piVar15[2] = iVar11 + -1;\n                  }" ({ "{") (expression_statement "iVar11 = piVar15[2];" (assignment_expression "iVar11 = piVar15[2]" (identifier "iVar11") (= "=") (subscript_expression "piVar15[2]" (identifier "piVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar13 + 0x14)" (* "*") (cast_expression "(uint *)(iVar13 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar13 + 0x14) & 0xfffffffd" (pointer_expression "*(uint *)(iVar13 + 0x14)" (* "*") (cast_expression "(uint *)(iVar13 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0xfffffffd"))) (; ";")) (expression_statement "piVar15[2] = iVar11 + -1;" (assignment_expression "piVar15[2] = iVar11 + -1" (subscript_expression "piVar15[2]" (identifier "piVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);" (assignment_expression "iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12)" (identifier "iVar11") (= "=") (call_expression "(*(code *)puVar2)(piVar15 + 0x65,uVar12)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(piVar15 + 0x65,uVar12)" (( "(") (binary_expression "piVar15 + 0x65" (identifier "piVar15") (+ "+") (number_literal "0x65")) (, ",") (identifier "uVar12") () ")")))) (; ";")) (if_statement "if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;" (if "if") (parenthesized_expression "((*(uint *)(iVar11 + 0x14) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(iVar11 + 0x14) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x14) & 2)" (( "(") (binary_expression "*(uint *)(iVar11 + 0x14) & 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" (* "*") (cast_expression "(uint *)(iVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000369f8;" (goto "goto") (statement_identifier "LAB_000369f8") (; ";"))) (expression_statement "iVar13 = piVar15[2];" (assignment_expression "iVar13 = piVar15[2]" (identifier "iVar13") (= "=") (subscript_expression "piVar15[2]" (identifier "piVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar16 = (int *)*piVar16;" (assignment_expression "piVar16 = (int *)*piVar16" (identifier "piVar16") (= "=") (cast_expression "(int *)*piVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar16" (* "*") (identifier "piVar16")))) (; ";")) (expression_statement "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;" (assignment_expression "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" (* "*") (cast_expression "(uint *)(iVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar11 + 0x14) | 2" (pointer_expression "*(uint *)(iVar11 + 0x14)" (* "*") (cast_expression "(uint *)(iVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "piVar15[2] = iVar13 + 1;" (assignment_expression "piVar15[2] = iVar13 + 1" (subscript_expression "piVar15[2]" (identifier "piVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);\n            if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0012b1c8" (* "*") (cast_expression "(code *)PTR_strcmp_0012b1c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0012b1c8"))) () ")")) (argument_list "(uVar12,puVar1 + 0x1ec8)" (( "(") (identifier "uVar12") (, ",") (binary_expression "puVar1 + 0x1ec8" (identifier "puVar1") (+ "+") (number_literal "0x1ec8")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }\n            else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }\n            }" ({ "{") (if_statement "if (local_130 != 0) {\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }" (if "if") (parenthesized_expression "(local_130 != 0)" (( "(") (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);\n                *(undefined4 *)(iVar11 + 0x1c) = uVar12;\n              }" ({ "{") (expression_statement "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);" (assignment_expression "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" (identifier "iVar11") (= "=") (call_expression "FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" (identifier "FUN_000379d8") (argument_list "(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" (( "(") (binary_expression "*(int *)PTR_DAT_0012a304 + 0x194" (pointer_expression "*(int *)PTR_DAT_0012a304" (* "*") (cast_expression "(int *)PTR_DAT_0012a304" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0012a304"))) (+ "+") (number_literal "0x194")) (, ",") (identifier "local_134") () ")")))) (; ";")) (expression_statement "uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);" (assignment_expression "uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(*(undefined4 *)(iVar11 + 0x1c),local_130)" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "local_130") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar11 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(iVar11 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" (else "else") (compound_statement "{\n              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);\n              if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0012b1c8" (* "*") (cast_expression "(code *)PTR_strcmp_0012b1c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0012b1c8"))) () ")")) (argument_list "(uVar12,puVar9)" (( "(") (identifier "uVar12") (, ",") (identifier "puVar9") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }\n              else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);\n              }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);" (call_expression "(*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a43c)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a43c" (* "*") (cast_expression "(code *)PTR_FUN_0012a43c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a43c"))) () ")")) (argument_list "(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0)" (( "(") (identifier "local_134") (, ",") (number_literal "0x21") (, ",") (binary_expression "PTR_LAB_0012a398 + 0x67e4" (identifier "PTR_LAB_0012a398") (+ "+") (number_literal "0x67e4")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" (else "else") (compound_statement "{\n                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);\n                if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }\n              }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);" (assignment_expression "iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8)" (parenthesized_expression "(*(code *)PTR_strcmp_0012b1c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0012b1c8" (* "*") (cast_expression "(code *)PTR_strcmp_0012b1c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0012b1c8"))) () ")")) (argument_list "(uVar12,puVar1 + 0x1ed8)" (( "(") (identifier "uVar12") (, ",") (binary_expression "puVar1 + 0x1ed8" (identifier "puVar1") (+ "+") (number_literal "0x1ed8")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);\n                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;\n                }" ({ "{") (expression_statement "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);" (assignment_expression "iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" (identifier "iVar11") (= "=") (call_expression "FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" (identifier "FUN_000379d8") (argument_list "(*(int *)PTR_DAT_0012a304 + 0x194,local_134)" (( "(") (binary_expression "*(int *)PTR_DAT_0012a304 + 0x194" (pointer_expression "*(int *)PTR_DAT_0012a304" (* "*") (cast_expression "(int *)PTR_DAT_0012a304" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0012a304"))) (+ "+") (number_literal "0x194")) (, ",") (identifier "local_134") () ")")))) (; ";")) (expression_statement "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8" (pointer_expression "*(uint *)(iVar11 + 0x14)" (* "*") (cast_expression "(uint *)(iVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar11 + 0x14) | 8" (pointer_expression "*(uint *)(iVar11 + 0x14)" (* "*") (cast_expression "(uint *)(iVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}")))) (goto_statement "goto LAB_000368f0;" (goto "goto") (statement_identifier "LAB_000368f0") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_FUN_0012a468)(iVar8);" (call_expression "(*(code *)PTR_FUN_0012a468)(iVar8)" (parenthesized_expression "(*(code *)PTR_FUN_0012a468)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a468" (* "*") (cast_expression "(code *)PTR_FUN_0012a468" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a468"))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (} "}"))) (goto_statement "goto LAB_00036924;" (goto "goto") (statement_identifier "LAB_00036924") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00036924:\n  if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" (statement_identifier "LAB_00036924") (: ":") (if_statement "if (local_2c != *(int *)puVar6) {\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" (if "if") (parenthesized_expression "(local_2c != *(int *)puVar6)" (( "(") (binary_expression "local_2c != *(int *)puVar6" (identifier "local_2c") (!= "!=") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) () ")")) (compound_statement "{\n    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return uVar12;\n  }" ({ "{") (expression_statement "uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" (identifier "uVar12") (= "=") (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}")))) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}")))
(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: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_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) (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_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) (number_literal))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) alternative: (else_clause (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) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) alternative: (else_clause (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) (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 (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (number_literal))))) alternative: (else_clause (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) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (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)))) (return_statement (identifier))))) (return_statement (identifier)))))

undefined4 MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  char *pcVar7;
  int iVar8;
  undefined *puVar9;
  code *pcVar10;
  int iVar11;
  undefined4 uVar12;
  int iVar13;
  undefined *puVar14;
  int *piVar15;
  int *piVar16;
  undefined4 local_138;
  undefined4 local_134;
  int local_130;
  undefined1 auStack_12c [256];
  int local_2c;
  
  puVar6 = PTR___stack_chk_guard_0012b14c;
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  pcVar7 = (char *)FUN_0001884c();
  if (*pcVar7 != '.') {
    uVar12 = 2;
    if (1 < param_4) goto LAB_00036924;
    if ((param_4 == 0) || (iVar8 = FUN_0001849c(pcVar7,PTR_UINT_0012a18c + 0x1ec0), iVar8 != 0)) {
      iVar8 = (*(code *)PTR_FUN_0012a460)(param_1,PTR_FUN_0012a1c4);
      puVar4 = PTR_FUN_0012a458;
      puVar1 = PTR_UINT_0012a18c;
      uVar12 = 0;
      if (iVar8 != 0) {
        puVar14 = PTR_UINT_0012a18c + 0x1d3c;
        puVar9 = PTR_UINT_0012a18c + 0x1ed0;
        pcVar10 = (code *)(PTR_LAB_0012a398 + 0x644c);
LAB_000368f0:
        iVar11 = (*(code *)puVar4)(iVar8,&local_138,0x470203,puVar1 + 0x1e14);
        uVar12 = local_138;
        if (iVar11 != 0) {
          iVar11 = (*(code *)PTR_strcmp_0012b1c8)(local_138,puVar14);
          puVar5 = PTR_FUN_0012a464;
          if (iVar11 == 0) {
            if (local_130 != 0) {
              FUN_000377b8(local_134);
              puVar3 = PTR_FUN_0012a430;
              puVar2 = PTR_FUN_0012a428;
              piVar15 = *(int **)PTR_DAT_0012a304;
              piVar16 = (int *)*piVar15;
              if (piVar16 != (int *)0x0) {
                do {
                  while( true ) {
                    iVar13 = piVar16[1];
                    iVar11 = (*(code *)PTR_fnmatch_0012b064)
                                       (auStack_12c,*(undefined4 *)(iVar13 + 8),0);
                    if (iVar11 == 0) break;
LAB_000369f8:
                    piVar16 = (int *)*piVar16;
                    if (piVar16 == (int *)0x0) goto LAB_000368f0;
                  }
                  uVar12 = (*(code *)puVar5)(local_130,0);
                  (*(code *)puVar3)(iVar13 + 0x10,uVar12);
                  if ((*(uint *)(iVar13 + 0x14) & 2) != 0) {
                    iVar11 = piVar15[2];
                    *(uint *)(iVar13 + 0x14) = *(uint *)(iVar13 + 0x14) & 0xfffffffd;
                    piVar15[2] = iVar11 + -1;
                  }
                  iVar11 = (*(code *)puVar2)(piVar15 + 0x65,uVar12);
                  if ((*(uint *)(iVar11 + 0x14) & 2) != 0) goto LAB_000369f8;
                  iVar13 = piVar15[2];
                  piVar16 = (int *)*piVar16;
                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 2;
                  piVar15[2] = iVar13 + 1;
                } while (piVar16 != (int *)0x0);
              }
            }
          }
          else {
            iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ec8);
            if (iVar11 == 0) {
              if (local_130 != 0) {
                iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);
                uVar12 = (*pcVar10)(*(undefined4 *)(iVar11 + 0x1c),local_130);
                *(undefined4 *)(iVar11 + 0x1c) = uVar12;
              }
            }
            else {
              iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar9);
              if (iVar11 == 0) {
                (*(code *)PTR_FUN_0012a43c)(local_134,0x21,PTR_LAB_0012a398 + 0x67e4,0,0,0);
              }
              else {
                iVar11 = (*(code *)PTR_strcmp_0012b1c8)(uVar12,puVar1 + 0x1ed8);
                if (iVar11 == 0) {
                  iVar11 = FUN_000379d8(*(int *)PTR_DAT_0012a304 + 0x194,local_134);
                  *(uint *)(iVar11 + 0x14) = *(uint *)(iVar11 + 0x14) | 8;
                }
              }
            }
          }
          goto LAB_000368f0;
        }
        (*(code *)PTR_FUN_0012a468)(iVar8);
        uVar12 = 1;
      }
      goto LAB_00036924;
    }
  }
  uVar12 = 1;
LAB_00036924:
  if (local_2c != *(int *)puVar6) {
    uVar12 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
    return uVar12;
  }
  return uVar12;
}

