
/* WARNING: Removing unreachable block (ram,0x000fa950) */

char * decode_base64(char **pp_dst,char *src)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  byte *pbVar4;
  char *pcVar5;
  char *pcVar6;
  uint uVar7;
  int iVar8;
  char *in_a2;
  uchar *puVar9;
  byte *pbVar10;
  char *pcVar11;
  int iVar12;
  undefined4 *puVar13;
  int iVar14;
  undefined *puVar15;
  char *pcVar16;
  code *pcVar17;
  char *pcStack_f8;
  char acStack_f4 [52];
  char acStack_c0 [68];
  char *pcStack_7c;
  byte *pbStack_78;
  int iStack_74;
  char *pcStack_70;
  char *pcStack_6c;
  undefined *puStack_68;
  char **ppcStack_64;
  undefined *puStack_60;
  undefined4 uStack_5c;
  undefined4 uStack_58;
  code *pcStack_54;
  uchar six_bit [4];
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  puVar1 = PTR_bb_uuenc_tbl_base64_0012a698;
  pcVar16 = &DAT_00000004;
  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;
  pbVar4 = (byte *)*pp_dst;
LAB_000fa510:
  do {
    pbVar10 = pbVar4;
    iVar12 = 0;
    puVar9 = six_bit;
    pcVar6 = src;
    do {
      do {
        if (*pcVar6 == '\0') {
          *pp_dst = (char *)pbVar10;
          iVar8 = *(int *)puVar2;
          pcVar11 = pcVar6;
          if (iVar12 != 0) {
            pcVar11 = src;
          }
          if (iVar3 == iVar8) {
            return pcVar11;
          }
          pcVar17 = read_base64;
          puVar15 = PTR___stack_chk_fail_0012b0c8;
          (*(code *)PTR___stack_chk_fail_0012b0c8)();
          uVar7 = (uint)in_a2 & 0x100;
          puStack_68 = puVar2;
          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);
          iVar14 = *(int *)(puVar15 + 0x2fb54);
          uStack_5c = 3;
          puStack_60 = puVar1;
          pcVar11 = (char *)0x0;
          uStack_58 = 4;
          pcStack_7c = (char *)*puVar13;
          pbStack_78 = pbVar10;
          iStack_74 = iVar12;
          pcStack_70 = src;
          pcStack_6c = pcVar6;
          ppcStack_64 = pp_dst;
          pcStack_54 = pcVar17;
LAB_000fa6c4:
          pcVar6 = pcVar11;
          if (0x3f < (int)pcVar11) goto LAB_000fa758;
          pbVar4 = *(byte **)(iVar8 + 4);
          pcVar16 = (char *)(int)(char)in_a2;
          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;
          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);
          if (pcVar16 != pcVar5) {
            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;
            goto LAB_000fa838;
          }
          do {
            if (pcVar11 != (char *)0x0) {
LAB_000fa838:
              in_a2 = (char *)((uint)in_a2 & 0x100);
              acStack_c0[(int)pcVar11] = '\0';
              if ((in_a2 == (char *)0x0) ||
                 (iVar12 = (**(code **)(puVar15 + 0x30b74))
                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),
                 pcVar11 = acStack_c0, iVar12 != 0)) {
                pcVar11 = acStack_f4;
                pcStack_f8 = pcVar11;
                in_a2 = decode_base64(&pcStack_f8,acStack_c0);
                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);
                if (*in_a2 != '\0') {
                  pcVar17 = *(code **)(puVar15 + 0x2fb90);
                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);
                  (*pcVar17)();
                  (**(code **)(pcVar17 + 0x2f988))();
                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();
                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {
                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);
                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);
                    return pcVar16;
                  }
                  return pcVar16;
                }
              }
            }
            while( true ) {
              pcVar6 = (char *)*puVar13;
              if (pcStack_7c == pcVar6) {
                return pcVar6;
              }
              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();
LAB_000fa7fc:
              *(byte **)(iVar8 + 4) = pbVar4 + 1;
              pcVar5 = (char *)(uint)*pbVar4;
              pcVar6 = pcVar11;
              if (pcVar16 == pcVar5) break;
LAB_000fa748:
              if (0x20 < (int)pcVar5) {
                pcVar11 = pcVar6 + 1;
                acStack_c0[(int)pcVar6] = (char)pcVar5;
                goto LAB_000fa6c4;
              }
LAB_000fa758:
              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);
              acStack_c0[(int)pcVar6] = '\0';
              if ((uVar7 == 0) ||
                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0
                 )) {
                pcStack_f8 = acStack_f4;
                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);
                (**(code **)(puVar15 + 0x309e8))
                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);
                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);
                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);
                goto LAB_000fa6c4;
              }
            }
          } while( true );
        }
        pcVar6 = pcVar6 + 1;
        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);
        in_a2 = &DAT_00000040;
      } while (iVar8 == 0);
      if (iVar8 - (int)puVar1 == 0x40) {
        pbVar4 = pbVar10;
        src = pcVar6;
        if (1 < iVar12) {
          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;
          pbVar4 = pbVar10 + 1;
          if (iVar12 == 3) {
            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;
            pbVar4 = pbVar10 + 2;
          }
        }
        goto LAB_000fa510;
      }
      iVar12 = iVar12 + 1;
      *puVar9 = (uchar)(iVar8 - (int)puVar1);
      puVar9 = puVar9 + 1;
    } while (iVar12 != 4);
    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;
    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;
    pbVar10[2] = six_bit[2] << 6 | six_bit[3];
    pbVar4 = pbVar10 + 3;
    src = pcVar6;
  } while( true );
}



/* WARNING: Removing unreachable block (ram,0x000fa950) */

char * FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)

{
  undefined *puVar1;
  undefined *puVar2;
  byte *pbVar3;
  uint uVar4;
  char *pcVar5;
  uint uVar6;
  int iVar7;
  undefined4 *puVar8;
  int iVar9;
  byte *pbVar10;
  undefined1 *puVar11;
  undefined1 *puVar12;
  int iVar13;
  int *piVar14;
  char *pcVar15;
  int iVar16;
  undefined *puVar17;
  code *pcVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined1 *local_f8;
  undefined1 auStack_f4 [52];
  undefined1 local_c0 [68];
  char *local_7c;
  byte *local_78;
  int local_74;
  char *local_70;
  char *local_6c;
  undefined *local_68;
  undefined4 *local_64;
  undefined *local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  char local_30;
  byte local_2f;
  byte local_2e;
  byte local_2d;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;
  uVar19 = 4;
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  pbVar3 = (byte *)*param_1;
LAB_000fa510:
  do {
    pbVar10 = pbVar3;
    iVar13 = 0;
    pcVar5 = &local_30;
    pcVar15 = param_2;
    do {
      do {
        if (*pcVar15 == '\0') {
          *param_1 = pbVar10;
          iVar7 = *(int *)puVar2;
          pcVar5 = pcVar15;
          if (iVar13 != 0) {
            pcVar5 = param_2;
          }
          if (local_2c == iVar7) {
            return pcVar5;
          }
          uVar20 = 0xfa654;
          iVar9 = local_2c;
          puVar17 = PTR___stack_chk_fail_0012b0c8;
          (*(code *)PTR___stack_chk_fail_0012b0c8)();
          uVar6 = (uint)param_3 & 0x100;
          local_68 = puVar2;
          piVar14 = *(int **)(puVar17 + 0x30af8);
          iVar16 = *(int *)(puVar17 + 0x2fb54);
          local_5c = 3;
          local_60 = puVar1;
          puVar11 = (undefined1 *)0x0;
          local_58 = 4;
          local_7c = (char *)*piVar14;
          local_78 = pbVar10;
          local_74 = iVar13;
          local_70 = param_2;
          local_6c = pcVar15;
          local_64 = param_1;
          local_54 = uVar20;
LAB_000fa6c4:
          puVar12 = puVar11;
          if (0x3f < (int)puVar11) goto LAB_000fa758;
          pbVar3 = *(byte **)(iVar7 + 4);
          uVar19 = (uint)(char)param_3;
          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;
          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);
          if (uVar19 != uVar4) {
            if (uVar4 != 0xffffffff) goto LAB_000fa748;
            goto LAB_000fa838;
          }
          do {
            if (puVar11 != (undefined1 *)0x0) {
LAB_000fa838:
              param_3 = (char *)((uint)param_3 & 0x100);
              local_c0[(int)puVar11] = 0;
              if ((param_3 == (char *)0x0) ||
                 (iVar13 = (**(code **)(puVar17 + 0x30b74))
                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),
                 puVar11 = local_c0, iVar13 != 0)) {
                puVar11 = auStack_f4;
                local_f8 = puVar11;
                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);
                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);
                if (*param_3 != '\0') {
                  pcVar18 = *(code **)(puVar17 + 0x2fb90);
                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);
                  (*pcVar18)();
                  (**(code **)(pcVar18 + 0x2f988))();
                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();
                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {
                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);
                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);
                    return pcVar5;
                  }
                  return pcVar5;
                }
              }
            }
            while( true ) {
              pcVar5 = (char *)*piVar14;
              if (local_7c == pcVar5) {
                return pcVar5;
              }
              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();
LAB_000fa7fc:
              *(byte **)(iVar7 + 4) = pbVar3 + 1;
              uVar4 = (uint)*pbVar3;
              puVar12 = puVar11;
              if (uVar19 == uVar4) break;
LAB_000fa748:
              if (0x20 < (int)uVar4) {
                puVar11 = puVar12 + 1;
                local_c0[(int)puVar12] = (char)uVar4;
                goto LAB_000fa6c4;
              }
LAB_000fa758:
              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);
              local_c0[(int)puVar12] = 0;
              if ((uVar6 == 0) ||
                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))
              {
                local_f8 = auStack_f4;
                uVar19 = FUN_000fa4a8(&local_f8,local_c0);
                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)
                ;
                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);
                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);
                goto LAB_000fa6c4;
              }
            }
          } while( true );
        }
        pcVar15 = pcVar15 + 1;
        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);
        param_3 = &SUB_00000040;
      } while (iVar7 == 0);
      if (iVar7 - (int)puVar1 == 0x40) {
        pbVar3 = pbVar10;
        param_2 = pcVar15;
        if (1 < iVar13) {
          *pbVar10 = local_30 << 2 | local_2f >> 4;
          pbVar3 = pbVar10 + 1;
          if (iVar13 == 3) {
            pbVar10[1] = local_2e >> 2 | local_2f << 4;
            pbVar3 = pbVar10 + 2;
          }
        }
        goto LAB_000fa510;
      }
      iVar13 = iVar13 + 1;
      *pcVar5 = (char)(iVar7 - (int)puVar1);
      pcVar5 = pcVar5 + 1;
    } while (iVar13 != 4);
    *pbVar10 = local_30 << 2 | local_2f >> 4;
    pbVar10[1] = local_2f << 4 | local_2e >> 2;
    pbVar10[2] = local_2e << 6 | local_2d;
    pbVar3 = pbVar10 + 3;
    param_2 = pcVar15;
  } while( true );
}


lui gp,0x3
addiu gp,gp,0x7ca8
addu gp,gp,t9
addiu sp,sp,-0x50
addiu v0,sp,0x20
sw s4,0x38(sp)
sw v0,0x18(sp)
lw s4,-0x7004(gp)
sw s6,0x40(sp)
sw s0,0x28(sp)
sw s8,0x48(sp)
li s8,0x4
sw s7,0x44(sp)
li s7,0x3
sw s5,0x3c(sp)
or s5,a0,zero
sw s2,0x30(sp)
or s2,a1,zero
sw gp,0x10(sp)
sw ra,0x4c(sp)
sw s3,0x34(sp)
sw s1,0x2c(sp)
lw v0,0x0(s4)
lw s6,-0x7ab8(gp)
lw s0,0x0(a0)
sw v0,0x24(sp)
lw a3,0x18(sp)
or s1,zero,zero
or s3,s2,zero
lbu a1,0x0(s3)
bne a1,zero,0x000fa570
_lw t9,-0x71fc(gp)
lw a1,0x24(sp)
or v0,s3,zero
sw s0,0x0(s5)
lw a0,0x0(s4)
bne a1,a0,0x000fa648
_movn v0,s2,s1
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
or a0,s6,zero
sw a3,0x1c(sp)
jalr t9
_addiu s3,s3,0x1
li a2,0x40
lw gp,0x10(sp)
beq v0,zero,0x000fa51c
_lw a3,0x1c(sp)
subu v0,v0,s6
bne v0,a2,0x000fa5e4
_nop
slti v0,s1,0x2
bne v0,zero,0x000fa5dc
_lbu a0,0x21(sp)
addiu v0,s0,0x1
lbu v1,0x20(sp)
srl a1,a0,0x4
sll v1,v1,0x2
or v1,v1,a1
bne s1,s7,0x000fa63c
_sb v1,0x0(s0)
lbu v0,0x22(sp)
sll a0,a0,0x4
addiu s0,s0,0x2
srl v0,v0,0x2
or v0,v0,a0
sb v0,-0x1(s0)
b 0x000fa510
_or s2,s3,zero
addiu s1,s1,0x1
sb v0,0x0(a3)
bne s1,s8,0x000fa51c
_addiu a3,a3,0x1
lbu v1,0x21(sp)
addiu s0,s0,0x3
lbu v0,0x22(sp)
or s2,s3,zero
lbu a0,0x20(sp)
lbu a1,0x23(sp)
srl t0,v1,0x4
srl a3,v0,0x2
sll v1,v1,0x4
sll a0,a0,0x2
sll v0,v0,0x6
or a0,a0,t0
or v1,v1,a3
sb a0,-0x3(s0)
or v0,v0,a1
sb v1,-0x2(s0)
b 0x000fa510
_sb v0,-0x1(s0)
or s0,v0,zero
b 0x000fa510
_or s2,s3,zero
lw t9,-0x7088(gp)
jalr t9
_nop
lui gp,0x3
addiu gp,gp,0x7afc
addu gp,gp,t9
addiu sp,sp,-0xc8
andi v1,a2,0x100
sw s2,0xa8(sp)
sw s4,0xb0(sp)
lw s2,-0x7004(gp)
lw s4,-0x7fa8(gp)
sw s7,0xbc(sp)
addiu s7,sp,0x24
sw s5,0xb4(sp)
addiu s5,sp,0x58
sw s0,0xa0(sp)
addiu s4,s4,-0xe98
sw s6,0xb8(sp)
or s0,zero,zero
sw s3,0xac(sp)
or s6,a0,zero
sw s1,0xa4(sp)
or s3,a1,zero
sw gp,0x10(sp)
or s1,a2,zero
sw ra,0xc4(sp)
sw s8,0xc0(sp)
sw v1,0x1c(sp)
lw v0,0x0(s2)
sw v0,0x9c(sp)
slti v0,s0,0x40
beq v0,zero,0x000fa758
_addiu v0,sp,0xa0
lw v0,0x4(s6)
lw a0,0x8(s6)
sltu a0,v0,a0
bne a0,zero,0x000fa7fc
_seb s8,s1
lw t9,-0x7364(gp)
jalr t9
_or a0,s6,zero
bne s8,v0,0x000fa73c
_lw gp,0x10(sp)
bne s0,zero,0x000fa834
_addiu v0,sp,0xa0
lw v1,0x9c(sp)
lw v0,0x0(s2)
bne v1,v0,0x000fa7f0
_lw ra,0xc4(sp)
lw s8,0xc0(sp)
lw s7,0xbc(sp)
lw s6,0xb8(sp)
lw s5,0xb4(sp)
lw s4,0xb0(sp)
lw s3,0xac(sp)
lw s2,0xa8(sp)
lw s1,0xa4(sp)
lw s0,0xa0(sp)
jr ra
_addiu sp,sp,0xc8
li a0,-0x1
beq v0,a0,0x000fa830
_nop
slti a0,v0,0x21
beq a0,zero,0x000fa820
_addiu v1,sp,0xa0
addiu v0,sp,0xa0
addu s0,v0,s0
lw v0,0x1c(sp)
beq v0,zero,0x000fa780
_sb zero,-0x48(s0)
lw t9,-0x6f88(gp)
or a1,s4,zero
jalr t9
_or a0,s5,zero
beq v0,zero,0x000fa700
_lw gp,0x10(sp)
lw t9,-0x7518(gp)
addiu a0,sp,0x20
or a1,s5,zero
bal 0x000fa4a8
_sw s7,0x20(sp)
li a2,0x1
lw gp,0x10(sp)
or a3,s3,zero
lw a1,0x20(sp)
or a0,s7,zero
or s8,v0,zero
lw t9,-0x7114(gp)
jalr t9
_subu a1,a1,s7
lw gp,0x10(sp)
lw t9,-0x7214(gp)
jalr t9
_or a0,s8,zero
li a3,0x42
lw gp,0x10(sp)
or a2,v0,zero
or a1,s8,zero
or a0,s5,zero
lw t9,-0x71b8(gp)
jalr t9
_or s0,v0,zero
b 0x000fa6c4
_lw gp,0x10(sp)
lw t9,-0x7088(gp)
jalr t9
_nop
addiu a0,v0,0x1
sw a0,0x4(s6)
lbu v0,0x0(v0)
bne s8,v0,0x000fa748
_nop
beq s0,zero,0x000fa700
_addiu v0,sp,0xa0
b 0x000fa838
_andi s1,s1,0x100
addu a0,v1,s0
addiu s0,s0,0x1
b 0x000fa6c4
_sb v0,-0x48(a0)
addiu v0,sp,0xa0
andi s1,s1,0x100
addu s0,v0,s0
sb zero,-0x48(s0)
beq s1,zero,0x000fa864
_addiu s0,sp,0x58
lw a1,-0x7fa8(gp)
or a0,s0,zero
lw t9,-0x6f88(gp)
jalr t9
_addiu a1,a1,-0xe98
beq v0,zero,0x000fa700
_lw gp,0x10(sp)
or a1,s0,zero
lw t9,-0x7518(gp)
addiu s0,sp,0x24
addiu a0,sp,0x20
bal 0x000fa4a8
_sw s0,0x20(sp)
li a2,0x1
lw gp,0x10(sp)
or s1,v0,zero
lw a1,0x20(sp)
or a3,s3,zero
or a0,s0,zero
lw t9,-0x7114(gp)
jalr t9
_subu a1,a1,s0
lbu v0,0x0(s1)
beq v0,zero,0x000fa700
_lw gp,0x10(sp)
lw a0,-0x7fa8(gp)
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,-0xeb0
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000fa950) */\n\nchar * FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}\n\n" comment (function_definition "char * FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)" * (function_declarator "FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)" identifier (parameter_list "(undefined4 *param_1,char *param_2,char *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined1 *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "undefined1 auStack_f4 [52];" type_identifier (array_declarator "auStack_f4 [52]" identifier [ number_literal ]) ;) (declaration "undefined1 local_c0 [68];" type_identifier (array_declarator "local_c0 [68]" identifier [ number_literal ]) ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "byte *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "char *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "char local_30;" primitive_type identifier ;) (declaration "byte local_2f;" type_identifier identifier ;) (declaration "byte local_2e;" type_identifier identifier ;) (declaration "byte local_2d;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;" (assignment_expression "puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698" identifier = identifier) ;) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) (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 "pbVar3 = (byte *)*param_1;" (assignment_expression "pbVar3 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "LAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );" statement_identifier : (do_statement "do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );" do (compound_statement "{\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  }" { (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" identifier = identifier) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = &local_30;" (assignment_expression "pcVar5 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "pcVar15 = param_2;" (assignment_expression "pcVar15 = param_2" identifier = identifier) ;) (do_statement "do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);" do (compound_statement "{\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    }" { (do_statement "do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);" do (compound_statement "{\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      }" { (if_statement "if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" if (parenthesized_expression "(*pcVar15 == '\0')" ( (binary_expression "*pcVar15 == '\0'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" { (expression_statement "*param_1 = pbVar10;" (assignment_expression "*param_1 = pbVar10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "iVar7 = *(int *)puVar2;" (assignment_expression "iVar7 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar5 = pcVar15;" (assignment_expression "pcVar5 = pcVar15" identifier = identifier) ;) (if_statement "if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar5 = param_2;\n          }" { (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" identifier = identifier) ;) })) (if_statement "if (local_2c == iVar7) {\n            return pcVar5;\n          }" if (parenthesized_expression "(local_2c == iVar7)" ( (binary_expression "local_2c == iVar7" identifier == identifier) )) (compound_statement "{\n            return pcVar5;\n          }" { (return_statement "return pcVar5;" return identifier ;) })) (expression_statement "uVar20 = 0xfa654;" (assignment_expression "uVar20 = 0xfa654" identifier = number_literal) ;) (expression_statement "iVar9 = local_2c;" (assignment_expression "iVar9 = local_2c" identifier = identifier) ;) (expression_statement "puVar17 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0012b0c8" identifier = 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 "()" ( ))) ;) (expression_statement "uVar6 = (uint)param_3 & 0x100;" (assignment_expression "uVar6 = (uint)param_3 & 0x100" identifier = (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "local_68 = puVar2;" (assignment_expression "local_68 = puVar2" identifier = identifier) ;) (expression_statement "piVar14 = *(int **)(puVar17 + 0x30af8);" (assignment_expression "piVar14 = *(int **)(puVar17 + 0x30af8)" identifier = (pointer_expression "*(int **)(puVar17 + 0x30af8)" * (cast_expression "(int **)(puVar17 + 0x30af8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30af8)" ( (binary_expression "puVar17 + 0x30af8" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar17 + 0x2fb54);" (assignment_expression "iVar16 = *(int *)(puVar17 + 0x2fb54)" identifier = (pointer_expression "*(int *)(puVar17 + 0x2fb54)" * (cast_expression "(int *)(puVar17 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x2fb54)" ( (binary_expression "puVar17 + 0x2fb54" identifier + number_literal) ))))) ;) (expression_statement "local_5c = 3;" (assignment_expression "local_5c = 3" identifier = number_literal) ;) (expression_statement "local_60 = puVar1;" (assignment_expression "local_60 = puVar1" identifier = identifier) ;) (expression_statement "puVar11 = (undefined1 *)0x0;" (assignment_expression "puVar11 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "local_7c = (char *)*piVar14;" (assignment_expression "local_7c = (char *)*piVar14" identifier = (cast_expression "(char *)*piVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "local_78 = pbVar10;" (assignment_expression "local_78 = pbVar10" identifier = identifier) ;) (expression_statement "local_74 = iVar13;" (assignment_expression "local_74 = iVar13" identifier = identifier) ;) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" identifier = identifier) ;) (expression_statement "local_6c = pcVar15;" (assignment_expression "local_6c = pcVar15" identifier = identifier) ;) (expression_statement "local_64 = param_1;" (assignment_expression "local_64 = param_1" identifier = identifier) ;) (expression_statement "local_54 = uVar20;" (assignment_expression "local_54 = uVar20" identifier = identifier) ;) (labeled_statement "LAB_000fa6c4:\n          puVar12 = puVar11;" statement_identifier : (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;)) (if_statement "if (0x3f < (int)puVar11) goto LAB_000fa758;" if (parenthesized_expression "(0x3f < (int)puVar11)" ( (binary_expression "0x3f < (int)puVar11" number_literal < (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000fa758;" goto statement_identifier ;)) (expression_statement "pbVar3 = *(byte **)(iVar7 + 4);" (assignment_expression "pbVar3 = *(byte **)(iVar7 + 4)" identifier = (pointer_expression "*(byte **)(iVar7 + 4)" * (cast_expression "(byte **)(iVar7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)(char)param_3;" (assignment_expression "uVar19 = (uint)(char)param_3" identifier = (cast_expression "(uint)(char)param_3" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;" if (parenthesized_expression "(pbVar3 < *(byte **)(iVar7 + 8))" ( (binary_expression "pbVar3 < *(byte **)(iVar7 + 8)" identifier < (pointer_expression "*(byte **)(iVar7 + 8)" * (cast_expression "(byte **)(iVar7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000fa7fc;" goto statement_identifier ;)) (expression_statement "uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);" (assignment_expression "uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7)" identifier = (call_expression "(**(code **)(puVar17 + 0x30798))(iVar7)" (parenthesized_expression "(**(code **)(puVar17 + 0x30798))" ( (pointer_expression "**(code **)(puVar17 + 0x30798)" * (pointer_expression "*(code **)(puVar17 + 0x30798)" * (cast_expression "(code **)(puVar17 + 0x30798)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30798)" ( (binary_expression "puVar17 + 0x30798" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" if (parenthesized_expression "(uVar19 != uVar4)" ( (binary_expression "uVar19 != uVar4" identifier != identifier) )) (compound_statement "{\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" { (if_statement "if (uVar4 != 0xffffffff) goto LAB_000fa748;" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_000fa748;" goto statement_identifier ;)) (goto_statement "goto LAB_000fa838;" goto statement_identifier ;) })) (do_statement "do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );" do (compound_statement "{\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          }" { (if_statement "if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }" { (labeled_statement "LAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);" statement_identifier : (expression_statement "param_3 = (char *)((uint)param_3 & 0x100);" (assignment_expression "param_3 = (char *)((uint)param_3 & 0x100)" identifier = (cast_expression "(char *)((uint)param_3 & 0x100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_3 & 0x100)" ( (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "local_c0[(int)puVar11] = 0;" (assignment_expression "local_c0[(int)puVar11] = 0" (subscript_expression "local_c0[(int)puVar11]" identifier [ (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) (if_statement "if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }" if (parenthesized_expression "((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0))" ( (binary_expression "(param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)" (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)" ( (comma_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0" (assignment_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" identifier = (call_expression "(**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" (parenthesized_expression "(**(code **)(puVar17 + 0x30b74))" ( (pointer_expression "**(code **)(puVar17 + 0x30b74)" * (pointer_expression "*(code **)(puVar17 + 0x30b74)" * (cast_expression "(code **)(puVar17 + 0x30b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30b74)" ( (binary_expression "puVar17 + 0x30b74" identifier + number_literal) ))))) )) (argument_list "(local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" ( identifier , (binary_expression "*(int *)(puVar17 + 0x2fb54) + -0xe98" (pointer_expression "*(int *)(puVar17 + 0x2fb54)" * (cast_expression "(int *)(puVar17 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x2fb54)" ( (binary_expression "puVar17 + 0x2fb54" identifier + number_literal) )))) + number_literal) )))) , (comma_expression "puVar11 = local_c0, iVar13 != 0" (assignment_expression "puVar11 = local_c0" identifier = identifier) , (binary_expression "iVar13 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }" { (expression_statement "puVar11 = auStack_f4;" (assignment_expression "puVar11 = auStack_f4" identifier = identifier) ;) (expression_statement "local_f8 = puVar11;" (assignment_expression "local_f8 = puVar11" identifier = identifier) ;) (expression_statement "param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);" (assignment_expression "param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0)" identifier = (cast_expression "(char *)FUN_000fa4a8(&local_f8,local_c0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000fa4a8(&local_f8,local_c0)" identifier (argument_list "(&local_f8,local_c0)" ( (pointer_expression "&local_f8" & identifier) , identifier ))))) ;) (expression_statement "(**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);" (call_expression "(**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9)" (parenthesized_expression "(**(code **)(puVar17 + 0x309e8))" ( (pointer_expression "**(code **)(puVar17 + 0x309e8)" * (pointer_expression "*(code **)(puVar17 + 0x309e8)" * (cast_expression "(code **)(puVar17 + 0x309e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x309e8)" ( (binary_expression "puVar17 + 0x309e8" identifier + number_literal) ))))) )) (argument_list "(puVar11,(int)local_f8 - (int)puVar11,1,iVar9)" ( identifier , (binary_expression "(int)local_f8 - (int)puVar11" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , identifier ))) ;) (if_statement "if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }" if (parenthesized_expression "(*param_3 != '\0')" ( (binary_expression "*param_3 != '\0'" (pointer_expression "*param_3" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }" { (expression_statement "pcVar18 = *(code **)(puVar17 + 0x2fb90);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x2fb90)" identifier = (pointer_expression "*(code **)(puVar17 + 0x2fb90)" * (cast_expression "(code **)(puVar17 + 0x2fb90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x2fb90)" ( (binary_expression "puVar17 + 0x2fb90" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" ( (binary_expression "*(int *)(puVar17 + 0x2fb54) + -0xeb0" (pointer_expression "*(int *)(puVar17 + 0x2fb54)" * (cast_expression "(int *)(puVar17 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x2fb54)" ( (binary_expression "puVar17 + 0x2fb54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar18 + 0x2f988))();" (call_expression "(**(code **)(pcVar18 + 0x2f988))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x2f988))" ( (pointer_expression "**(code **)(pcVar18 + 0x2f988)" * (pointer_expression "*(code **)(pcVar18 + 0x2f988)" * (cast_expression "(code **)(pcVar18 + 0x2f988)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x2f988)" ( (binary_expression "pcVar18 + 0x2f988" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))()" identifier = (cast_expression "(char *)(**(code **)(pcVar18 + 0x30588))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar18 + 0x30588))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x30588))" ( (pointer_expression "**(code **)(pcVar18 + 0x30588)" * (pointer_expression "*(code **)(pcVar18 + 0x30588)" * (cast_expression "(code **)(pcVar18 + 0x30588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x30588)" ( (binary_expression "pcVar18 + 0x30588" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }" if (parenthesized_expression "((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0))" ( (binary_expression "(-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)" (parenthesized_expression "(-1 < (int)pcVar5)" ( (binary_expression "-1 < (int)pcVar5" number_literal < (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }" { (expression_statement "(**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);" (call_expression "(**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8)" (parenthesized_expression "(**(code **)(pcVar18 + 0x307bc))" ( (pointer_expression "**(code **)(pcVar18 + 0x307bc)" * (pointer_expression "*(code **)(pcVar18 + 0x307bc)" * (cast_expression "(code **)(pcVar18 + 0x307bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x307bc)" ( (binary_expression "pcVar18 + 0x307bc" identifier + number_literal) ))))) )) (argument_list "(*puVar8,puVar8)" ( (pointer_expression "*puVar8" * identifier) , identifier ))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f)" identifier = (cast_expression "(char *)(**(code **)(pcVar18 + 0x308c4))(0x6f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar18 + 0x308c4))(0x6f)" (parenthesized_expression "(**(code **)(pcVar18 + 0x308c4))" ( (pointer_expression "**(code **)(pcVar18 + 0x308c4)" * (pointer_expression "*(code **)(pcVar18 + 0x308c4)" * (cast_expression "(code **)(pcVar18 + 0x308c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x308c4)" ( (binary_expression "pcVar18 + 0x308c4" identifier + number_literal) ))))) )) (argument_list "(0x6f)" ( number_literal ))))) ;) (return_statement "return pcVar5;" return identifier ;) })) (return_statement "return pcVar5;" return identifier ;) })) })) })) (while_statement "while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" { (expression_statement "pcVar5 = (char *)*piVar14;" (assignment_expression "pcVar5 = (char *)*piVar14" identifier = (cast_expression "(char *)*piVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if (local_7c == pcVar5) {\n                return pcVar5;\n              }" if (parenthesized_expression "(local_7c == pcVar5)" ( (binary_expression "local_7c == pcVar5" identifier == identifier) )) (compound_statement "{\n                return pcVar5;\n              }" { (return_statement "return pcVar5;" return identifier ;) })) (expression_statement "pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();" (assignment_expression "pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))()" identifier = (cast_expression "(byte *)(**(code **)(puVar17 + 0x30a74))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar17 + 0x30a74))()" (parenthesized_expression "(**(code **)(puVar17 + 0x30a74))" ( (pointer_expression "**(code **)(puVar17 + 0x30a74)" * (pointer_expression "*(code **)(puVar17 + 0x30a74)" * (cast_expression "(code **)(puVar17 + 0x30a74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30a74)" ( (binary_expression "puVar17 + 0x30a74" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;" statement_identifier : (expression_statement "*(byte **)(iVar7 + 4) = pbVar3 + 1;" (assignment_expression "*(byte **)(iVar7 + 4) = pbVar3 + 1" (pointer_expression "*(byte **)(iVar7 + 4)" * (cast_expression "(byte **)(iVar7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;)) (expression_statement "uVar4 = (uint)*pbVar3;" (assignment_expression "uVar4 = (uint)*pbVar3" identifier = (binary_expression "(uint)*pbVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) (if_statement "if (uVar19 == uVar4) break;" if (parenthesized_expression "(uVar19 == uVar4)" ( (binary_expression "uVar19 == uVar4" identifier == identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" statement_identifier : (if_statement "if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" if (parenthesized_expression "(0x20 < (int)uVar4)" ( (binary_expression "0x20 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" { (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_c0[(int)puVar12] = (char)uVar4;" (assignment_expression "local_c0[(int)puVar12] = (char)uVar4" (subscript_expression "local_c0[(int)puVar12]" identifier [ (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000fa6c4;" goto statement_identifier ;) }))) (labeled_statement "LAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);" statement_identifier : (expression_statement "puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);" (assignment_expression "puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12)" identifier = (cast_expression "(undefined1 *)((int)&local_78 + (int)puVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_78 + (int)puVar12)" ( (binary_expression "(int)&local_78 + (int)puVar12" (cast_expression "(int)&local_78" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_78" & identifier)) + (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "local_c0[(int)puVar12] = 0;" (assignment_expression "local_c0[(int)puVar12] = 0" (subscript_expression "local_c0[(int)puVar12]" identifier [ (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) (if_statement "if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }" if (parenthesized_expression "((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))" ( (binary_expression "(uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0)" ( (comma_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0" (assignment_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98)" identifier = (call_expression "(**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98)" (parenthesized_expression "(**(code **)(puVar17 + 0x30b74))" ( (pointer_expression "**(code **)(puVar17 + 0x30b74)" * (pointer_expression "*(code **)(puVar17 + 0x30b74)" * (cast_expression "(code **)(puVar17 + 0x30b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30b74)" ( (binary_expression "puVar17 + 0x30b74" identifier + number_literal) ))))) )) (argument_list "(local_c0,iVar16 + -0xe98)" ( identifier , (binary_expression "iVar16 + -0xe98" identifier + number_literal) )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }" { (expression_statement "local_f8 = auStack_f4;" (assignment_expression "local_f8 = auStack_f4" identifier = identifier) ;) (expression_statement "uVar19 = FUN_000fa4a8(&local_f8,local_c0);" (assignment_expression "uVar19 = FUN_000fa4a8(&local_f8,local_c0)" identifier = (call_expression "FUN_000fa4a8(&local_f8,local_c0)" identifier (argument_list "(&local_f8,local_c0)" ( (pointer_expression "&local_f8" & identifier) , identifier )))) ;) (expression_statement "(**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;" (call_expression "(**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)" (parenthesized_expression "(**(code **)(puVar17 + 0x309e8))" ( (pointer_expression "**(code **)(puVar17 + 0x309e8)" * (pointer_expression "*(code **)(puVar17 + 0x309e8)" * (cast_expression "(code **)(puVar17 + 0x309e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x309e8)" ( (binary_expression "puVar17 + 0x309e8" identifier + number_literal) ))))) )) (argument_list "(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)" ( identifier , (binary_expression "(int)local_f8 - (int)auStack_f4" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)auStack_f4" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);" (assignment_expression "puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar17 + 0x308e8))(uVar19)" (parenthesized_expression "(**(code **)(puVar17 + 0x308e8))" ( (pointer_expression "**(code **)(puVar17 + 0x308e8)" * (pointer_expression "*(code **)(puVar17 + 0x308e8)" * (cast_expression "(code **)(puVar17 + 0x308e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x308e8)" ( (binary_expression "puVar17 + 0x308e8" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))))) ;) (expression_statement "(**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);" (call_expression "(**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42)" (parenthesized_expression "(**(code **)(puVar17 + 0x30944))" ( (pointer_expression "**(code **)(puVar17 + 0x30944)" * (pointer_expression "*(code **)(puVar17 + 0x30944)" * (cast_expression "(code **)(puVar17 + 0x30944)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30944)" ( (binary_expression "puVar17 + 0x30944" identifier + number_literal) ))))) )) (argument_list "(local_c0,uVar19,puVar11,0x42)" ( identifier , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000fa6c4;" goto statement_identifier ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);" (assignment_expression "iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(puVar1)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1)" ( identifier )))) ;) (expression_statement "param_3 = &SUB_00000040;" (assignment_expression "param_3 = &SUB_00000040" identifier = (pointer_expression "&SUB_00000040" & identifier)) ;) }) while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) ;) (if_statement "if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" if (parenthesized_expression "(iVar7 - (int)puVar1 == 0x40)" ( (binary_expression "iVar7 - (int)puVar1 == 0x40" (binary_expression "iVar7 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) == number_literal) )) (compound_statement "{\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" { (expression_statement "pbVar3 = pbVar10;" (assignment_expression "pbVar3 = pbVar10" identifier = identifier) ;) (expression_statement "param_2 = pcVar15;" (assignment_expression "param_2 = pcVar15" identifier = identifier) ;) (if_statement "if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }" if (parenthesized_expression "(1 < iVar13)" ( (binary_expression "1 < iVar13" number_literal < identifier) )) (compound_statement "{\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }" { (expression_statement "*pbVar10 = local_30 << 2 | local_2f >> 4;" (assignment_expression "*pbVar10 = local_30 << 2 | local_2f >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "local_30 << 2 | local_2f >> 4" (binary_expression "local_30 << 2" identifier << number_literal) | (binary_expression "local_2f >> 4" identifier >> number_literal))) ;) (expression_statement "pbVar3 = pbVar10 + 1;" (assignment_expression "pbVar3 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }" if (parenthesized_expression "(iVar13 == 3)" ( (binary_expression "iVar13 == 3" identifier == number_literal) )) (compound_statement "{\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }" { (expression_statement "pbVar10[1] = local_2e >> 2 | local_2f << 4;" (assignment_expression "pbVar10[1] = local_2e >> 2 | local_2f << 4" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "local_2e >> 2 | local_2f << 4" (binary_expression "local_2e >> 2" identifier >> number_literal) | (binary_expression "local_2f << 4" identifier << number_literal))) ;) (expression_statement "pbVar3 = pbVar10 + 2;" (assignment_expression "pbVar3 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_000fa510;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar5 = (char)(iVar7 - (int)puVar1);" (assignment_expression "*pcVar5 = (char)(iVar7 - (int)puVar1)" (pointer_expression "*pcVar5" * identifier) = (cast_expression "(char)(iVar7 - (int)puVar1)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(iVar7 - (int)puVar1)" ( (binary_expression "iVar7 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != 4)" ( (binary_expression "iVar13 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar10 = local_30 << 2 | local_2f >> 4;" (assignment_expression "*pbVar10 = local_30 << 2 | local_2f >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "local_30 << 2 | local_2f >> 4" (binary_expression "local_30 << 2" identifier << number_literal) | (binary_expression "local_2f >> 4" identifier >> number_literal))) ;) (expression_statement "pbVar10[1] = local_2f << 4 | local_2e >> 2;" (assignment_expression "pbVar10[1] = local_2f << 4 | local_2e >> 2" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "local_2f << 4 | local_2e >> 2" (binary_expression "local_2f << 4" identifier << number_literal) | (binary_expression "local_2e >> 2" identifier >> number_literal))) ;) (expression_statement "pbVar10[2] = local_2e << 6 | local_2d;" (assignment_expression "pbVar10[2] = local_2e << 6 | local_2d" (subscript_expression "pbVar10[2]" identifier [ number_literal ]) = (binary_expression "local_2e << 6 | local_2d" (binary_expression "local_2e << 6" identifier << number_literal) | identifier)) ;) (expression_statement "pbVar3 = pbVar10 + 3;" (assignment_expression "pbVar3 = pbVar10 + 3" identifier = (binary_expression "pbVar10 + 3" identifier + number_literal)) ;) (expression_statement "param_2 = pcVar15;" (assignment_expression "param_2 = pcVar15" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000fa950) */\n\nchar * decode_base64(char **pp_dst,char *src)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  char *in_a2;\n  uchar *puVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  code *pcVar17;\n  char *pcStack_f8;\n  char acStack_f4 [52];\n  char acStack_c0 [68];\n  char *pcStack_7c;\n  byte *pbStack_78;\n  int iStack_74;\n  char *pcStack_70;\n  char *pcStack_6c;\n  undefined *puStack_68;\n  char **ppcStack_64;\n  undefined *puStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uchar six_bit [4];\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_bb_uuenc_tbl_base64_0012a698;\n  pcVar16 = &DAT_00000004;\n  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar4 = (byte *)*pp_dst;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar4;\n    iVar12 = 0;\n    puVar9 = six_bit;\n    pcVar6 = src;\n    do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);\n    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;\n    pbVar10[2] = six_bit[2] << 6 | six_bit[3];\n    pbVar4 = pbVar10 + 3;\n    src = pcVar6;\n  } while( true );\n}\n\n" comment (function_definition "char * decode_base64(char **pp_dst,char *src)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  char *in_a2;\n  uchar *puVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  code *pcVar17;\n  char *pcStack_f8;\n  char acStack_f4 [52];\n  char acStack_c0 [68];\n  char *pcStack_7c;\n  byte *pbStack_78;\n  int iStack_74;\n  char *pcStack_70;\n  char *pcStack_6c;\n  undefined *puStack_68;\n  char **ppcStack_64;\n  undefined *puStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uchar six_bit [4];\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_bb_uuenc_tbl_base64_0012a698;\n  pcVar16 = &DAT_00000004;\n  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar4 = (byte *)*pp_dst;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar4;\n    iVar12 = 0;\n    puVar9 = six_bit;\n    pcVar6 = src;\n    do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);\n    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;\n    pbVar10[2] = six_bit[2] << 6 | six_bit[3];\n    pbVar4 = pbVar10 + 3;\n    src = pcVar6;\n  } while( true );\n}" primitive_type (pointer_declarator "* decode_base64(char **pp_dst,char *src)" * (function_declarator "decode_base64(char **pp_dst,char *src)" identifier (parameter_list "(char **pp_dst,char *src)" ( (parameter_declaration "char **pp_dst" primitive_type (pointer_declarator "**pp_dst" * (pointer_declarator "*pp_dst" * identifier))) , (parameter_declaration "char *src" primitive_type (pointer_declarator "*src" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  char *in_a2;\n  uchar *puVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  code *pcVar17;\n  char *pcStack_f8;\n  char acStack_f4 [52];\n  char acStack_c0 [68];\n  char *pcStack_7c;\n  byte *pbStack_78;\n  int iStack_74;\n  char *pcStack_70;\n  char *pcStack_6c;\n  undefined *puStack_68;\n  char **ppcStack_64;\n  undefined *puStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uchar six_bit [4];\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_bb_uuenc_tbl_base64_0012a698;\n  pcVar16 = &DAT_00000004;\n  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar4 = (byte *)*pp_dst;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar4;\n    iVar12 = 0;\n    puVar9 = six_bit;\n    pcVar6 = src;\n    do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);\n    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;\n    pbVar10[2] = six_bit[2] << 6 | six_bit[3];\n    pbVar4 = pbVar10 + 3;\n    src = pcVar6;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *in_a2;" primitive_type (pointer_declarator "*in_a2" * identifier) ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char *pcStack_f8;" primitive_type (pointer_declarator "*pcStack_f8" * identifier) ;) (declaration "char acStack_f4 [52];" primitive_type (array_declarator "acStack_f4 [52]" identifier [ number_literal ]) ;) (declaration "char acStack_c0 [68];" primitive_type (array_declarator "acStack_c0 [68]" identifier [ number_literal ]) ;) (declaration "char *pcStack_7c;" primitive_type (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "byte *pbStack_78;" type_identifier (pointer_declarator "*pbStack_78" * identifier) ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "char *pcStack_70;" primitive_type (pointer_declarator "*pcStack_70" * identifier) ;) (declaration "char *pcStack_6c;" primitive_type (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "char **ppcStack_64;" primitive_type (pointer_declarator "**ppcStack_64" * (pointer_declarator "*ppcStack_64" * identifier)) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "code *pcStack_54;" type_identifier (pointer_declarator "*pcStack_54" * identifier) ;) (declaration "uchar six_bit [4];" type_identifier (array_declarator "six_bit [4]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_bb_uuenc_tbl_base64_0012a698;" (assignment_expression "puVar1 = PTR_bb_uuenc_tbl_base64_0012a698" identifier = identifier) ;) (expression_statement "pcVar16 = &DAT_00000004;" (assignment_expression "pcVar16 = &DAT_00000004" identifier = (pointer_expression "&DAT_00000004" & identifier)) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iVar3 = *(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 "pbVar4 = (byte *)*pp_dst;" (assignment_expression "pbVar4 = (byte *)*pp_dst" identifier = (cast_expression "(byte *)*pp_dst" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp_dst" * identifier))) ;) (labeled_statement "LAB_000fa510:\n  do {\n    pbVar10 = pbVar4;\n    iVar12 = 0;\n    puVar9 = six_bit;\n    pcVar6 = src;\n    do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);\n    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;\n    pbVar10[2] = six_bit[2] << 6 | six_bit[3];\n    pbVar4 = pbVar10 + 3;\n    src = pcVar6;\n  } while( true );" statement_identifier : (do_statement "do {\n    pbVar10 = pbVar4;\n    iVar12 = 0;\n    puVar9 = six_bit;\n    pcVar6 = src;\n    do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);\n    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;\n    pbVar10[2] = six_bit[2] << 6 | six_bit[3];\n    pbVar4 = pbVar10 + 3;\n    src = pcVar6;\n  } while( true );" do (compound_statement "{\n    pbVar10 = pbVar4;\n    iVar12 = 0;\n    puVar9 = six_bit;\n    pcVar6 = src;\n    do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);\n    *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n    pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;\n    pbVar10[2] = six_bit[2] << 6 | six_bit[3];\n    pbVar4 = pbVar10 + 3;\n    src = pcVar6;\n  }" { (expression_statement "pbVar10 = pbVar4;" (assignment_expression "pbVar10 = pbVar4" identifier = identifier) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = six_bit;" (assignment_expression "puVar9 = six_bit" identifier = identifier) ;) (expression_statement "pcVar6 = src;" (assignment_expression "pcVar6 = src" identifier = identifier) ;) (do_statement "do {\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    } while (iVar12 != 4);" do (compound_statement "{\n      do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);\n      if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar12 = iVar12 + 1;\n      *puVar9 = (uchar)(iVar8 - (int)puVar1);\n      puVar9 = puVar9 + 1;\n    }" { (do_statement "do {\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      } while (iVar8 == 0);" do (compound_statement "{\n        if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar6 = pcVar6 + 1;\n        iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        in_a2 = &DAT_00000040;\n      }" { (if_statement "if (*pcVar6 == '\0') {\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" if (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *pp_dst = (char *)pbVar10;\n          iVar8 = *(int *)puVar2;\n          pcVar11 = pcVar6;\n          if (iVar12 != 0) {\n            pcVar11 = src;\n          }\n          if (iVar3 == iVar8) {\n            return pcVar11;\n          }\n          pcVar17 = read_base64;\n          puVar15 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar7 = (uint)in_a2 & 0x100;\n          puStack_68 = puVar2;\n          puVar13 = *(undefined4 **)(puVar15 + 0x30af8);\n          iVar14 = *(int *)(puVar15 + 0x2fb54);\n          uStack_5c = 3;\n          puStack_60 = puVar1;\n          pcVar11 = (char *)0x0;\n          uStack_58 = 4;\n          pcStack_7c = (char *)*puVar13;\n          pbStack_78 = pbVar10;\n          iStack_74 = iVar12;\n          pcStack_70 = src;\n          pcStack_6c = pcVar6;\n          ppcStack_64 = pp_dst;\n          pcStack_54 = pcVar17;\nLAB_000fa6c4:\n          pcVar6 = pcVar11;\n          if (0x3f < (int)pcVar11) goto LAB_000fa758;\n          pbVar4 = *(byte **)(iVar8 + 4);\n          pcVar16 = (char *)(int)(char)in_a2;\n          if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;\n          pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);\n          if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" { (expression_statement "*pp_dst = (char *)pbVar10;" (assignment_expression "*pp_dst = (char *)pbVar10" (pointer_expression "*pp_dst" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar8 = *(int *)puVar2;" (assignment_expression "iVar8 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar11 = pcVar6;" (assignment_expression "pcVar11 = pcVar6" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n            pcVar11 = src;\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar11 = src;\n          }" { (expression_statement "pcVar11 = src;" (assignment_expression "pcVar11 = src" identifier = identifier) ;) })) (if_statement "if (iVar3 == iVar8) {\n            return pcVar11;\n          }" if (parenthesized_expression "(iVar3 == iVar8)" ( (binary_expression "iVar3 == iVar8" identifier == identifier) )) (compound_statement "{\n            return pcVar11;\n          }" { (return_statement "return pcVar11;" return identifier ;) })) (expression_statement "pcVar17 = read_base64;" (assignment_expression "pcVar17 = read_base64" identifier = identifier) ;) (expression_statement "puVar15 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar15 = PTR___stack_chk_fail_0012b0c8" identifier = 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 "()" ( ))) ;) (expression_statement "uVar7 = (uint)in_a2 & 0x100;" (assignment_expression "uVar7 = (uint)in_a2 & 0x100" identifier = (binary_expression "(uint)in_a2 & 0x100" (cast_expression "(uint)in_a2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puStack_68 = puVar2;" (assignment_expression "puStack_68 = puVar2" identifier = identifier) ;) (expression_statement "puVar13 = *(undefined4 **)(puVar15 + 0x30af8);" (assignment_expression "puVar13 = *(undefined4 **)(puVar15 + 0x30af8)" identifier = (pointer_expression "*(undefined4 **)(puVar15 + 0x30af8)" * (cast_expression "(undefined4 **)(puVar15 + 0x30af8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30af8)" ( (binary_expression "puVar15 + 0x30af8" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(puVar15 + 0x2fb54);" (assignment_expression "iVar14 = *(int *)(puVar15 + 0x2fb54)" identifier = (pointer_expression "*(int *)(puVar15 + 0x2fb54)" * (cast_expression "(int *)(puVar15 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x2fb54)" ( (binary_expression "puVar15 + 0x2fb54" identifier + number_literal) ))))) ;) (expression_statement "uStack_5c = 3;" (assignment_expression "uStack_5c = 3" identifier = number_literal) ;) (expression_statement "puStack_60 = puVar1;" (assignment_expression "puStack_60 = puVar1" identifier = identifier) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_58 = 4;" (assignment_expression "uStack_58 = 4" identifier = number_literal) ;) (expression_statement "pcStack_7c = (char *)*puVar13;" (assignment_expression "pcStack_7c = (char *)*puVar13" identifier = (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "pbStack_78 = pbVar10;" (assignment_expression "pbStack_78 = pbVar10" identifier = identifier) ;) (expression_statement "iStack_74 = iVar12;" (assignment_expression "iStack_74 = iVar12" identifier = identifier) ;) (expression_statement "pcStack_70 = src;" (assignment_expression "pcStack_70 = src" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar6;" (assignment_expression "pcStack_6c = pcVar6" identifier = identifier) ;) (expression_statement "ppcStack_64 = pp_dst;" (assignment_expression "ppcStack_64 = pp_dst" identifier = identifier) ;) (expression_statement "pcStack_54 = pcVar17;" (assignment_expression "pcStack_54 = pcVar17" identifier = identifier) ;) (labeled_statement "LAB_000fa6c4:\n          pcVar6 = pcVar11;" statement_identifier : (expression_statement "pcVar6 = pcVar11;" (assignment_expression "pcVar6 = pcVar11" identifier = identifier) ;)) (if_statement "if (0x3f < (int)pcVar11) goto LAB_000fa758;" if (parenthesized_expression "(0x3f < (int)pcVar11)" ( (binary_expression "0x3f < (int)pcVar11" number_literal < (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000fa758;" goto statement_identifier ;)) (expression_statement "pbVar4 = *(byte **)(iVar8 + 4);" (assignment_expression "pbVar4 = *(byte **)(iVar8 + 4)" identifier = (pointer_expression "*(byte **)(iVar8 + 4)" * (cast_expression "(byte **)(iVar8 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (char *)(int)(char)in_a2;" (assignment_expression "pcVar16 = (char *)(int)(char)in_a2" identifier = (cast_expression "(char *)(int)(char)in_a2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)in_a2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)in_a2" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (if_statement "if (pbVar4 < *(byte **)(iVar8 + 8)) goto LAB_000fa7fc;" if (parenthesized_expression "(pbVar4 < *(byte **)(iVar8 + 8))" ( (binary_expression "pbVar4 < *(byte **)(iVar8 + 8)" identifier < (pointer_expression "*(byte **)(iVar8 + 8)" * (cast_expression "(byte **)(iVar8 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000fa7fc;" goto statement_identifier ;)) (expression_statement "pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8);" (assignment_expression "pcVar5 = (char *)(**(code **)(puVar15 + 0x30798))(iVar8)" identifier = (cast_expression "(char *)(**(code **)(puVar15 + 0x30798))(iVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x30798))(iVar8)" (parenthesized_expression "(**(code **)(puVar15 + 0x30798))" ( (pointer_expression "**(code **)(puVar15 + 0x30798)" * (pointer_expression "*(code **)(puVar15 + 0x30798)" * (cast_expression "(code **)(puVar15 + 0x30798)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30798)" ( (binary_expression "puVar15 + 0x30798" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier ))))) ;) (if_statement "if (pcVar16 != pcVar5) {\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" if (parenthesized_expression "(pcVar16 != pcVar5)" ( (binary_expression "pcVar16 != pcVar5" identifier != identifier) )) (compound_statement "{\n            if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" { (if_statement "if (pcVar5 != (char *)0xffffffff) goto LAB_000fa748;" if (parenthesized_expression "(pcVar5 != (char *)0xffffffff)" ( (binary_expression "pcVar5 != (char *)0xffffffff" identifier != (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000fa748;" goto statement_identifier ;)) (goto_statement "goto LAB_000fa838;" goto statement_identifier ;) })) (do_statement "do {\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );" do (compound_statement "{\n            if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }\n            while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          }" { (if_statement "if (pcVar11 != (char *)0x0) {\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }" if (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);\n              acStack_c0[(int)pcVar11] = '\0';\n              if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }\n            }" { (labeled_statement "LAB_000fa838:\n              in_a2 = (char *)((uint)in_a2 & 0x100);" statement_identifier : (expression_statement "in_a2 = (char *)((uint)in_a2 & 0x100);" (assignment_expression "in_a2 = (char *)((uint)in_a2 & 0x100)" identifier = (cast_expression "(char *)((uint)in_a2 & 0x100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)in_a2 & 0x100)" ( (binary_expression "(uint)in_a2 & 0x100" (cast_expression "(uint)in_a2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "acStack_c0[(int)pcVar11] = '\0';" (assignment_expression "acStack_c0[(int)pcVar11] = '\0'" (subscript_expression "acStack_c0[(int)pcVar11]" identifier [ (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)) {\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }" if (parenthesized_expression "((in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0))" ( (binary_expression "(in_a2 == (char *)0x0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)" (parenthesized_expression "(in_a2 == (char *)0x0)" ( (binary_expression "in_a2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0)" ( (comma_expression "iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98),\n                 pcVar11 = acStack_c0, iVar12 != 0" (assignment_expression "iVar12 = (**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98)" identifier = (call_expression "(**(code **)(puVar15 + 0x30b74))\n                                     (acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98)" (parenthesized_expression "(**(code **)(puVar15 + 0x30b74))" ( (pointer_expression "**(code **)(puVar15 + 0x30b74)" * (pointer_expression "*(code **)(puVar15 + 0x30b74)" * (cast_expression "(code **)(puVar15 + 0x30b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30b74)" ( (binary_expression "puVar15 + 0x30b74" identifier + number_literal) ))))) )) (argument_list "(acStack_c0,*(int *)(puVar15 + 0x2fb54) + -0xe98)" ( identifier , (binary_expression "*(int *)(puVar15 + 0x2fb54) + -0xe98" (pointer_expression "*(int *)(puVar15 + 0x2fb54)" * (cast_expression "(int *)(puVar15 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x2fb54)" ( (binary_expression "puVar15 + 0x2fb54" identifier + number_literal) )))) + number_literal) )))) , (comma_expression "pcVar11 = acStack_c0, iVar12 != 0" (assignment_expression "pcVar11 = acStack_c0" identifier = identifier) , (binary_expression "iVar12 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                pcVar11 = acStack_f4;\n                pcStack_f8 = pcVar11;\n                in_a2 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);\n                if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }\n              }" { (expression_statement "pcVar11 = acStack_f4;" (assignment_expression "pcVar11 = acStack_f4" identifier = identifier) ;) (expression_statement "pcStack_f8 = pcVar11;" (assignment_expression "pcStack_f8 = pcVar11" identifier = identifier) ;) (expression_statement "in_a2 = decode_base64(&pcStack_f8,acStack_c0);" (assignment_expression "in_a2 = decode_base64(&pcStack_f8,acStack_c0)" identifier = (call_expression "decode_base64(&pcStack_f8,acStack_c0)" identifier (argument_list "(&pcStack_f8,acStack_c0)" ( (pointer_expression "&pcStack_f8" & identifier) , identifier )))) ;) (expression_statement "(**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3);" (call_expression "(**(code **)(puVar15 + 0x309e8))(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3)" (parenthesized_expression "(**(code **)(puVar15 + 0x309e8))" ( (pointer_expression "**(code **)(puVar15 + 0x309e8)" * (pointer_expression "*(code **)(puVar15 + 0x309e8)" * (cast_expression "(code **)(puVar15 + 0x309e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x309e8)" ( (binary_expression "puVar15 + 0x309e8" identifier + number_literal) ))))) )) (argument_list "(pcVar11,(int)pcStack_f8 - (int)pcVar11,1,iVar3)" ( identifier , (binary_expression "(int)pcStack_f8 - (int)pcVar11" (cast_expression "(int)pcStack_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , identifier ))) ;) (if_statement "if (*in_a2 != '\0') {\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }" if (parenthesized_expression "(*in_a2 != '\0')" ( (binary_expression "*in_a2 != '\0'" (pointer_expression "*in_a2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pcVar17 = *(code **)(puVar15 + 0x2fb90);\n                  puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);\n                  (*pcVar17)();\n                  (**(code **)(pcVar17 + 0x2f988))();\n                  pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();\n                  if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }\n                  return pcVar16;\n                }" { (expression_statement "pcVar17 = *(code **)(puVar15 + 0x2fb90);" (assignment_expression "pcVar17 = *(code **)(puVar15 + 0x2fb90)" identifier = (pointer_expression "*(code **)(puVar15 + 0x2fb90)" * (cast_expression "(code **)(puVar15 + 0x2fb90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x2fb90)" ( (binary_expression "puVar15 + 0x2fb90" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0);" (assignment_expression "puVar13 = (undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0x2fb54) + -0xeb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x2fb54) + -0xeb0)" ( (binary_expression "*(int *)(puVar15 + 0x2fb54) + -0xeb0" (pointer_expression "*(int *)(puVar15 + 0x2fb54)" * (cast_expression "(int *)(puVar15 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x2fb54)" ( (binary_expression "puVar15 + 0x2fb54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar17 + 0x2f988))();" (call_expression "(**(code **)(pcVar17 + 0x2f988))()" (parenthesized_expression "(**(code **)(pcVar17 + 0x2f988))" ( (pointer_expression "**(code **)(pcVar17 + 0x2f988)" * (pointer_expression "*(code **)(pcVar17 + 0x2f988)" * (cast_expression "(code **)(pcVar17 + 0x2f988)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x2f988)" ( (binary_expression "pcVar17 + 0x2f988" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))();" (assignment_expression "pcVar16 = (char *)(**(code **)(pcVar17 + 0x30588))()" identifier = (cast_expression "(char *)(**(code **)(pcVar17 + 0x30588))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar17 + 0x30588))()" (parenthesized_expression "(**(code **)(pcVar17 + 0x30588))" ( (pointer_expression "**(code **)(pcVar17 + 0x30588)" * (pointer_expression "*(code **)(pcVar17 + 0x30588)" * (cast_expression "(code **)(pcVar17 + 0x30588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x30588)" ( (binary_expression "pcVar17 + 0x30588" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)) {\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }" if (parenthesized_expression "((-1 < (int)pcVar16) && (pcVar16 == (char *)0x0))" ( (binary_expression "(-1 < (int)pcVar16) && (pcVar16 == (char *)0x0)" (parenthesized_expression "(-1 < (int)pcVar16)" ( (binary_expression "-1 < (int)pcVar16" number_literal < (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);\n                    pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);\n                    return pcVar16;\n                  }" { (expression_statement "(**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13);" (call_expression "(**(code **)(pcVar17 + 0x307bc))(*puVar13,puVar13)" (parenthesized_expression "(**(code **)(pcVar17 + 0x307bc))" ( (pointer_expression "**(code **)(pcVar17 + 0x307bc)" * (pointer_expression "*(code **)(pcVar17 + 0x307bc)" * (cast_expression "(code **)(pcVar17 + 0x307bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x307bc)" ( (binary_expression "pcVar17 + 0x307bc" identifier + number_literal) ))))) )) (argument_list "(*puVar13,puVar13)" ( (pointer_expression "*puVar13" * identifier) , identifier ))) ;) (expression_statement "pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f);" (assignment_expression "pcVar16 = (char *)(**(code **)(pcVar17 + 0x308c4))(0x6f)" identifier = (cast_expression "(char *)(**(code **)(pcVar17 + 0x308c4))(0x6f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar17 + 0x308c4))(0x6f)" (parenthesized_expression "(**(code **)(pcVar17 + 0x308c4))" ( (pointer_expression "**(code **)(pcVar17 + 0x308c4)" * (pointer_expression "*(code **)(pcVar17 + 0x308c4)" * (cast_expression "(code **)(pcVar17 + 0x308c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x308c4)" ( (binary_expression "pcVar17 + 0x308c4" identifier + number_literal) ))))) )) (argument_list "(0x6f)" ( number_literal ))))) ;) (return_statement "return pcVar16;" return identifier ;) })) (return_statement "return pcVar16;" return identifier ;) })) })) })) (while_statement "while( true ) {\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar6 = (char *)*puVar13;\n              if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }\n              pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;\n              pcVar5 = (char *)(uint)*pbVar4;\n              pcVar6 = pcVar11;\n              if (pcVar16 == pcVar5) break;\nLAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);\n              acStack_c0[(int)pcVar6] = '\0';\n              if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" { (expression_statement "pcVar6 = (char *)*puVar13;" (assignment_expression "pcVar6 = (char *)*puVar13" identifier = (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (if_statement "if (pcStack_7c == pcVar6) {\n                return pcVar6;\n              }" if (parenthesized_expression "(pcStack_7c == pcVar6)" ( (binary_expression "pcStack_7c == pcVar6" identifier == identifier) )) (compound_statement "{\n                return pcVar6;\n              }" { (return_statement "return pcVar6;" return identifier ;) })) (expression_statement "pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))();" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar15 + 0x30a74))()" identifier = (cast_expression "(byte *)(**(code **)(puVar15 + 0x30a74))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x30a74))()" (parenthesized_expression "(**(code **)(puVar15 + 0x30a74))" ( (pointer_expression "**(code **)(puVar15 + 0x30a74)" * (pointer_expression "*(code **)(puVar15 + 0x30a74)" * (cast_expression "(code **)(puVar15 + 0x30a74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30a74)" ( (binary_expression "puVar15 + 0x30a74" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_000fa7fc:\n              *(byte **)(iVar8 + 4) = pbVar4 + 1;" statement_identifier : (expression_statement "*(byte **)(iVar8 + 4) = pbVar4 + 1;" (assignment_expression "*(byte **)(iVar8 + 4) = pbVar4 + 1" (pointer_expression "*(byte **)(iVar8 + 4)" * (cast_expression "(byte **)(iVar8 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar5 = (char *)(uint)*pbVar4;" (assignment_expression "pcVar5 = (char *)(uint)*pbVar4" identifier = (binary_expression "(char *)(uint)*pbVar4" (cast_expression "(char *)(uint)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "pcVar6 = pcVar11;" (assignment_expression "pcVar6 = pcVar11" identifier = identifier) ;) (if_statement "if (pcVar16 == pcVar5) break;" if (parenthesized_expression "(pcVar16 == pcVar5)" ( (binary_expression "pcVar16 == pcVar5" identifier == identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000fa748:\n              if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }" statement_identifier : (if_statement "if (0x20 < (int)pcVar5) {\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }" if (parenthesized_expression "(0x20 < (int)pcVar5)" ( (binary_expression "0x20 < (int)pcVar5" number_literal < (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar11 = pcVar6 + 1;\n                acStack_c0[(int)pcVar6] = (char)pcVar5;\n                goto LAB_000fa6c4;\n              }" { (expression_statement "pcVar11 = pcVar6 + 1;" (assignment_expression "pcVar11 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "acStack_c0[(int)pcVar6] = (char)pcVar5;" (assignment_expression "acStack_c0[(int)pcVar6] = (char)pcVar5" (subscript_expression "acStack_c0[(int)pcVar6]" identifier [ (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)pcVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000fa6c4;" goto statement_identifier ;) }))) (labeled_statement "LAB_000fa758:\n              pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);" statement_identifier : (expression_statement "pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6);" (assignment_expression "pcVar11 = (char *)((int)&pbStack_78 + (int)pcVar6)" identifier = (cast_expression "(char *)((int)&pbStack_78 + (int)pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbStack_78 + (int)pcVar6)" ( (binary_expression "(int)&pbStack_78 + (int)pcVar6" (cast_expression "(int)&pbStack_78" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbStack_78" & identifier)) + (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "acStack_c0[(int)pcVar6] = '\0';" (assignment_expression "acStack_c0[(int)pcVar6] = '\0'" (subscript_expression "acStack_c0[(int)pcVar6]" identifier [ (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )) {\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }" if (parenthesized_expression "((uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 ))" ( (binary_expression "(uVar7 == 0) ||\n                 (iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0\n                 )" ( (comma_expression "iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98), iVar12 != 0" (assignment_expression "iVar12 = (**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98)" identifier = (call_expression "(**(code **)(puVar15 + 0x30b74))(acStack_c0,iVar14 + -0xe98)" (parenthesized_expression "(**(code **)(puVar15 + 0x30b74))" ( (pointer_expression "**(code **)(puVar15 + 0x30b74)" * (pointer_expression "*(code **)(puVar15 + 0x30b74)" * (cast_expression "(code **)(puVar15 + 0x30b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30b74)" ( (binary_expression "puVar15 + 0x30b74" identifier + number_literal) ))))) )) (argument_list "(acStack_c0,iVar14 + -0xe98)" ( identifier , (binary_expression "iVar14 + -0xe98" identifier + number_literal) )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                pcStack_f8 = acStack_f4;\n                pcVar16 = decode_base64(&pcStack_f8,acStack_c0);\n                (**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);\n                pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);\n                (**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);\n                goto LAB_000fa6c4;\n              }" { (expression_statement "pcStack_f8 = acStack_f4;" (assignment_expression "pcStack_f8 = acStack_f4" identifier = identifier) ;) (expression_statement "pcVar16 = decode_base64(&pcStack_f8,acStack_c0);" (assignment_expression "pcVar16 = decode_base64(&pcStack_f8,acStack_c0)" identifier = (call_expression "decode_base64(&pcStack_f8,acStack_c0)" identifier (argument_list "(&pcStack_f8,acStack_c0)" ( (pointer_expression "&pcStack_f8" & identifier) , identifier )))) ;) (expression_statement "(**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3);" (call_expression "(**(code **)(puVar15 + 0x309e8))\n                          (acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3)" (parenthesized_expression "(**(code **)(puVar15 + 0x309e8))" ( (pointer_expression "**(code **)(puVar15 + 0x309e8)" * (pointer_expression "*(code **)(puVar15 + 0x309e8)" * (cast_expression "(code **)(puVar15 + 0x309e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x309e8)" ( (binary_expression "puVar15 + 0x309e8" identifier + number_literal) ))))) )) (argument_list "(acStack_f4,(int)pcStack_f8 - (int)acStack_f4,1,iVar3)" ( identifier , (binary_expression "(int)pcStack_f8 - (int)acStack_f4" (cast_expression "(int)pcStack_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)acStack_f4" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , identifier ))) ;) (expression_statement "pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16);" (assignment_expression "pcVar11 = (char *)(**(code **)(puVar15 + 0x308e8))(pcVar16)" identifier = (cast_expression "(char *)(**(code **)(puVar15 + 0x308e8))(pcVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x308e8))(pcVar16)" (parenthesized_expression "(**(code **)(puVar15 + 0x308e8))" ( (pointer_expression "**(code **)(puVar15 + 0x308e8)" * (pointer_expression "*(code **)(puVar15 + 0x308e8)" * (cast_expression "(code **)(puVar15 + 0x308e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x308e8)" ( (binary_expression "puVar15 + 0x308e8" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier ))))) ;) (expression_statement "(**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42);" (call_expression "(**(code **)(puVar15 + 0x30944))(acStack_c0,pcVar16,pcVar11,0x42)" (parenthesized_expression "(**(code **)(puVar15 + 0x30944))" ( (pointer_expression "**(code **)(puVar15 + 0x30944)" * (pointer_expression "*(code **)(puVar15 + 0x30944)" * (cast_expression "(code **)(puVar15 + 0x30944)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30944)" ( (binary_expression "puVar15 + 0x30944" identifier + number_literal) ))))) )) (argument_list "(acStack_c0,pcVar16,pcVar11,0x42)" ( identifier , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000fa6c4;" goto statement_identifier ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1);" (assignment_expression "iVar8 = (*(code *)PTR_strchr_0012af54)(puVar1)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(puVar1)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1)" ( identifier )))) ;) (expression_statement "in_a2 = &DAT_00000040;" (assignment_expression "in_a2 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) }) while (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) ;) (if_statement "if (iVar8 - (int)puVar1 == 0x40) {\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" if (parenthesized_expression "(iVar8 - (int)puVar1 == 0x40)" ( (binary_expression "iVar8 - (int)puVar1 == 0x40" (binary_expression "iVar8 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) == number_literal) )) (compound_statement "{\n        pbVar4 = pbVar10;\n        src = pcVar6;\n        if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" { (expression_statement "pbVar4 = pbVar10;" (assignment_expression "pbVar4 = pbVar10" identifier = identifier) ;) (expression_statement "src = pcVar6;" (assignment_expression "src = pcVar6" identifier = identifier) ;) (if_statement "if (1 < iVar12) {\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }" if (parenthesized_expression "(1 < iVar12)" ( (binary_expression "1 < iVar12" number_literal < identifier) )) (compound_statement "{\n          *pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;\n          pbVar4 = pbVar10 + 1;\n          if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }\n        }" { (expression_statement "*pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;" (assignment_expression "*pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "six_bit[0] << 2 | six_bit[1] >> 4" (binary_expression "six_bit[0] << 2" (subscript_expression "six_bit[0]" identifier [ number_literal ]) << number_literal) | (binary_expression "six_bit[1] >> 4" (subscript_expression "six_bit[1]" identifier [ number_literal ]) >> number_literal))) ;) (expression_statement "pbVar4 = pbVar10 + 1;" (assignment_expression "pbVar4 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar12 == 3) {\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }" if (parenthesized_expression "(iVar12 == 3)" ( (binary_expression "iVar12 == 3" identifier == number_literal) )) (compound_statement "{\n            pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;\n            pbVar4 = pbVar10 + 2;\n          }" { (expression_statement "pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4;" (assignment_expression "pbVar10[1] = six_bit[2] >> 2 | six_bit[1] << 4" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "six_bit[2] >> 2 | six_bit[1] << 4" (binary_expression "six_bit[2] >> 2" (subscript_expression "six_bit[2]" identifier [ number_literal ]) >> number_literal) | (binary_expression "six_bit[1] << 4" (subscript_expression "six_bit[1]" identifier [ number_literal ]) << number_literal))) ;) (expression_statement "pbVar4 = pbVar10 + 2;" (assignment_expression "pbVar4 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_000fa510;" goto statement_identifier ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*puVar9 = (uchar)(iVar8 - (int)puVar1);" (assignment_expression "*puVar9 = (uchar)(iVar8 - (int)puVar1)" (pointer_expression "*puVar9" * identifier) = (call_expression "(uchar)(iVar8 - (int)puVar1)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(iVar8 - (int)puVar1)" ( (binary_expression "iVar8 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 4)" ( (binary_expression "iVar12 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4;" (assignment_expression "*pbVar10 = six_bit[0] << 2 | six_bit[1] >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "six_bit[0] << 2 | six_bit[1] >> 4" (binary_expression "six_bit[0] << 2" (subscript_expression "six_bit[0]" identifier [ number_literal ]) << number_literal) | (binary_expression "six_bit[1] >> 4" (subscript_expression "six_bit[1]" identifier [ number_literal ]) >> number_literal))) ;) (expression_statement "pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2;" (assignment_expression "pbVar10[1] = six_bit[1] << 4 | six_bit[2] >> 2" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "six_bit[1] << 4 | six_bit[2] >> 2" (binary_expression "six_bit[1] << 4" (subscript_expression "six_bit[1]" identifier [ number_literal ]) << number_literal) | (binary_expression "six_bit[2] >> 2" (subscript_expression "six_bit[2]" identifier [ number_literal ]) >> number_literal))) ;) (expression_statement "pbVar10[2] = six_bit[2] << 6 | six_bit[3];" (assignment_expression "pbVar10[2] = six_bit[2] << 6 | six_bit[3]" (subscript_expression "pbVar10[2]" identifier [ number_literal ]) = (binary_expression "six_bit[2] << 6 | six_bit[3]" (binary_expression "six_bit[2] << 6" (subscript_expression "six_bit[2]" identifier [ number_literal ]) << number_literal) | (subscript_expression "six_bit[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar4 = pbVar10 + 3;" (assignment_expression "pbVar4 = pbVar10 + 3" identifier = (binary_expression "pbVar10 + 3" identifier + number_literal)) ;) (expression_statement "src = pcVar6;" (assignment_expression "src = pcVar6" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "char * FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}\n\n" (function_definition "char * FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)" * (function_declarator "FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)" identifier (parameter_list "(undefined4 *param_1,char *param_2,char *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined1 *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "undefined1 auStack_f4 [52];" type_identifier (array_declarator "auStack_f4 [52]" identifier [ number_literal ]) ;) (declaration "undefined1 local_c0 [68];" type_identifier (array_declarator "local_c0 [68]" identifier [ number_literal ]) ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "byte *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "char *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "char local_30;" primitive_type identifier ;) (declaration "byte local_2f;" type_identifier identifier ;) (declaration "byte local_2e;" type_identifier identifier ;) (declaration "byte local_2d;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;" (assignment_expression "puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698" identifier = identifier) ;) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) (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 "pbVar3 = (byte *)*param_1;" (assignment_expression "pbVar3 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "LAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );" statement_identifier : (do_statement "do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );" do (compound_statement "{\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  }" { (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" identifier = identifier) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = &local_30;" (assignment_expression "pcVar5 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "pcVar15 = param_2;" (assignment_expression "pcVar15 = param_2" identifier = identifier) ;) (do_statement "do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);" do (compound_statement "{\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    }" { (do_statement "do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);" do (compound_statement "{\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      }" { (if_statement "if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" if (parenthesized_expression "(*pcVar15 == '\0')" ( (binary_expression "*pcVar15 == '\0'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" { (expression_statement "*param_1 = pbVar10;" (assignment_expression "*param_1 = pbVar10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "iVar7 = *(int *)puVar2;" (assignment_expression "iVar7 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar5 = pcVar15;" (assignment_expression "pcVar5 = pcVar15" identifier = identifier) ;) (if_statement "if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar5 = param_2;\n          }" { (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" identifier = identifier) ;) })) (if_statement "if (local_2c == iVar7) {\n            return pcVar5;\n          }" if (parenthesized_expression "(local_2c == iVar7)" ( (binary_expression "local_2c == iVar7" identifier == identifier) )) (compound_statement "{\n            return pcVar5;\n          }" { (return_statement "return pcVar5;" return identifier ;) })) (expression_statement "uVar20 = 0xfa654;" (assignment_expression "uVar20 = 0xfa654" identifier = number_literal) ;) (expression_statement "iVar9 = local_2c;" (assignment_expression "iVar9 = local_2c" identifier = identifier) ;) (expression_statement "puVar17 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0012b0c8" identifier = 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 "()" ( ))) ;) (expression_statement "uVar6 = (uint)param_3 & 0x100;" (assignment_expression "uVar6 = (uint)param_3 & 0x100" identifier = (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "local_68 = puVar2;" (assignment_expression "local_68 = puVar2" identifier = identifier) ;) (expression_statement "piVar14 = *(int **)(puVar17 + 0x30af8);" (assignment_expression "piVar14 = *(int **)(puVar17 + 0x30af8)" identifier = (pointer_expression "*(int **)(puVar17 + 0x30af8)" * (cast_expression "(int **)(puVar17 + 0x30af8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30af8)" ( (binary_expression "puVar17 + 0x30af8" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar17 + 0x2fb54);" (assignment_expression "iVar16 = *(int *)(puVar17 + 0x2fb54)" identifier = (pointer_expression "*(int *)(puVar17 + 0x2fb54)" * (cast_expression "(int *)(puVar17 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x2fb54)" ( (binary_expression "puVar17 + 0x2fb54" identifier + number_literal) ))))) ;) (expression_statement "local_5c = 3;" (assignment_expression "local_5c = 3" identifier = number_literal) ;) (expression_statement "local_60 = puVar1;" (assignment_expression "local_60 = puVar1" identifier = identifier) ;) (expression_statement "puVar11 = (undefined1 *)0x0;" (assignment_expression "puVar11 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "local_7c = (char *)*piVar14;" (assignment_expression "local_7c = (char *)*piVar14" identifier = (cast_expression "(char *)*piVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "local_78 = pbVar10;" (assignment_expression "local_78 = pbVar10" identifier = identifier) ;) (expression_statement "local_74 = iVar13;" (assignment_expression "local_74 = iVar13" identifier = identifier) ;) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" identifier = identifier) ;) (expression_statement "local_6c = pcVar15;" (assignment_expression "local_6c = pcVar15" identifier = identifier) ;) (expression_statement "local_64 = param_1;" (assignment_expression "local_64 = param_1" identifier = identifier) ;) (expression_statement "local_54 = uVar20;" (assignment_expression "local_54 = uVar20" identifier = identifier) ;) (labeled_statement "LAB_000fa6c4:\n          puVar12 = puVar11;" statement_identifier : (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;)) (if_statement "if (0x3f < (int)puVar11) goto LAB_000fa758;" if (parenthesized_expression "(0x3f < (int)puVar11)" ( (binary_expression "0x3f < (int)puVar11" number_literal < (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000fa758;" goto statement_identifier ;)) (expression_statement "pbVar3 = *(byte **)(iVar7 + 4);" (assignment_expression "pbVar3 = *(byte **)(iVar7 + 4)" identifier = (pointer_expression "*(byte **)(iVar7 + 4)" * (cast_expression "(byte **)(iVar7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)(char)param_3;" (assignment_expression "uVar19 = (uint)(char)param_3" identifier = (cast_expression "(uint)(char)param_3" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;" if (parenthesized_expression "(pbVar3 < *(byte **)(iVar7 + 8))" ( (binary_expression "pbVar3 < *(byte **)(iVar7 + 8)" identifier < (pointer_expression "*(byte **)(iVar7 + 8)" * (cast_expression "(byte **)(iVar7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000fa7fc;" goto statement_identifier ;)) (expression_statement "uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);" (assignment_expression "uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7)" identifier = (call_expression "(**(code **)(puVar17 + 0x30798))(iVar7)" (parenthesized_expression "(**(code **)(puVar17 + 0x30798))" ( (pointer_expression "**(code **)(puVar17 + 0x30798)" * (pointer_expression "*(code **)(puVar17 + 0x30798)" * (cast_expression "(code **)(puVar17 + 0x30798)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30798)" ( (binary_expression "puVar17 + 0x30798" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" if (parenthesized_expression "(uVar19 != uVar4)" ( (binary_expression "uVar19 != uVar4" identifier != identifier) )) (compound_statement "{\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" { (if_statement "if (uVar4 != 0xffffffff) goto LAB_000fa748;" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_000fa748;" goto statement_identifier ;)) (goto_statement "goto LAB_000fa838;" goto statement_identifier ;) })) (do_statement "do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );" do (compound_statement "{\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          }" { (if_statement "if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }" { (labeled_statement "LAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);" statement_identifier : (expression_statement "param_3 = (char *)((uint)param_3 & 0x100);" (assignment_expression "param_3 = (char *)((uint)param_3 & 0x100)" identifier = (cast_expression "(char *)((uint)param_3 & 0x100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_3 & 0x100)" ( (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "local_c0[(int)puVar11] = 0;" (assignment_expression "local_c0[(int)puVar11] = 0" (subscript_expression "local_c0[(int)puVar11]" identifier [ (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) (if_statement "if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }" if (parenthesized_expression "((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0))" ( (binary_expression "(param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)" (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)" ( (comma_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0" (assignment_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" identifier = (call_expression "(**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" (parenthesized_expression "(**(code **)(puVar17 + 0x30b74))" ( (pointer_expression "**(code **)(puVar17 + 0x30b74)" * (pointer_expression "*(code **)(puVar17 + 0x30b74)" * (cast_expression "(code **)(puVar17 + 0x30b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30b74)" ( (binary_expression "puVar17 + 0x30b74" identifier + number_literal) ))))) )) (argument_list "(local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" ( identifier , (binary_expression "*(int *)(puVar17 + 0x2fb54) + -0xe98" (pointer_expression "*(int *)(puVar17 + 0x2fb54)" * (cast_expression "(int *)(puVar17 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x2fb54)" ( (binary_expression "puVar17 + 0x2fb54" identifier + number_literal) )))) + number_literal) )))) , (comma_expression "puVar11 = local_c0, iVar13 != 0" (assignment_expression "puVar11 = local_c0" identifier = identifier) , (binary_expression "iVar13 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }" { (expression_statement "puVar11 = auStack_f4;" (assignment_expression "puVar11 = auStack_f4" identifier = identifier) ;) (expression_statement "local_f8 = puVar11;" (assignment_expression "local_f8 = puVar11" identifier = identifier) ;) (expression_statement "param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);" (assignment_expression "param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0)" identifier = (cast_expression "(char *)FUN_000fa4a8(&local_f8,local_c0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000fa4a8(&local_f8,local_c0)" identifier (argument_list "(&local_f8,local_c0)" ( (pointer_expression "&local_f8" & identifier) , identifier ))))) ;) (expression_statement "(**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);" (call_expression "(**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9)" (parenthesized_expression "(**(code **)(puVar17 + 0x309e8))" ( (pointer_expression "**(code **)(puVar17 + 0x309e8)" * (pointer_expression "*(code **)(puVar17 + 0x309e8)" * (cast_expression "(code **)(puVar17 + 0x309e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x309e8)" ( (binary_expression "puVar17 + 0x309e8" identifier + number_literal) ))))) )) (argument_list "(puVar11,(int)local_f8 - (int)puVar11,1,iVar9)" ( identifier , (binary_expression "(int)local_f8 - (int)puVar11" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , identifier ))) ;) (if_statement "if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }" if (parenthesized_expression "(*param_3 != '\0')" ( (binary_expression "*param_3 != '\0'" (pointer_expression "*param_3" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }" { (expression_statement "pcVar18 = *(code **)(puVar17 + 0x2fb90);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x2fb90)" identifier = (pointer_expression "*(code **)(puVar17 + 0x2fb90)" * (cast_expression "(code **)(puVar17 + 0x2fb90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x2fb90)" ( (binary_expression "puVar17 + 0x2fb90" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" ( (binary_expression "*(int *)(puVar17 + 0x2fb54) + -0xeb0" (pointer_expression "*(int *)(puVar17 + 0x2fb54)" * (cast_expression "(int *)(puVar17 + 0x2fb54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x2fb54)" ( (binary_expression "puVar17 + 0x2fb54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar18 + 0x2f988))();" (call_expression "(**(code **)(pcVar18 + 0x2f988))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x2f988))" ( (pointer_expression "**(code **)(pcVar18 + 0x2f988)" * (pointer_expression "*(code **)(pcVar18 + 0x2f988)" * (cast_expression "(code **)(pcVar18 + 0x2f988)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x2f988)" ( (binary_expression "pcVar18 + 0x2f988" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))()" identifier = (cast_expression "(char *)(**(code **)(pcVar18 + 0x30588))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar18 + 0x30588))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x30588))" ( (pointer_expression "**(code **)(pcVar18 + 0x30588)" * (pointer_expression "*(code **)(pcVar18 + 0x30588)" * (cast_expression "(code **)(pcVar18 + 0x30588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x30588)" ( (binary_expression "pcVar18 + 0x30588" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }" if (parenthesized_expression "((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0))" ( (binary_expression "(-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)" (parenthesized_expression "(-1 < (int)pcVar5)" ( (binary_expression "-1 < (int)pcVar5" number_literal < (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }" { (expression_statement "(**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);" (call_expression "(**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8)" (parenthesized_expression "(**(code **)(pcVar18 + 0x307bc))" ( (pointer_expression "**(code **)(pcVar18 + 0x307bc)" * (pointer_expression "*(code **)(pcVar18 + 0x307bc)" * (cast_expression "(code **)(pcVar18 + 0x307bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x307bc)" ( (binary_expression "pcVar18 + 0x307bc" identifier + number_literal) ))))) )) (argument_list "(*puVar8,puVar8)" ( (pointer_expression "*puVar8" * identifier) , identifier ))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f)" identifier = (cast_expression "(char *)(**(code **)(pcVar18 + 0x308c4))(0x6f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar18 + 0x308c4))(0x6f)" (parenthesized_expression "(**(code **)(pcVar18 + 0x308c4))" ( (pointer_expression "**(code **)(pcVar18 + 0x308c4)" * (pointer_expression "*(code **)(pcVar18 + 0x308c4)" * (cast_expression "(code **)(pcVar18 + 0x308c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x308c4)" ( (binary_expression "pcVar18 + 0x308c4" identifier + number_literal) ))))) )) (argument_list "(0x6f)" ( number_literal ))))) ;) (return_statement "return pcVar5;" return identifier ;) })) (return_statement "return pcVar5;" return identifier ;) })) })) })) (while_statement "while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" { (expression_statement "pcVar5 = (char *)*piVar14;" (assignment_expression "pcVar5 = (char *)*piVar14" identifier = (cast_expression "(char *)*piVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if (local_7c == pcVar5) {\n                return pcVar5;\n              }" if (parenthesized_expression "(local_7c == pcVar5)" ( (binary_expression "local_7c == pcVar5" identifier == identifier) )) (compound_statement "{\n                return pcVar5;\n              }" { (return_statement "return pcVar5;" return identifier ;) })) (expression_statement "pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();" (assignment_expression "pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))()" identifier = (cast_expression "(byte *)(**(code **)(puVar17 + 0x30a74))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar17 + 0x30a74))()" (parenthesized_expression "(**(code **)(puVar17 + 0x30a74))" ( (pointer_expression "**(code **)(puVar17 + 0x30a74)" * (pointer_expression "*(code **)(puVar17 + 0x30a74)" * (cast_expression "(code **)(puVar17 + 0x30a74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30a74)" ( (binary_expression "puVar17 + 0x30a74" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;" statement_identifier : (expression_statement "*(byte **)(iVar7 + 4) = pbVar3 + 1;" (assignment_expression "*(byte **)(iVar7 + 4) = pbVar3 + 1" (pointer_expression "*(byte **)(iVar7 + 4)" * (cast_expression "(byte **)(iVar7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;)) (expression_statement "uVar4 = (uint)*pbVar3;" (assignment_expression "uVar4 = (uint)*pbVar3" identifier = (binary_expression "(uint)*pbVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) (if_statement "if (uVar19 == uVar4) break;" if (parenthesized_expression "(uVar19 == uVar4)" ( (binary_expression "uVar19 == uVar4" identifier == identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" statement_identifier : (if_statement "if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" if (parenthesized_expression "(0x20 < (int)uVar4)" ( (binary_expression "0x20 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" { (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_c0[(int)puVar12] = (char)uVar4;" (assignment_expression "local_c0[(int)puVar12] = (char)uVar4" (subscript_expression "local_c0[(int)puVar12]" identifier [ (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000fa6c4;" goto statement_identifier ;) }))) (labeled_statement "LAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);" statement_identifier : (expression_statement "puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);" (assignment_expression "puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12)" identifier = (cast_expression "(undefined1 *)((int)&local_78 + (int)puVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_78 + (int)puVar12)" ( (binary_expression "(int)&local_78 + (int)puVar12" (cast_expression "(int)&local_78" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_78" & identifier)) + (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "local_c0[(int)puVar12] = 0;" (assignment_expression "local_c0[(int)puVar12] = 0" (subscript_expression "local_c0[(int)puVar12]" identifier [ (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) (if_statement "if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }" if (parenthesized_expression "((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))" ( (binary_expression "(uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0)" ( (comma_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0" (assignment_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98)" identifier = (call_expression "(**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98)" (parenthesized_expression "(**(code **)(puVar17 + 0x30b74))" ( (pointer_expression "**(code **)(puVar17 + 0x30b74)" * (pointer_expression "*(code **)(puVar17 + 0x30b74)" * (cast_expression "(code **)(puVar17 + 0x30b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30b74)" ( (binary_expression "puVar17 + 0x30b74" identifier + number_literal) ))))) )) (argument_list "(local_c0,iVar16 + -0xe98)" ( identifier , (binary_expression "iVar16 + -0xe98" identifier + number_literal) )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }" { (expression_statement "local_f8 = auStack_f4;" (assignment_expression "local_f8 = auStack_f4" identifier = identifier) ;) (expression_statement "uVar19 = FUN_000fa4a8(&local_f8,local_c0);" (assignment_expression "uVar19 = FUN_000fa4a8(&local_f8,local_c0)" identifier = (call_expression "FUN_000fa4a8(&local_f8,local_c0)" identifier (argument_list "(&local_f8,local_c0)" ( (pointer_expression "&local_f8" & identifier) , identifier )))) ;) (expression_statement "(**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;" (call_expression "(**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)" (parenthesized_expression "(**(code **)(puVar17 + 0x309e8))" ( (pointer_expression "**(code **)(puVar17 + 0x309e8)" * (pointer_expression "*(code **)(puVar17 + 0x309e8)" * (cast_expression "(code **)(puVar17 + 0x309e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x309e8)" ( (binary_expression "puVar17 + 0x309e8" identifier + number_literal) ))))) )) (argument_list "(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)" ( identifier , (binary_expression "(int)local_f8 - (int)auStack_f4" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)auStack_f4" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);" (assignment_expression "puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar17 + 0x308e8))(uVar19)" (parenthesized_expression "(**(code **)(puVar17 + 0x308e8))" ( (pointer_expression "**(code **)(puVar17 + 0x308e8)" * (pointer_expression "*(code **)(puVar17 + 0x308e8)" * (cast_expression "(code **)(puVar17 + 0x308e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x308e8)" ( (binary_expression "puVar17 + 0x308e8" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))))) ;) (expression_statement "(**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);" (call_expression "(**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42)" (parenthesized_expression "(**(code **)(puVar17 + 0x30944))" ( (pointer_expression "**(code **)(puVar17 + 0x30944)" * (pointer_expression "*(code **)(puVar17 + 0x30944)" * (cast_expression "(code **)(puVar17 + 0x30944)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x30944)" ( (binary_expression "puVar17 + 0x30944" identifier + number_literal) ))))) )) (argument_list "(local_c0,uVar19,puVar11,0x42)" ( identifier , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000fa6c4;" goto statement_identifier ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);" (assignment_expression "iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(puVar1)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1)" ( identifier )))) ;) (expression_statement "param_3 = &SUB_00000040;" (assignment_expression "param_3 = &SUB_00000040" identifier = (pointer_expression "&SUB_00000040" & identifier)) ;) }) while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) ;) (if_statement "if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" if (parenthesized_expression "(iVar7 - (int)puVar1 == 0x40)" ( (binary_expression "iVar7 - (int)puVar1 == 0x40" (binary_expression "iVar7 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) == number_literal) )) (compound_statement "{\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" { (expression_statement "pbVar3 = pbVar10;" (assignment_expression "pbVar3 = pbVar10" identifier = identifier) ;) (expression_statement "param_2 = pcVar15;" (assignment_expression "param_2 = pcVar15" identifier = identifier) ;) (if_statement "if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }" if (parenthesized_expression "(1 < iVar13)" ( (binary_expression "1 < iVar13" number_literal < identifier) )) (compound_statement "{\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }" { (expression_statement "*pbVar10 = local_30 << 2 | local_2f >> 4;" (assignment_expression "*pbVar10 = local_30 << 2 | local_2f >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "local_30 << 2 | local_2f >> 4" (binary_expression "local_30 << 2" identifier << number_literal) | (binary_expression "local_2f >> 4" identifier >> number_literal))) ;) (expression_statement "pbVar3 = pbVar10 + 1;" (assignment_expression "pbVar3 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }" if (parenthesized_expression "(iVar13 == 3)" ( (binary_expression "iVar13 == 3" identifier == number_literal) )) (compound_statement "{\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }" { (expression_statement "pbVar10[1] = local_2e >> 2 | local_2f << 4;" (assignment_expression "pbVar10[1] = local_2e >> 2 | local_2f << 4" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "local_2e >> 2 | local_2f << 4" (binary_expression "local_2e >> 2" identifier >> number_literal) | (binary_expression "local_2f << 4" identifier << number_literal))) ;) (expression_statement "pbVar3 = pbVar10 + 2;" (assignment_expression "pbVar3 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_000fa510;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar5 = (char)(iVar7 - (int)puVar1);" (assignment_expression "*pcVar5 = (char)(iVar7 - (int)puVar1)" (pointer_expression "*pcVar5" * identifier) = (cast_expression "(char)(iVar7 - (int)puVar1)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(iVar7 - (int)puVar1)" ( (binary_expression "iVar7 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != 4)" ( (binary_expression "iVar13 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar10 = local_30 << 2 | local_2f >> 4;" (assignment_expression "*pbVar10 = local_30 << 2 | local_2f >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "local_30 << 2 | local_2f >> 4" (binary_expression "local_30 << 2" identifier << number_literal) | (binary_expression "local_2f >> 4" identifier >> number_literal))) ;) (expression_statement "pbVar10[1] = local_2f << 4 | local_2e >> 2;" (assignment_expression "pbVar10[1] = local_2f << 4 | local_2e >> 2" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "local_2f << 4 | local_2e >> 2" (binary_expression "local_2f << 4" identifier << number_literal) | (binary_expression "local_2e >> 2" identifier >> number_literal))) ;) (expression_statement "pbVar10[2] = local_2e << 6 | local_2d;" (assignment_expression "pbVar10[2] = local_2e << 6 | local_2d" (subscript_expression "pbVar10[2]" identifier [ number_literal ]) = (binary_expression "local_2e << 6 | local_2d" (binary_expression "local_2e << 6" identifier << number_literal) | identifier)) ;) (expression_statement "pbVar3 = pbVar10 + 3;" (assignment_expression "pbVar3 = pbVar10 + 3" identifier = (binary_expression "pbVar10 + 3" identifier + number_literal)) ;) (expression_statement "param_2 = pcVar15;" (assignment_expression "param_2 = pcVar15" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })) })) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) })) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "char * FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}" (primitive_type "char") (pointer_declarator "* FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)" (* "*") (function_declarator "FUN_000fa4a8(undefined4 *param_1,char *param_2,char *param_3)" (identifier "FUN_000fa4a8") (parameter_list "(undefined4 *param_1,char *param_2,char *param_3)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char *pcVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  int iVar16;\n  undefined *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined1 *local_f8;\n  undefined1 auStack_f4 [52];\n  undefined1 local_c0 [68];\n  char *local_7c;\n  byte *local_78;\n  int local_74;\n  char *local_70;\n  char *local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  undefined *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  char local_30;\n  byte local_2f;\n  byte local_2e;\n  byte local_2d;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;\n  uVar19 = 4;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  pbVar3 = (byte *)*param_1;\nLAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "undefined1 *local_f8;" (type_identifier "undefined1") (pointer_declarator "*local_f8" (* "*") (identifier "local_f8")) (; ";")) (declaration "undefined1 auStack_f4 [52];" (type_identifier "undefined1") (array_declarator "auStack_f4 [52]" (identifier "auStack_f4") ([ "[") (number_literal "52") (] "]")) (; ";")) (declaration "undefined1 local_c0 [68];" (type_identifier "undefined1") (array_declarator "local_c0 [68]" (identifier "local_c0") ([ "[") (number_literal "68") (] "]")) (; ";")) (declaration "char *local_7c;" (primitive_type "char") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "byte *local_78;" (type_identifier "byte") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "char *local_70;" (primitive_type "char") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "char *local_6c;" (primitive_type "char") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined *local_68;" (type_identifier "undefined") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 *local_64;" (type_identifier "undefined4") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "undefined *local_60;" (type_identifier "undefined") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "char local_30;" (primitive_type "char") (identifier "local_30") (; ";")) (declaration "byte local_2f;" (type_identifier "byte") (identifier "local_2f") (; ";")) (declaration "byte local_2e;" (type_identifier "byte") (identifier "local_2e") (; ";")) (declaration "byte local_2d;" (type_identifier "byte") (identifier "local_2d") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;" (assignment_expression "puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698" (identifier "puVar1") (= "=") (identifier "PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698")) (; ";")) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" (identifier "uVar19") (= "=") (number_literal "4")) (; ";")) (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 "pbVar3 = (byte *)*param_1;" (assignment_expression "pbVar3 = (byte *)*param_1" (identifier "pbVar3") (= "=") (cast_expression "(byte *)*param_1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (labeled_statement "LAB_000fa510:\n  do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );" (statement_identifier "LAB_000fa510") (: ":") (do_statement "do {\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  } while( true );" (do "do") (compound_statement "{\n    pbVar10 = pbVar3;\n    iVar13 = 0;\n    pcVar5 = &local_30;\n    pcVar15 = param_2;\n    do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);\n    *pbVar10 = local_30 << 2 | local_2f >> 4;\n    pbVar10[1] = local_2f << 4 | local_2e >> 2;\n    pbVar10[2] = local_2e << 6 | local_2d;\n    pbVar3 = pbVar10 + 3;\n    param_2 = pcVar15;\n  }" ({ "{") (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" (identifier "pbVar10") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = &local_30;" (assignment_expression "pcVar5 = &local_30" (identifier "pcVar5") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "pcVar15 = param_2;" (assignment_expression "pcVar15 = param_2" (identifier "pcVar15") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    } while (iVar13 != 4);" (do "do") (compound_statement "{\n      do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);\n      if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }\n      iVar13 = iVar13 + 1;\n      *pcVar5 = (char)(iVar7 - (int)puVar1);\n      pcVar5 = pcVar5 + 1;\n    }" ({ "{") (do_statement "do {\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      } while (iVar7 == 0);" (do "do") (compound_statement "{\n        if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }\n        pcVar15 = pcVar15 + 1;\n        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);\n        param_3 = &SUB_00000040;\n      }" ({ "{") (if_statement "if (*pcVar15 == '\0') {\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" (if "if") (parenthesized_expression "(*pcVar15 == '\0')" (( "(") (binary_expression "*pcVar15 == '\0'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          *param_1 = pbVar10;\n          iVar7 = *(int *)puVar2;\n          pcVar5 = pcVar15;\n          if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }\n          if (local_2c == iVar7) {\n            return pcVar5;\n          }\n          uVar20 = 0xfa654;\n          iVar9 = local_2c;\n          puVar17 = PTR___stack_chk_fail_0012b0c8;\n          (*(code *)PTR___stack_chk_fail_0012b0c8)();\n          uVar6 = (uint)param_3 & 0x100;\n          local_68 = puVar2;\n          piVar14 = *(int **)(puVar17 + 0x30af8);\n          iVar16 = *(int *)(puVar17 + 0x2fb54);\n          local_5c = 3;\n          local_60 = puVar1;\n          puVar11 = (undefined1 *)0x0;\n          local_58 = 4;\n          local_7c = (char *)*piVar14;\n          local_78 = pbVar10;\n          local_74 = iVar13;\n          local_70 = param_2;\n          local_6c = pcVar15;\n          local_64 = param_1;\n          local_54 = uVar20;\nLAB_000fa6c4:\n          puVar12 = puVar11;\n          if (0x3f < (int)puVar11) goto LAB_000fa758;\n          pbVar3 = *(byte **)(iVar7 + 4);\n          uVar19 = (uint)(char)param_3;\n          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;\n          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);\n          if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }\n          do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );\n        }" ({ "{") (expression_statement "*param_1 = pbVar10;" (assignment_expression "*param_1 = pbVar10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "iVar7 = *(int *)puVar2;" (assignment_expression "iVar7 = *(int *)puVar2" (identifier "iVar7") (= "=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar5 = pcVar15;" (assignment_expression "pcVar5 = pcVar15" (identifier "pcVar5") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if (iVar13 != 0) {\n            pcVar5 = param_2;\n          }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar5 = param_2;\n          }" ({ "{") (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" (identifier "pcVar5") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (if_statement "if (local_2c == iVar7) {\n            return pcVar5;\n          }" (if "if") (parenthesized_expression "(local_2c == iVar7)" (( "(") (binary_expression "local_2c == iVar7" (identifier "local_2c") (== "==") (identifier "iVar7")) () ")")) (compound_statement "{\n            return pcVar5;\n          }" ({ "{") (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}"))) (expression_statement "uVar20 = 0xfa654;" (assignment_expression "uVar20 = 0xfa654" (identifier "uVar20") (= "=") (number_literal "0xfa654")) (; ";")) (expression_statement "iVar9 = local_2c;" (assignment_expression "iVar9 = local_2c" (identifier "iVar9") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar17 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0012b0c8" (identifier "puVar17") (= "=") (identifier "PTR___stack_chk_fail_0012b0c8")) (; ";")) (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 "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = (uint)param_3 & 0x100;" (assignment_expression "uVar6 = (uint)param_3 & 0x100" (identifier "uVar6") (= "=") (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x100"))) (; ";")) (expression_statement "local_68 = puVar2;" (assignment_expression "local_68 = puVar2" (identifier "local_68") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "piVar14 = *(int **)(puVar17 + 0x30af8);" (assignment_expression "piVar14 = *(int **)(puVar17 + 0x30af8)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar17 + 0x30af8)" (* "*") (cast_expression "(int **)(puVar17 + 0x30af8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x30af8)" (( "(") (binary_expression "puVar17 + 0x30af8" (identifier "puVar17") (+ "+") (number_literal "0x30af8")) () ")"))))) (; ";")) (expression_statement "iVar16 = *(int *)(puVar17 + 0x2fb54);" (assignment_expression "iVar16 = *(int *)(puVar17 + 0x2fb54)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar17 + 0x2fb54)" (* "*") (cast_expression "(int *)(puVar17 + 0x2fb54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x2fb54)" (( "(") (binary_expression "puVar17 + 0x2fb54" (identifier "puVar17") (+ "+") (number_literal "0x2fb54")) () ")"))))) (; ";")) (expression_statement "local_5c = 3;" (assignment_expression "local_5c = 3" (identifier "local_5c") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_60 = puVar1;" (assignment_expression "local_60 = puVar1" (identifier "local_60") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar11 = (undefined1 *)0x0;" (assignment_expression "puVar11 = (undefined1 *)0x0" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" (identifier "local_58") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_7c = (char *)*piVar14;" (assignment_expression "local_7c = (char *)*piVar14" (identifier "local_7c") (= "=") (cast_expression "(char *)*piVar14" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (expression_statement "local_78 = pbVar10;" (assignment_expression "local_78 = pbVar10" (identifier "local_78") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "local_74 = iVar13;" (assignment_expression "local_74 = iVar13" (identifier "local_74") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" (identifier "local_70") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_6c = pcVar15;" (assignment_expression "local_6c = pcVar15" (identifier "local_6c") (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "local_64 = param_1;" (assignment_expression "local_64 = param_1" (identifier "local_64") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_54 = uVar20;" (assignment_expression "local_54 = uVar20" (identifier "local_54") (= "=") (identifier "uVar20")) (; ";")) (labeled_statement "LAB_000fa6c4:\n          puVar12 = puVar11;" (statement_identifier "LAB_000fa6c4") (: ":") (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" (identifier "puVar12") (= "=") (identifier "puVar11")) (; ";"))) (if_statement "if (0x3f < (int)puVar11) goto LAB_000fa758;" (if "if") (parenthesized_expression "(0x3f < (int)puVar11)" (( "(") (binary_expression "0x3f < (int)puVar11" (number_literal "0x3f") (< "<") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11"))) () ")")) (goto_statement "goto LAB_000fa758;" (goto "goto") (statement_identifier "LAB_000fa758") (; ";"))) (expression_statement "pbVar3 = *(byte **)(iVar7 + 4);" (assignment_expression "pbVar3 = *(byte **)(iVar7 + 4)" (identifier "pbVar3") (= "=") (pointer_expression "*(byte **)(iVar7 + 4)" (* "*") (cast_expression "(byte **)(iVar7 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar19 = (uint)(char)param_3;" (assignment_expression "uVar19 = (uint)(char)param_3" (identifier "uVar19") (= "=") (cast_expression "(uint)(char)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_3")))) (; ";")) (if_statement "if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;" (if "if") (parenthesized_expression "(pbVar3 < *(byte **)(iVar7 + 8))" (( "(") (binary_expression "pbVar3 < *(byte **)(iVar7 + 8)" (identifier "pbVar3") (< "<") (pointer_expression "*(byte **)(iVar7 + 8)" (* "*") (cast_expression "(byte **)(iVar7 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) () ")")) (goto_statement "goto LAB_000fa7fc;" (goto "goto") (statement_identifier "LAB_000fa7fc") (; ";"))) (expression_statement "uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);" (assignment_expression "uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(puVar17 + 0x30798))(iVar7)" (parenthesized_expression "(**(code **)(puVar17 + 0x30798))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x30798)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x30798)" (* "*") (cast_expression "(code **)(puVar17 + 0x30798)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x30798)" (( "(") (binary_expression "puVar17 + 0x30798" (identifier "puVar17") (+ "+") (number_literal "0x30798")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (uVar19 != uVar4) {\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" (if "if") (parenthesized_expression "(uVar19 != uVar4)" (( "(") (binary_expression "uVar19 != uVar4" (identifier "uVar19") (!= "!=") (identifier "uVar4")) () ")")) (compound_statement "{\n            if (uVar4 != 0xffffffff) goto LAB_000fa748;\n            goto LAB_000fa838;\n          }" ({ "{") (if_statement "if (uVar4 != 0xffffffff) goto LAB_000fa748;" (if "if") (parenthesized_expression "(uVar4 != 0xffffffff)" (( "(") (binary_expression "uVar4 != 0xffffffff" (identifier "uVar4") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_000fa748;" (goto "goto") (statement_identifier "LAB_000fa748") (; ";"))) (goto_statement "goto LAB_000fa838;" (goto "goto") (statement_identifier "LAB_000fa838") (; ";")) (} "}"))) (do_statement "do {\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          } while( true );" (do "do") (compound_statement "{\n            if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }\n            while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }\n          }" ({ "{") (if_statement "if (puVar11 != (undefined1 *)0x0) {\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);\n              local_c0[(int)puVar11] = 0;\n              if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }\n            }" ({ "{") (labeled_statement "LAB_000fa838:\n              param_3 = (char *)((uint)param_3 & 0x100);" (statement_identifier "LAB_000fa838") (: ":") (expression_statement "param_3 = (char *)((uint)param_3 & 0x100);" (assignment_expression "param_3 = (char *)((uint)param_3 & 0x100)" (identifier "param_3") (= "=") (cast_expression "(char *)((uint)param_3 & 0x100)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_3 & 0x100)" (( "(") (binary_expression "(uint)param_3 & 0x100" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x100")) () ")")))) (; ";"))) (expression_statement "local_c0[(int)puVar11] = 0;" (assignment_expression "local_c0[(int)puVar11] = 0" (subscript_expression "local_c0[(int)puVar11]" (identifier "local_c0") ([ "[") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)) {\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }" (if "if") (parenthesized_expression "((param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0))" (( "(") (binary_expression "(param_3 == (char *)0x0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)" (parenthesized_expression "(param_3 == (char *)0x0)" (( "(") (binary_expression "param_3 == (char *)0x0" (identifier "param_3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0)" (( "(") (comma_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),\n                 puVar11 = local_c0, iVar13 != 0" (assignment_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(puVar17 + 0x30b74))\n                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" (parenthesized_expression "(**(code **)(puVar17 + 0x30b74))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x30b74)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x30b74)" (* "*") (cast_expression "(code **)(puVar17 + 0x30b74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x30b74)" (( "(") (binary_expression "puVar17 + 0x30b74" (identifier "puVar17") (+ "+") (number_literal "0x30b74")) () ")"))))) () ")")) (argument_list "(local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98)" (( "(") (identifier "local_c0") (, ",") (binary_expression "*(int *)(puVar17 + 0x2fb54) + -0xe98" (pointer_expression "*(int *)(puVar17 + 0x2fb54)" (* "*") (cast_expression "(int *)(puVar17 + 0x2fb54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x2fb54)" (( "(") (binary_expression "puVar17 + 0x2fb54" (identifier "puVar17") (+ "+") (number_literal "0x2fb54")) () ")")))) (+ "+") (number_literal "-0xe98")) () ")")))) (, ",") (comma_expression "puVar11 = local_c0, iVar13 != 0" (assignment_expression "puVar11 = local_c0" (identifier "puVar11") (= "=") (identifier "local_c0")) (, ",") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n                puVar11 = auStack_f4;\n                local_f8 = puVar11;\n                param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);\n                if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }\n              }" ({ "{") (expression_statement "puVar11 = auStack_f4;" (assignment_expression "puVar11 = auStack_f4" (identifier "puVar11") (= "=") (identifier "auStack_f4")) (; ";")) (expression_statement "local_f8 = puVar11;" (assignment_expression "local_f8 = puVar11" (identifier "local_f8") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0);" (assignment_expression "param_3 = (char *)FUN_000fa4a8(&local_f8,local_c0)" (identifier "param_3") (= "=") (cast_expression "(char *)FUN_000fa4a8(&local_f8,local_c0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000fa4a8(&local_f8,local_c0)" (identifier "FUN_000fa4a8") (argument_list "(&local_f8,local_c0)" (( "(") (pointer_expression "&local_f8" (& "&") (identifier "local_f8")) (, ",") (identifier "local_c0") () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);" (call_expression "(**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9)" (parenthesized_expression "(**(code **)(puVar17 + 0x309e8))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x309e8)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x309e8)" (* "*") (cast_expression "(code **)(puVar17 + 0x309e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x309e8)" (( "(") (binary_expression "puVar17 + 0x309e8" (identifier "puVar17") (+ "+") (number_literal "0x309e8")) () ")"))))) () ")")) (argument_list "(puVar11,(int)local_f8 - (int)puVar11,1,iVar9)" (( "(") (identifier "puVar11") (, ",") (binary_expression "(int)local_f8 - (int)puVar11" (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8")) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11"))) (, ",") (number_literal "1") (, ",") (identifier "iVar9") () ")"))) (; ";")) (if_statement "if (*param_3 != '\0') {\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }" (if "if") (parenthesized_expression "(*param_3 != '\0')" (( "(") (binary_expression "*param_3 != '\0'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  pcVar18 = *(code **)(puVar17 + 0x2fb90);\n                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);\n                  (*pcVar18)();\n                  (**(code **)(pcVar18 + 0x2f988))();\n                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();\n                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }\n                  return pcVar5;\n                }" ({ "{") (expression_statement "pcVar18 = *(code **)(puVar17 + 0x2fb90);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x2fb90)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(puVar17 + 0x2fb90)" (* "*") (cast_expression "(code **)(puVar17 + 0x2fb90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x2fb90)" (( "(") (binary_expression "puVar17 + 0x2fb90" (identifier "puVar17") (+ "+") (number_literal "0x2fb90")) () ")"))))) (; ";")) (expression_statement "puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + 0x2fb54) + -0xeb0)" (( "(") (binary_expression "*(int *)(puVar17 + 0x2fb54) + -0xeb0" (pointer_expression "*(int *)(puVar17 + 0x2fb54)" (* "*") (cast_expression "(int *)(puVar17 + 0x2fb54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x2fb54)" (( "(") (binary_expression "puVar17 + 0x2fb54" (identifier "puVar17") (+ "+") (number_literal "0x2fb54")) () ")")))) (+ "+") (number_literal "-0xeb0")) () ")")))) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar18 + 0x2f988))();" (call_expression "(**(code **)(pcVar18 + 0x2f988))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x2f988))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x2f988)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x2f988)" (* "*") (cast_expression "(code **)(pcVar18 + 0x2f988)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x2f988)" (( "(") (binary_expression "pcVar18 + 0x2f988" (identifier "pcVar18") (+ "+") (number_literal "0x2f988")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))()" (identifier "pcVar5") (= "=") (cast_expression "(char *)(**(code **)(pcVar18 + 0x30588))()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar18 + 0x30588))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x30588))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x30588)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x30588)" (* "*") (cast_expression "(code **)(pcVar18 + 0x30588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x30588)" (( "(") (binary_expression "pcVar18 + 0x30588" (identifier "pcVar18") (+ "+") (number_literal "0x30588")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }" (if "if") (parenthesized_expression "((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0))" (( "(") (binary_expression "(-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)" (parenthesized_expression "(-1 < (int)pcVar5)" (( "(") (binary_expression "-1 < (int)pcVar5" (number_literal "-1") (< "<") (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);\n                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);\n                    return pcVar5;\n                  }" ({ "{") (expression_statement "(**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);" (call_expression "(**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8)" (parenthesized_expression "(**(code **)(pcVar18 + 0x307bc))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x307bc)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x307bc)" (* "*") (cast_expression "(code **)(pcVar18 + 0x307bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x307bc)" (( "(") (binary_expression "pcVar18 + 0x307bc" (identifier "pcVar18") (+ "+") (number_literal "0x307bc")) () ")"))))) () ")")) (argument_list "(*puVar8,puVar8)" (( "(") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (, ",") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(**(code **)(pcVar18 + 0x308c4))(0x6f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar18 + 0x308c4))(0x6f)" (parenthesized_expression "(**(code **)(pcVar18 + 0x308c4))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x308c4)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x308c4)" (* "*") (cast_expression "(code **)(pcVar18 + 0x308c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x308c4)" (( "(") (binary_expression "pcVar18 + 0x308c4" (identifier "pcVar18") (+ "+") (number_literal "0x308c4")) () ")"))))) () ")")) (argument_list "(0x6f)" (( "(") (number_literal "0x6f") () ")"))))) (; ";")) (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}"))) (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}"))) (} "}"))) (} "}"))) (while_statement "while( true ) {\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              pcVar5 = (char *)*piVar14;\n              if (local_7c == pcVar5) {\n                return pcVar5;\n              }\n              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();\nLAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;\n              uVar4 = (uint)*pbVar3;\n              puVar12 = puVar11;\n              if (uVar19 == uVar4) break;\nLAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }\nLAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);\n              local_c0[(int)puVar12] = 0;\n              if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }\n            }" ({ "{") (expression_statement "pcVar5 = (char *)*piVar14;" (assignment_expression "pcVar5 = (char *)*piVar14" (identifier "pcVar5") (= "=") (cast_expression "(char *)*piVar14" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (if_statement "if (local_7c == pcVar5) {\n                return pcVar5;\n              }" (if "if") (parenthesized_expression "(local_7c == pcVar5)" (( "(") (binary_expression "local_7c == pcVar5" (identifier "local_7c") (== "==") (identifier "pcVar5")) () ")")) (compound_statement "{\n                return pcVar5;\n              }" ({ "{") (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}"))) (expression_statement "pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();" (assignment_expression "pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))()" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(**(code **)(puVar17 + 0x30a74))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar17 + 0x30a74))()" (parenthesized_expression "(**(code **)(puVar17 + 0x30a74))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x30a74)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x30a74)" (* "*") (cast_expression "(code **)(puVar17 + 0x30a74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x30a74)" (( "(") (binary_expression "puVar17 + 0x30a74" (identifier "puVar17") (+ "+") (number_literal "0x30a74")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_000fa7fc:\n              *(byte **)(iVar7 + 4) = pbVar3 + 1;" (statement_identifier "LAB_000fa7fc") (: ":") (expression_statement "*(byte **)(iVar7 + 4) = pbVar3 + 1;" (assignment_expression "*(byte **)(iVar7 + 4) = pbVar3 + 1" (pointer_expression "*(byte **)(iVar7 + 4)" (* "*") (cast_expression "(byte **)(iVar7 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "pbVar3 + 1" (identifier "pbVar3") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar4 = (uint)*pbVar3;" (assignment_expression "uVar4 = (uint)*pbVar3" (identifier "uVar4") (= "=") (binary_expression "(uint)*pbVar3" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar3"))) (; ";")) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" (identifier "puVar12") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (uVar19 == uVar4) break;" (if "if") (parenthesized_expression "(uVar19 == uVar4)" (( "(") (binary_expression "uVar19 == uVar4" (identifier "uVar19") (== "==") (identifier "uVar4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000fa748:\n              if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" (statement_identifier "LAB_000fa748") (: ":") (if_statement "if (0x20 < (int)uVar4) {\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" (if "if") (parenthesized_expression "(0x20 < (int)uVar4)" (( "(") (binary_expression "0x20 < (int)uVar4" (number_literal "0x20") (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n                puVar11 = puVar12 + 1;\n                local_c0[(int)puVar12] = (char)uVar4;\n                goto LAB_000fa6c4;\n              }" ({ "{") (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c0[(int)puVar12] = (char)uVar4;" (assignment_expression "local_c0[(int)puVar12] = (char)uVar4" (subscript_expression "local_c0[(int)puVar12]" (identifier "local_c0") ([ "[") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (] "]")) (= "=") (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4"))) (; ";")) (goto_statement "goto LAB_000fa6c4;" (goto "goto") (statement_identifier "LAB_000fa6c4") (; ";")) (} "}")))) (labeled_statement "LAB_000fa758:\n              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);" (statement_identifier "LAB_000fa758") (: ":") (expression_statement "puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);" (assignment_expression "puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&local_78 + (int)puVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&local_78 + (int)puVar12)" (( "(") (binary_expression "(int)&local_78 + (int)puVar12" (cast_expression "(int)&local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (+ "+") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12"))) () ")")))) (; ";"))) (expression_statement "local_c0[(int)puVar12] = 0;" (assignment_expression "local_c0[(int)puVar12] = 0" (subscript_expression "local_c0[(int)puVar12]" (identifier "local_c0") ([ "[") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))\n              {\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }" (if "if") (parenthesized_expression "((uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))" (( "(") (binary_expression "(uVar6 == 0) ||\n                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0)" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0)" (( "(") (comma_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0" (assignment_expression "iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98)" (parenthesized_expression "(**(code **)(puVar17 + 0x30b74))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x30b74)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x30b74)" (* "*") (cast_expression "(code **)(puVar17 + 0x30b74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x30b74)" (( "(") (binary_expression "puVar17 + 0x30b74" (identifier "puVar17") (+ "+") (number_literal "0x30b74")) () ")"))))) () ")")) (argument_list "(local_c0,iVar16 + -0xe98)" (( "(") (identifier "local_c0") (, ",") (binary_expression "iVar16 + -0xe98" (identifier "iVar16") (+ "+") (number_literal "-0xe98")) () ")")))) (, ",") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                local_f8 = auStack_f4;\n                uVar19 = FUN_000fa4a8(&local_f8,local_c0);\n                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;\n                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);\n                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);\n                goto LAB_000fa6c4;\n              }" ({ "{") (expression_statement "local_f8 = auStack_f4;" (assignment_expression "local_f8 = auStack_f4" (identifier "local_f8") (= "=") (identifier "auStack_f4")) (; ";")) (expression_statement "uVar19 = FUN_000fa4a8(&local_f8,local_c0);" (assignment_expression "uVar19 = FUN_000fa4a8(&local_f8,local_c0)" (identifier "uVar19") (= "=") (call_expression "FUN_000fa4a8(&local_f8,local_c0)" (identifier "FUN_000fa4a8") (argument_list "(&local_f8,local_c0)" (( "(") (pointer_expression "&local_f8" (& "&") (identifier "local_f8")) (, ",") (identifier "local_c0") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)\n                ;" (call_expression "(**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)" (parenthesized_expression "(**(code **)(puVar17 + 0x309e8))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x309e8)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x309e8)" (* "*") (cast_expression "(code **)(puVar17 + 0x309e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x309e8)" (( "(") (binary_expression "puVar17 + 0x309e8" (identifier "puVar17") (+ "+") (number_literal "0x309e8")) () ")"))))) () ")")) (argument_list "(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)" (( "(") (identifier "auStack_f4") (, ",") (binary_expression "(int)local_f8 - (int)auStack_f4" (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8")) (- "-") (cast_expression "(int)auStack_f4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_f4"))) (, ",") (number_literal "1") (, ",") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);" (assignment_expression "puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar17 + 0x308e8))(uVar19)" (parenthesized_expression "(**(code **)(puVar17 + 0x308e8))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x308e8)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x308e8)" (* "*") (cast_expression "(code **)(puVar17 + 0x308e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x308e8)" (( "(") (binary_expression "puVar17 + 0x308e8" (identifier "puVar17") (+ "+") (number_literal "0x308e8")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);" (call_expression "(**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42)" (parenthesized_expression "(**(code **)(puVar17 + 0x30944))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x30944)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x30944)" (* "*") (cast_expression "(code **)(puVar17 + 0x30944)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x30944)" (( "(") (binary_expression "puVar17 + 0x30944" (identifier "puVar17") (+ "+") (number_literal "0x30944")) () ")"))))) () ")")) (argument_list "(local_c0,uVar19,puVar11,0x42)" (( "(") (identifier "local_c0") (, ",") (identifier "uVar19") (, ",") (identifier "puVar11") (, ",") (number_literal "0x42") () ")"))) (; ";")) (goto_statement "goto LAB_000fa6c4;" (goto "goto") (statement_identifier "LAB_000fa6c4") (; ";")) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);" (assignment_expression "iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strchr_0012af54)(puVar1)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" (( "(") (pointer_expression "*(code *)PTR_strchr_0012af54" (* "*") (cast_expression "(code *)PTR_strchr_0012af54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_0012af54"))) () ")")) (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")")))) (; ";")) (expression_statement "param_3 = &SUB_00000040;" (assignment_expression "param_3 = &SUB_00000040" (identifier "param_3") (= "=") (pointer_expression "&SUB_00000040" (& "&") (identifier "SUB_00000040"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (; ";")) (if_statement "if (iVar7 - (int)puVar1 == 0x40) {\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" (if "if") (parenthesized_expression "(iVar7 - (int)puVar1 == 0x40)" (( "(") (binary_expression "iVar7 - (int)puVar1 == 0x40" (binary_expression "iVar7 - (int)puVar1" (identifier "iVar7") (- "-") (cast_expression "(int)puVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar1"))) (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n        pbVar3 = pbVar10;\n        param_2 = pcVar15;\n        if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }\n        goto LAB_000fa510;\n      }" ({ "{") (expression_statement "pbVar3 = pbVar10;" (assignment_expression "pbVar3 = pbVar10" (identifier "pbVar3") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "param_2 = pcVar15;" (assignment_expression "param_2 = pcVar15" (identifier "param_2") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if (1 < iVar13) {\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }" (if "if") (parenthesized_expression "(1 < iVar13)" (( "(") (binary_expression "1 < iVar13" (number_literal "1") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n          *pbVar10 = local_30 << 2 | local_2f >> 4;\n          pbVar3 = pbVar10 + 1;\n          if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }\n        }" ({ "{") (expression_statement "*pbVar10 = local_30 << 2 | local_2f >> 4;" (assignment_expression "*pbVar10 = local_30 << 2 | local_2f >> 4" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "local_30 << 2 | local_2f >> 4" (binary_expression "local_30 << 2" (identifier "local_30") (<< "<<") (number_literal "2")) (| "|") (binary_expression "local_2f >> 4" (identifier "local_2f") (>> ">>") (number_literal "4")))) (; ";")) (expression_statement "pbVar3 = pbVar10 + 1;" (assignment_expression "pbVar3 = pbVar10 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar13 == 3) {\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }" (if "if") (parenthesized_expression "(iVar13 == 3)" (( "(") (binary_expression "iVar13 == 3" (identifier "iVar13") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            pbVar10[1] = local_2e >> 2 | local_2f << 4;\n            pbVar3 = pbVar10 + 2;\n          }" ({ "{") (expression_statement "pbVar10[1] = local_2e >> 2 | local_2f << 4;" (assignment_expression "pbVar10[1] = local_2e >> 2 | local_2f << 4" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "local_2e >> 2 | local_2f << 4" (binary_expression "local_2e >> 2" (identifier "local_2e") (>> ">>") (number_literal "2")) (| "|") (binary_expression "local_2f << 4" (identifier "local_2f") (<< "<<") (number_literal "4")))) (; ";")) (expression_statement "pbVar3 = pbVar10 + 2;" (assignment_expression "pbVar3 = pbVar10 + 2" (identifier "pbVar3") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000fa510;" (goto "goto") (statement_identifier "LAB_000fa510") (; ";")) (} "}"))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar5 = (char)(iVar7 - (int)puVar1);" (assignment_expression "*pcVar5 = (char)(iVar7 - (int)puVar1)" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (= "=") (cast_expression "(char)(iVar7 - (int)puVar1)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(iVar7 - (int)puVar1)" (( "(") (binary_expression "iVar7 - (int)puVar1" (identifier "iVar7") (- "-") (cast_expression "(int)puVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar1"))) () ")")))) (; ";")) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != 4)" (( "(") (binary_expression "iVar13 != 4" (identifier "iVar13") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "*pbVar10 = local_30 << 2 | local_2f >> 4;" (assignment_expression "*pbVar10 = local_30 << 2 | local_2f >> 4" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "local_30 << 2 | local_2f >> 4" (binary_expression "local_30 << 2" (identifier "local_30") (<< "<<") (number_literal "2")) (| "|") (binary_expression "local_2f >> 4" (identifier "local_2f") (>> ">>") (number_literal "4")))) (; ";")) (expression_statement "pbVar10[1] = local_2f << 4 | local_2e >> 2;" (assignment_expression "pbVar10[1] = local_2f << 4 | local_2e >> 2" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "local_2f << 4 | local_2e >> 2" (binary_expression "local_2f << 4" (identifier "local_2f") (<< "<<") (number_literal "4")) (| "|") (binary_expression "local_2e >> 2" (identifier "local_2e") (>> ">>") (number_literal "2")))) (; ";")) (expression_statement "pbVar10[2] = local_2e << 6 | local_2d;" (assignment_expression "pbVar10[2] = local_2e << 6 | local_2d" (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_2e << 6 | local_2d" (binary_expression "local_2e << 6" (identifier "local_2e") (<< "<<") (number_literal "6")) (| "|") (identifier "local_2d"))) (; ";")) (expression_statement "pbVar3 = pbVar10 + 3;" (assignment_expression "pbVar3 = pbVar10 + 3" (identifier "pbVar3") (= "=") (binary_expression "pbVar10 + 3" (identifier "pbVar10") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "param_2 = pcVar15;" (assignment_expression "param_2 = pcVar15" (identifier "param_2") (= "=") (identifier "pcVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (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 (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))) (return_statement (identifier)))) (return_statement (identifier)))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) (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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal)))) (goto_statement label: (statement_identifier))))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) 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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (true)))))))

/* WARNING: Removing unreachable block (ram,0x000fa950) */

char * MASKED(undefined4 *param_1,char *param_2,char *param_3)

{
  undefined *puVar1;
  undefined *puVar2;
  byte *pbVar3;
  uint uVar4;
  char *pcVar5;
  uint uVar6;
  int iVar7;
  undefined4 *puVar8;
  int iVar9;
  byte *pbVar10;
  undefined1 *puVar11;
  undefined1 *puVar12;
  int iVar13;
  int *piVar14;
  char *pcVar15;
  int iVar16;
  undefined *puVar17;
  code *pcVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined1 *local_f8;
  undefined1 auStack_f4 [52];
  undefined1 local_c0 [68];
  char *local_7c;
  byte *local_78;
  int local_74;
  char *local_70;
  char *local_6c;
  undefined *local_68;
  undefined4 *local_64;
  undefined *local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  char local_30;
  byte local_2f;
  byte local_2e;
  byte local_2d;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  puVar1 = PTR_s_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef_0012a698;
  uVar19 = 4;
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  pbVar3 = (byte *)*param_1;
LAB_000fa510:
  do {
    pbVar10 = pbVar3;
    iVar13 = 0;
    pcVar5 = &local_30;
    pcVar15 = param_2;
    do {
      do {
        if (*pcVar15 == '\0') {
          *param_1 = pbVar10;
          iVar7 = *(int *)puVar2;
          pcVar5 = pcVar15;
          if (iVar13 != 0) {
            pcVar5 = param_2;
          }
          if (local_2c == iVar7) {
            return pcVar5;
          }
          uVar20 = 0xfa654;
          iVar9 = local_2c;
          puVar17 = PTR___stack_chk_fail_0012b0c8;
          (*(code *)PTR___stack_chk_fail_0012b0c8)();
          uVar6 = (uint)param_3 & 0x100;
          local_68 = puVar2;
          piVar14 = *(int **)(puVar17 + 0x30af8);
          iVar16 = *(int *)(puVar17 + 0x2fb54);
          local_5c = 3;
          local_60 = puVar1;
          puVar11 = (undefined1 *)0x0;
          local_58 = 4;
          local_7c = (char *)*piVar14;
          local_78 = pbVar10;
          local_74 = iVar13;
          local_70 = param_2;
          local_6c = pcVar15;
          local_64 = param_1;
          local_54 = uVar20;
LAB_000fa6c4:
          puVar12 = puVar11;
          if (0x3f < (int)puVar11) goto LAB_000fa758;
          pbVar3 = *(byte **)(iVar7 + 4);
          uVar19 = (uint)(char)param_3;
          if (pbVar3 < *(byte **)(iVar7 + 8)) goto LAB_000fa7fc;
          uVar4 = (**(code **)(puVar17 + 0x30798))(iVar7);
          if (uVar19 != uVar4) {
            if (uVar4 != 0xffffffff) goto LAB_000fa748;
            goto LAB_000fa838;
          }
          do {
            if (puVar11 != (undefined1 *)0x0) {
LAB_000fa838:
              param_3 = (char *)((uint)param_3 & 0x100);
              local_c0[(int)puVar11] = 0;
              if ((param_3 == (char *)0x0) ||
                 (iVar13 = (**(code **)(puVar17 + 0x30b74))
                                     (local_c0,*(int *)(puVar17 + 0x2fb54) + -0xe98),
                 puVar11 = local_c0, iVar13 != 0)) {
                puVar11 = auStack_f4;
                local_f8 = puVar11;
                param_3 = (char *)MASKED(&local_f8,local_c0);
                (**(code **)(puVar17 + 0x309e8))(puVar11,(int)local_f8 - (int)puVar11,1,iVar9);
                if (*param_3 != '\0') {
                  pcVar18 = *(code **)(puVar17 + 0x2fb90);
                  puVar8 = (undefined4 *)(*(int *)(puVar17 + 0x2fb54) + -0xeb0);
                  (*pcVar18)();
                  (**(code **)(pcVar18 + 0x2f988))();
                  pcVar5 = (char *)(**(code **)(pcVar18 + 0x30588))();
                  if ((-1 < (int)pcVar5) && (pcVar5 == (char *)0x0)) {
                    (**(code **)(pcVar18 + 0x307bc))(*puVar8,puVar8);
                    pcVar5 = (char *)(**(code **)(pcVar18 + 0x308c4))(0x6f);
                    return pcVar5;
                  }
                  return pcVar5;
                }
              }
            }
            while( true ) {
              pcVar5 = (char *)*piVar14;
              if (local_7c == pcVar5) {
                return pcVar5;
              }
              pbVar3 = (byte *)(**(code **)(puVar17 + 0x30a74))();
LAB_000fa7fc:
              *(byte **)(iVar7 + 4) = pbVar3 + 1;
              uVar4 = (uint)*pbVar3;
              puVar12 = puVar11;
              if (uVar19 == uVar4) break;
LAB_000fa748:
              if (0x20 < (int)uVar4) {
                puVar11 = puVar12 + 1;
                local_c0[(int)puVar12] = (char)uVar4;
                goto LAB_000fa6c4;
              }
LAB_000fa758:
              puVar11 = (undefined1 *)((int)&local_78 + (int)puVar12);
              local_c0[(int)puVar12] = 0;
              if ((uVar6 == 0) ||
                 (iVar13 = (**(code **)(puVar17 + 0x30b74))(local_c0,iVar16 + -0xe98), iVar13 != 0))
              {
                local_f8 = auStack_f4;
                uVar19 = MASKED(&local_f8,local_c0);
                (**(code **)(puVar17 + 0x309e8))(auStack_f4,(int)local_f8 - (int)auStack_f4,1,iVar9)
                ;
                puVar11 = (undefined1 *)(**(code **)(puVar17 + 0x308e8))(uVar19);
                (**(code **)(puVar17 + 0x30944))(local_c0,uVar19,puVar11,0x42);
                goto LAB_000fa6c4;
              }
            }
          } while( true );
        }
        pcVar15 = pcVar15 + 1;
        iVar7 = (*(code *)PTR_strchr_0012af54)(puVar1);
        param_3 = &SUB_00000040;
      } while (iVar7 == 0);
      if (iVar7 - (int)puVar1 == 0x40) {
        pbVar3 = pbVar10;
        param_2 = pcVar15;
        if (1 < iVar13) {
          *pbVar10 = local_30 << 2 | local_2f >> 4;
          pbVar3 = pbVar10 + 1;
          if (iVar13 == 3) {
            pbVar10[1] = local_2e >> 2 | local_2f << 4;
            pbVar3 = pbVar10 + 2;
          }
        }
        goto LAB_000fa510;
      }
      iVar13 = iVar13 + 1;
      *pcVar5 = (char)(iVar7 - (int)puVar1);
      pcVar5 = pcVar5 + 1;
    } while (iVar13 != 4);
    *pbVar10 = local_30 << 2 | local_2f >> 4;
    pbVar10[1] = local_2f << 4 | local_2e >> 2;
    pbVar10[2] = local_2e << 6 | local_2d;
    pbVar3 = pbVar10 + 3;
    param_2 = pcVar15;
  } while( true );
}

