
char * xmalloc_optname_optval(uint8_t *option,dhcp_optflag *optflag,char *opt_name)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  size_t sVar7;
  char *pre;
  char *pcVar8;
  byte *pbVar9;
  uint32_t *puVar10;
  byte *pbVar11;
  uint uVar12;
  uint uVar13;
  ushort *ip;
  byte *pbVar14;
  byte *pbVar15;
  long in_FS_OFFSET;
  uint32_t nip;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  bVar1 = option[-1];
  uVar12 = (uint)bVar1;
  bVar3 = optflag->flags & 0xf;
  uVar13 = (uint)bVar3;
  bVar2 = dhcp_option_lengths[(int)uVar13];
  sVar7 = strlen(opt_name);
  pre = (char *)xmalloc(sVar7 + 2 +
                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])
                       );
  iVar4 = __sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name);
  if (bVar2 <= bVar1) {
    pbVar11 = (byte *)(pre + iVar4);
    pcVar8 = "%ld";
    if (uVar13 == 7) {
      pcVar8 = "%lu";
    }
    do {
      switch(bVar3) {
      case 1:
      case 2:
        iVar4 = sprint_nip((char *)pbVar11,"",option);
        pbVar11 = pbVar11 + iVar4;
        if (bVar3 != 1) {
          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));
          pbVar11 = pbVar11 + iVar4;
        }
        break;
      case 3:
      case 4:
        goto switchD_0013efd8_caseD_3;
      case 5:
        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);
        pbVar11 = pbVar11 + iVar4;
        break;
      case 6:
        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,
                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);
        pbVar11 = pbVar11 + iVar4;
        break;
      case 7:
      case 8:
        uVar13 = *(uint *)option;
        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,
                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |
                              uVar13 << 0x18);
        pbVar11 = pbVar11 + iVar4;
        break;
      case 10:
        if ((int)uVar12 < 5) goto LAB_0013f3aa;
        uVar13 = (uint)(byte)*(uint *)option;
        pbVar14 = (byte *)((long)option + 1);
        pcVar8 = "";
        if (0x20 < uVar13) goto LAB_0013f3aa;
        goto LAB_0013f14a;
      case 0xb:
        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&
           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {
          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);
          pbVar11 = pbVar11 + iVar4;
          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,
                                *(byte *)((long)option + 1));
          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));
          pbVar11 = pbVar11 + iVar4 + iVar6;
          ip = (ushort *)((long)option + 0x12);
          do {
            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);
            pbVar11 = pbVar11 + iVar4;
            ip = ip + 2;
          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);
        }
        goto LAB_0013f3aa;
      case 0xc:
        pcVar8 = dname_dec(option,uVar12,pre);
        if (pcVar8 != (char *)0x0) {
          free(pre);
          pre = pcVar8;
        }
        goto LAB_0013f3aa;
      case 0xd:
        pbVar14 = (byte *)((long)option + 1);
        if ((byte)*(uint *)option == 0) {
          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);
          if (pcVar8 != (char *)0x0) {
            free(pre);
            pre = pcVar8;
          }
        }
        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {
          pcVar8 = "";
          do {
            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);
            pbVar11 = pbVar11 + iVar4;
            pbVar14 = pbVar14 + 4;
            pcVar8 = " ";
          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));
        }
        goto LAB_0013f3aa;
      }
      uVar12 = uVar12 - bVar2;
      if ((int)uVar12 < (int)(uint)bVar2) break;
      option = (uint8_t *)((long)option + (ulong)bVar2);
      *pbVar11 = 0x20;
      pbVar11[1] = 0;
      pbVar11 = pbVar11 + 1;
    } while( true );
  }
  goto LAB_0013f3aa;
  while( true ) {
    iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);
    pbVar11 = pbVar11 + iVar6;
    iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);
    iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);
    pbVar11 = pbVar11 + iVar6 + iVar5;
    uVar12 = iVar4 - 4;
    if ((int)uVar12 < 5) break;
    pbVar14 = pbVar15 + 5;
    uVar13 = (uint)pbVar15[4];
    pcVar8 = " ";
    if (0x20 < pbVar15[4]) break;
LAB_0013f14a:
    iVar4 = uVar12 - 1;
    nip = 0;
    uVar12 = uVar13 + 7 >> 3;
    pbVar15 = pbVar14;
    if (uVar12 != 0) {
      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;
      puVar10 = &nip;
      do {
        pbVar9 = pbVar14 + 1;
        *(byte *)puVar10 = *pbVar14;
        pbVar14 = pbVar9;
        puVar10 = (uint32_t *)((long)puVar10 + 1);
      } while (pbVar15 != pbVar9);
      iVar4 = iVar4 - uVar12;
    }
    if (iVar4 < 4) break;
  }
  goto LAB_0013f3aa;
LAB_0013f397:
  if ((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))
  goto LAB_0013f3aa;
  goto LAB_0013f0e7;
switchD_0013efd8_caseD_3:
  sVar7 = (size_t)(int)uVar12;
  memcpy(pbVar11,option,sVar7);
  pbVar11[sVar7] = 0;
  pbVar14 = pbVar11;
  if (bVar3 == 4) {
LAB_0013f0e7:
    if (*pbVar14 != 0x2d) {
      do {
        bVar1 = *pbVar14;
        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {
          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;
          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;
        }
        pbVar14 = pbVar14 + 1;
      } while( true );
    }
    safe_strncpy((char *)pbVar11,"bad",sVar7);
  }
LAB_0013f3aa:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return pre;
}



void * FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  size_t sVar7;
  void *__ptr;
  char *pcVar8;
  byte *pbVar9;
  void *pvVar10;
  byte *pbVar11;
  byte *pbVar12;
  uint uVar13;
  undefined *puVar14;
  uint uVar15;
  ushort *puVar16;
  byte *pbVar17;
  byte *pbVar18;
  long in_FS_OFFSET;
  byte local_44 [4];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  bVar1 = *(byte *)((long)param_1 + -1);
  uVar13 = (uint)bVar1;
  bVar3 = *param_2 & 0xf;
  uVar15 = (uint)bVar3;
  bVar2 = (&DAT_001bb7c1)[(int)uVar15];
  sVar7 = strlen(param_3);
  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +
                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *
                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));
  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);
  if (bVar2 <= bVar1) {
    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);
    pcVar8 = "%ld";
    if (uVar15 == 7) {
      pcVar8 = "%lu";
    }
    do {
      switch(bVar3) {
      case 1:
      case 2:
        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);
        pbVar12 = pbVar12 + iVar4;
        if (bVar3 != 1) {
          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);
          pbVar12 = pbVar12 + iVar4;
        }
        break;
      case 3:
      case 4:
        goto switchD_0013efd8_caseD_3;
      case 5:
        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);
        pbVar12 = pbVar12 + iVar4;
        break;
      case 6:
        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,
                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);
        pbVar12 = pbVar12 + iVar4;
        break;
      case 7:
      case 8:
        uVar15 = *param_1;
        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,
                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |
                              uVar15 << 0x18);
        pbVar12 = pbVar12 + iVar4;
        break;
      case 10:
        if ((int)uVar13 < 5) goto LAB_0013f3aa;
        uVar15 = (uint)(byte)*param_1;
        pbVar17 = (byte *)((long)param_1 + 1);
        puVar14 = &DAT_001c0d09;
        if (0x20 < uVar15) goto LAB_0013f3aa;
        goto LAB_0013f14a;
      case 0xb:
        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&
           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {
          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);
          pbVar12 = pbVar12 + iVar4;
          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,
                                *(byte *)((long)param_1 + 1));
          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));
          pbVar12 = pbVar12 + iVar4 + iVar6;
          puVar16 = (ushort *)((long)param_1 + 0x12);
          do {
            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);
            pbVar12 = pbVar12 + iVar4;
            puVar16 = puVar16 + 2;
          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);
        }
        goto LAB_0013f3aa;
      case 0xc:
        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);
        if (pvVar10 != (void *)0x0) {
          free(__ptr);
          __ptr = pvVar10;
        }
        goto LAB_0013f3aa;
      case 0xd:
        pbVar17 = (byte *)((long)param_1 + 1);
        if ((byte)*param_1 == 0) {
          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);
          if (pvVar10 != (void *)0x0) {
            free(__ptr);
            __ptr = pvVar10;
          }
        }
        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {
          puVar14 = &DAT_001c0d09;
          do {
            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);
            pbVar12 = pbVar12 + iVar4;
            pbVar17 = pbVar17 + 4;
            puVar14 = &DAT_001bea5f;
          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));
        }
        goto LAB_0013f3aa;
      }
      uVar13 = uVar13 - bVar2;
      if ((int)uVar13 < (int)(uint)bVar2) break;
      param_1 = (uint *)((long)param_1 + (ulong)bVar2);
      *pbVar12 = 0x20;
      pbVar12[1] = 0;
      pbVar12 = pbVar12 + 1;
    } while( true );
  }
  goto LAB_0013f3aa;
  while( true ) {
    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);
    pbVar12 = pbVar12 + iVar6;
    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);
    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);
    pbVar12 = pbVar12 + iVar6 + iVar5;
    uVar13 = iVar4 - 4;
    if ((int)uVar13 < 5) break;
    pbVar17 = pbVar18 + 5;
    uVar15 = (uint)pbVar18[4];
    puVar14 = &DAT_001bea5f;
    if (0x20 < pbVar18[4]) break;
LAB_0013f14a:
    iVar4 = uVar13 - 1;
    local_44[0] = 0;
    local_44[1] = 0;
    local_44[2] = 0;
    local_44[3] = 0;
    uVar13 = uVar15 + 7 >> 3;
    pbVar18 = pbVar17;
    if (uVar13 != 0) {
      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;
      pbVar11 = local_44;
      do {
        pbVar9 = pbVar17 + 1;
        *pbVar11 = *pbVar17;
        pbVar17 = pbVar9;
        pbVar11 = pbVar11 + 1;
      } while (pbVar18 != pbVar9);
      iVar4 = iVar4 - uVar13;
    }
    if (iVar4 < 4) break;
  }
  goto LAB_0013f3aa;
LAB_0013f397:
  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))
  goto LAB_0013f3aa;
  goto LAB_0013f0e7;
switchD_0013efd8_caseD_3:
  sVar7 = (size_t)(int)uVar13;
  memcpy(pbVar12,param_1,sVar7);
  pbVar12[sVar7] = 0;
  pbVar17 = pbVar12;
  if (bVar3 == 4) {
LAB_0013f0e7:
    if (*pbVar17 != 0x2d) {
      do {
        bVar1 = *pbVar17;
        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {
          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;
          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;
        }
        pbVar17 = pbVar17 + 1;
      } while( true );
    }
    FUN_001a49d0(pbVar12,"bad",sVar7);
  }
LAB_0013f3aa:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return __ptr;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV R13,RDI
MOV RBX,RDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
MOVZX EBP,byte ptr [RDI + -0x1]
MOVZX EAX,byte ptr [RSI]
AND EAX,0xf
MOV byte ptr [RSP + 0xf],AL
MOVZX R14D,AL
MOVSXD R15,R14D
LEA RAX,[0x1bb7c1]
MOVZX EAX,byte ptr [RAX + R15*0x1]
MOV byte ptr [RSP + 0xe],AL
MOVZX R12D,AL
MOV RDI,RDX
CALL 0x0010b4c0
MOV RCX,RAX
LEA EAX,[RBP + R12*0x1]
MOV EDX,0x0
DIV R12D
LEA RDX,[0x1bb46e]
MOVZX EDX,byte ptr [RDX + R15*0x1]
IMUL EAX,EDX
MOV EAX,EAX
LEA RDI,[RCX + RAX*0x1 + 0x2]
CALL 0x0010e5ce
MOV R15,RAX
MOV R8,RBX
LEA RCX,[0x1bb34d]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RAX
MOV EAX,0x0
CALL 0x0010c570
CMP EBP,R12D
JL 0x0013f3aa
MOVSXD RBX,EAX
ADD RBX,R15
CMP R14D,0x7
LEA RDX,[0x1beb36]
LEA RAX,[0x1bb351]
CMOVZ RAX,RDX
MOV qword ptr [RSP],RAX
MOVZX EAX,byte ptr [RSP + 0xf]
CMP AL,0xd
JA 0x0013f00f
MOVZX EAX,AL
LEA RCX,[0x1af4a0]
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
MOV RDX,R13
LEA RSI,[0x1c0d09]
MOV RDI,RBX
CALL 0x0013eeb3
CDQE
ADD RBX,RAX
CMP R14D,0x1
JZ 0x0013f00f
LEA RDX,[R13 + 0x4]
LEA RSI,[0x1be5e2]
MOV RDI,RBX
CALL 0x0013eeb3
CDQE
ADD RBX,RAX
SUB EBP,R12D
CMP R12D,EBP
JG 0x0013f3aa
MOVZX EAX,byte ptr [RSP + 0xe]
ADD R13,RAX
MOV byte ptr [RBX],0x20
MOV byte ptr [RBX + 0x1],0x0
LEA RBX,[RBX + 0x1]
JMP 0x0013efbe
MOVZX R8D,byte ptr [R13]
LEA RCX,[0x1bd262]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010c570
CDQE
ADD RBX,RAX
JMP 0x0013f00f
MOVZX R8D,word ptr [R13]
ROL R8W,0x8
MOVZX R8D,R8W
LEA RCX,[0x1bd262]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010c570
CDQE
ADD RBX,RAX
JMP 0x0013f00f
MOV R8D,dword ptr [R13]
BSWAP R8D
MOV R8D,R8D
MOV RCX,qword ptr [RSP]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010c570
CDQE
ADD RBX,RAX
JMP 0x0013f00f
MOVSXD RBP,EBP
MOV RDX,RBP
MOV RSI,R13
MOV RDI,RBX
CALL 0x0010bb30
MOV byte ptr [RBX + RBP*0x1],0x0
CMP R14D,0x4
JNZ 0x0013f3aa
MOV RDX,RBX
CMP byte ptr [RDX],0x2d
JZ 0x0013f383
MOV RAX,RDX
MOVZX EDX,byte ptr [RAX]
MOV ECX,EDX
OR ECX,0x20
SUB ECX,0x61
CMP CL,0x19
JBE 0x0013f12a
LEA ECX,[RDX + -0x30]
CMP CL,0x9
JBE 0x0013f12a
TEST DL,DL
JZ 0x0013f397
CMP DL,0x2e
JZ 0x0013f397
CMP DL,0x2d
JZ 0x0013f12a
CMP DL,0x5f
JNZ 0x0013f383
ADD RAX,0x1
JMP 0x0013f0f3
LEA RAX,[R13 + 0x5]
MOVZX R12D,byte ptr [R13 + 0x4]
LEA RSI,[0x1bea5f]
CMP R12D,0x20
JA 0x0013f3aa
SUB EBP,0x1
MOV dword ptr [RSP + 0x14],0x0
LEA EDX,[R12 + 0x7]
MOV R13,RAX
SHR EDX,0x3
JZ 0x0013f186
LEA ECX,[RDX + -0x1]
LEA R13,[RAX + RCX*0x1 + 0x1]
LEA RCX,[RSP + 0x14]
ADD RAX,0x1
ADD RCX,0x1
MOVZX EDI,byte ptr [RAX + -0x1]
MOV byte ptr [RCX + -0x1],DIL
CMP R13,RAX
JNZ 0x0013f16f
SUB EBP,EDX
CMP EBP,0x3
JLE 0x0013f3aa
MOV RDX,R14
MOV RDI,RBX
CALL 0x0013eeb3
CDQE
ADD RBX,RAX
MOV R8D,R12D
LEA RCX,[0x1bab06]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010c570
CDQE
ADD RBX,RAX
MOV RDX,R13
LEA RSI,[0x1c0d09]
MOV RDI,RBX
CALL 0x0013eeb3
CDQE
ADD RBX,RAX
SUB EBP,0x4
CMP EBP,0x4
JG 0x0013f130
JMP 0x0013f3aa
CMP EBP,0x4
JLE 0x0013f3aa
MOVZX R12D,byte ptr [R13]
LEA RAX,[R13 + 0x1]
LEA RSI,[0x1c0d09]
LEA R14,[RSP + 0x14]
CMP R12D,0x20
JBE 0x0013f14a
JMP 0x0013f3aa
CMP EBP,0x15
JLE 0x0013f3aa
MOVZX R8D,byte ptr [R13]
CMP R8B,0x20
JA 0x0013f3aa
MOVZX R8D,R8B
MOVZX EAX,byte ptr [R13 + 0x1]
ADD EAX,0x20
SUB EAX,R8D
CMP EAX,0x80
JG 0x0013f3aa
LEA RCX,[0x1ba61a]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010c570
CDQE
ADD RBX,RAX
MOVZX R8D,byte ptr [R13 + 0x1]
LEA RCX,[0x1ba61a]
MOV RDX,-0x1
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010c570
CDQE
ADD RBX,RAX
LEA RSI,[R13 + 0x2]
MOV RDI,RBX
CALL 0x0014357f
CDQE
ADD RBX,RAX
LEA R12,[R13 + 0x12]
SUB EBP,0x16
SHR EBP,0x2
MOV EBP,EBP
LEA R13,[R13 + RBP*0x4 + 0x16]
LEA RBP,[0x1bea5f]
MOV RDX,R12
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0013eeb3
CDQE
ADD RBX,RAX
ADD R12,0x4
CMP R13,R12
JZ 0x0013f3aa
JMP 0x0013f2c6
MOV RDX,R15
MOV ESI,EBP
MOV RDI,R13
CALL 0x00141bc1
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0013f3aa
MOV RDI,R15
CALL 0x0010c5a0
MOV R15,RBX
JMP 0x0013f3aa
LEA R12,[R13 + 0x1]
MOVZX EAX,byte ptr [R13]
TEST AL,AL
JNZ 0x0013f341
LEA ESI,[RBP + -0x1]
MOV RDX,R15
MOV RDI,R12
CALL 0x00141bc1
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0013f3aa
MOV RDI,R15
CALL 0x0010c5a0
MOV R15,RBX
JMP 0x0013f3aa
CMP AL,0x1
JNZ 0x0013f3aa
CMP EBP,0x4
JLE 0x0013f3aa
SUB EBP,0x5
SHR EBP,0x2
MOV EBP,EBP
LEA R13,[R13 + RBP*0x4 + 0x5]
LEA RSI,[0x1c0d09]
LEA RBP,[0x1bea5f]
MOV RDX,R12
MOV RDI,RBX
CALL 0x0013eeb3
CDQE
ADD RBX,RAX
ADD R12,0x4
MOV RSI,RBP
CMP R12,R13
JZ 0x0013f3aa
JMP 0x0013f365
MOV RDX,RBP
LEA RSI,[0x1bd297]
MOV RDI,RBX
CALL 0x001a49d0
JMP 0x0013f3aa
CMP byte ptr [RAX],0x0
JZ 0x0013f3aa
LEA RDX,[RAX + 0x1]
CMP byte ptr [RAX + 0x1],0x0
JNZ 0x0013f0e7
MOV RAX,R15
MOV RDI,qword ptr [RSP + 0x18]
XOR RDI,qword ptr FS:[0x28]
JZ 0x0013f3c2
CALL 0x0010b500
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "void * FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return __ptr;\n}\n\n" (function_definition "void * FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return __ptr;\n}" primitive_type (pointer_declarator "* FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)" * (function_declarator "FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)" identifier (parameter_list "(uint *param_1,byte *param_2,char *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return __ptr;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "void *pvVar10;" primitive_type (pointer_declarator "*pvVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ushort *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)((long)param_1 + -1);" (assignment_expression "bVar1 = *(byte *)((long)param_1 + -1)" identifier = (pointer_expression "*(byte *)((long)param_1 + -1)" * (cast_expression "(byte *)((long)param_1 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + -1)" ( (binary_expression "(long)param_1 + -1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)bVar1;" (assignment_expression "uVar13 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar3 = *param_2 & 0xf;" (assignment_expression "bVar3 = *param_2 & 0xf" identifier = (binary_expression "*param_2 & 0xf" (pointer_expression "*param_2" * identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)bVar3;" (assignment_expression "uVar15 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar2 = (&DAT_001bb7c1)[(int)uVar15];" (assignment_expression "bVar2 = (&DAT_001bb7c1)[(int)uVar15]" identifier = (subscript_expression "(&DAT_001bb7c1)[(int)uVar15]" (parenthesized_expression "(&DAT_001bb7c1)" ( (pointer_expression "&DAT_001bb7c1" & identifier) )) [ (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "sVar7 = strlen(param_3);" (assignment_expression "sVar7 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "__ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));" (assignment_expression "__ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" identifier = (cast_expression "(void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" identifier (argument_list "(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" ( (binary_expression "sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (binary_expression "sVar7 + 2" identifier + number_literal) + (call_expression "(ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" ( (binary_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]" (parenthesized_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2)" ( (binary_expression "((uint)bVar1 + (uint)bVar2) / (uint)bVar2" (parenthesized_expression "((uint)bVar1 + (uint)bVar2)" ( (binary_expression "(uint)bVar1 + (uint)bVar2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) )) / (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) )) * (subscript_expression "(uint)(byte)(&DAT_001bb46e)[(int)uVar15]" (call_expression "(uint)(byte)(&DAT_001bb46e)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001bb46e)" ( (pointer_expression "&DAT_001bb46e" & identifier) ))) [ (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) ])) )))) ))))) ;) (expression_statement "iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);" (assignment_expression "iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" identifier = (call_expression "__sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" identifier (argument_list "(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bb34d" & identifier) , identifier )))) ;) (if_statement "if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(bVar2 <= bVar1)" ( (binary_expression "bVar2 <= bVar1" identifier <= identifier) )) (compound_statement "{\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }" { (expression_statement "pbVar12 = (byte *)((long)iVar4 + (long)__ptr);" (assignment_expression "pbVar12 = (byte *)((long)iVar4 + (long)__ptr)" identifier = (cast_expression "(byte *)((long)iVar4 + (long)__ptr)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar4 + (long)__ptr)" ( (binary_expression "(long)iVar4 + (long)__ptr" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "pcVar8 = "%ld";" (assignment_expression "pcVar8 = "%ld"" identifier = (string_literal ""%ld"" " string_content ")) ;) (if_statement "if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }" if (parenthesized_expression "(uVar15 == 7)" ( (binary_expression "uVar15 == 7" identifier == number_literal) )) (compound_statement "{\n      pcVar8 = "%lu";\n    }" { (expression_statement "pcVar8 = "%lu";" (assignment_expression "pcVar8 = "%lu"" identifier = (string_literal ""%lu"" " string_content ")) ;) })) (do_statement "do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );" do (compound_statement "{\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    }" { (switch_statement "switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" switch (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" { (case_statement "case 1:" case number_literal :) (case_statement "case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;" case number_literal : (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1)" identifier = (call_expression "FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1)" identifier (argument_list "(pbVar12,&DAT_001c0d09,param_1)" ( identifier , (pointer_expression "&DAT_001c0d09" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (if_statement "if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }" if (parenthesized_expression "(bVar3 != 1)" ( (binary_expression "bVar3 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }" { (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1)" identifier = (call_expression "FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1)" identifier (argument_list "(pbVar12,&DAT_001be5e2,param_1 + 1)" ( identifier , (pointer_expression "&DAT_001be5e2" & identifier) , (binary_expression "param_1 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) })) (break_statement "break;" break ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:\n        goto switchD_0013efd8_caseD_3;" case number_literal : (goto_statement "goto switchD_0013efd8_caseD_3;" goto statement_identifier ;)) (case_statement "case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;" case number_literal : (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bd262" & identifier) , (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;" case number_literal : (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bd262" & identifier) , (binary_expression "(ushort)*param_1 << 8 | (ushort)*param_1 >> 8" (binary_expression "(ushort)*param_1 << 8" (binary_expression "(ushort)*param_1" (parenthesized_expression "(ushort)" ( identifier )) * identifier) << number_literal) | (binary_expression "(ushort)*param_1 >> 8" (binary_expression "(ushort)*param_1" (parenthesized_expression "(ushort)" ( identifier )) * identifier) >> number_literal)) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;" case number_literal : (expression_statement "uVar15 = *param_1;" (assignment_expression "uVar15 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" ( identifier , number_literal , number_literal , identifier , (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18" (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8" (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8" (binary_expression "uVar15 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar15 & 0xff0000) >> 8" (parenthesized_expression "(uVar15 & 0xff0000)" ( (binary_expression "uVar15 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar15 & 0xff00) << 8" (parenthesized_expression "(uVar15 & 0xff00)" ( (binary_expression "uVar15 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar15 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;" case number_literal : (if_statement "if ((int)uVar13 < 5) goto LAB_0013f3aa;" if (parenthesized_expression "((int)uVar13 < 5)" ( (binary_expression "(int)uVar13 < 5" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)(byte)*param_1;" (assignment_expression "uVar15 = (uint)(byte)*param_1" identifier = (binary_expression "(uint)(byte)*param_1" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar17 = (byte *)((long)param_1 + 1);" (assignment_expression "pbVar17 = (byte *)((long)param_1 + 1)" identifier = (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = &DAT_001c0d09;" (assignment_expression "puVar14 = &DAT_001c0d09" identifier = (pointer_expression "&DAT_001c0d09" & identifier)) ;) (if_statement "if (0x20 < uVar15) goto LAB_0013f3aa;" if (parenthesized_expression "(0x20 < uVar15)" ( (binary_expression "0x20 < uVar15" number_literal < identifier) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (goto_statement "goto LAB_0013f14a;" goto statement_identifier ;)) (case_statement "case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;" case number_literal : (if_statement "if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }" if (parenthesized_expression "(((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81))" ( (binary_expression "((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)" (parenthesized_expression "((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21))" ( (binary_expression "(0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)" (parenthesized_expression "(0x15 < (int)uVar13)" ( (binary_expression "0x15 < (int)uVar13" number_literal < (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((byte)*param_1 < 0x21)" ( (binary_expression "(byte)*param_1 < 0x21" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) < number_literal) ))) )) && (parenthesized_expression "((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)" ( (binary_expression "(int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81" (cast_expression "(int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1)" ( (binary_expression "(*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1" (parenthesized_expression "(*(byte *)((long)param_1 + 1) + 0x20)" ( (binary_expression "*(byte *)((long)param_1 + 1) + 0x20" (pointer_expression "*(byte *)((long)param_1 + 1)" * (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )) - (binary_expression "(uint)(byte)*param_1" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ))) < number_literal) ))) )) (compound_statement "{\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }" { (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001ba61a" & identifier) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001ba61a" & identifier) , (pointer_expression "*(byte *)((long)param_1 + 1)" * (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));" (assignment_expression "iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" identifier = (call_expression "FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" identifier (argument_list "(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" ( (binary_expression "pbVar12 + iVar4" identifier + identifier) , (cast_expression "(ushort *)((long)param_1 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 2)" ( (binary_expression "(long)param_1 + 2" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4 + iVar6;" (assignment_expression "pbVar12 = pbVar12 + iVar4 + iVar6" identifier = (binary_expression "pbVar12 + iVar4 + iVar6" (binary_expression "pbVar12 + iVar4" identifier + identifier) + identifier)) ;) (expression_statement "puVar16 = (ushort *)((long)param_1 + 0x12);" (assignment_expression "puVar16 = (ushort *)((long)param_1 + 0x12)" identifier = (cast_expression "(ushort *)((long)param_1 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x12)" ( (binary_expression "(long)param_1 + 0x12" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);" do (compound_statement "{\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          }" { (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16)" identifier = (call_expression "FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16)" identifier (argument_list "(pbVar12,&DAT_001bea5f,puVar16)" ( identifier , (pointer_expression "&DAT_001bea5f" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (expression_statement "puVar16 = puVar16 + 2;" (assignment_expression "puVar16 = puVar16 + 2" identifier = (binary_expression "puVar16 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16)" ( (binary_expression "(ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16" (cast_expression "(ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16)" ( (binary_expression "(long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16" (binary_expression "(long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)(uVar13 - 0x16 >> 2) * 4" (call_expression "(ulong)(uVar13 - 0x16 >> 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 0x16 >> 2)" ( (binary_expression "uVar13 - 0x16 >> 2" (binary_expression "uVar13 - 0x16" identifier - number_literal) >> number_literal) ))) * number_literal)) + number_literal) ))) != identifier) )) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (case_statement "case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;" case number_literal : (expression_statement "pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);" (assignment_expression "pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr)" identifier = (cast_expression "(void *)FUN_00141bc1(param_1,uVar13,__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00141bc1(param_1,uVar13,__ptr)" identifier (argument_list "(param_1,uVar13,__ptr)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }" if (parenthesized_expression "(pvVar10 != (void *)0x0)" ( (binary_expression "pvVar10 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(__ptr);\n          __ptr = pvVar10;\n        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = pvVar10;" (assignment_expression "__ptr = pvVar10" identifier = identifier) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (case_statement "case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;" case number_literal : (expression_statement "pbVar17 = (byte *)((long)param_1 + 1);" (assignment_expression "pbVar17 = (byte *)((long)param_1 + 1)" identifier = (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" if (parenthesized_expression "((byte)*param_1 == 0)" ( (binary_expression "(byte)*param_1 == 0" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) (compound_statement "{\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }" { (expression_statement "pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);" (assignment_expression "pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" identifier = (cast_expression "(void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" identifier (argument_list "(pbVar17,uVar13 - 1,__ptr)" ( identifier , (binary_expression "uVar13 - 1" identifier - number_literal) , identifier ))))) ;) (if_statement "if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }" if (parenthesized_expression "(pvVar10 != (void *)0x0)" ( (binary_expression "pvVar10 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(__ptr);\n            __ptr = pvVar10;\n          }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = pvVar10;" (assignment_expression "__ptr = pvVar10" identifier = identifier) ;) })) }) (else_clause "else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" else (if_statement "if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" if (parenthesized_expression "(((byte)*param_1 == 1) && (4 < (int)uVar13))" ( (binary_expression "((byte)*param_1 == 1) && (4 < (int)uVar13)" (parenthesized_expression "((byte)*param_1 == 1)" ( (binary_expression "(byte)*param_1 == 1" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) && (parenthesized_expression "(4 < (int)uVar13)" ( (binary_expression "4 < (int)uVar13" number_literal < (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" { (expression_statement "puVar14 = &DAT_001c0d09;" (assignment_expression "puVar14 = &DAT_001c0d09" identifier = (pointer_expression "&DAT_001c0d09" & identifier)) ;) (do_statement "do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));" do (compound_statement "{\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          }" { (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17)" identifier = (call_expression "FUN_0013eeb3(pbVar12,puVar14,pbVar17)" identifier (argument_list "(pbVar12,puVar14,pbVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar17 = pbVar17 + 4;" (assignment_expression "pbVar17 = pbVar17 + 4" identifier = (binary_expression "pbVar17 + 4" identifier + number_literal)) ;) (expression_statement "puVar14 = &DAT_001bea5f;" (assignment_expression "puVar14 = &DAT_001bea5f" identifier = (pointer_expression "&DAT_001bea5f" & identifier)) ;) }) while (parenthesized_expression "(pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5))" ( (binary_expression "pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" identifier != (cast_expression "(byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" ( (binary_expression "(long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5" (binary_expression "(long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)(uVar13 - 5 >> 2) * 4" (call_expression "(ulong)(uVar13 - 5 >> 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 5 >> 2)" ( (binary_expression "uVar13 - 5 >> 2" (binary_expression "uVar13 - 5" identifier - number_literal) >> number_literal) ))) * number_literal)) + number_literal) )))) )) ;) })))) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) })) (expression_statement "uVar13 = uVar13 - bVar2;" (assignment_expression "uVar13 = uVar13 - bVar2" identifier = (binary_expression "uVar13 - bVar2" identifier - identifier)) ;) (if_statement "if ((int)uVar13 < (int)(uint)bVar2) break;" if (parenthesized_expression "((int)uVar13 < (int)(uint)bVar2)" ( (binary_expression "(int)uVar13 < (int)(uint)bVar2" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uint)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "param_1 = (uint *)((long)param_1 + (ulong)bVar2);" (assignment_expression "param_1 = (uint *)((long)param_1 + (ulong)bVar2)" identifier = (cast_expression "(uint *)((long)param_1 + (ulong)bVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)bVar2)" ( (binary_expression "(long)param_1 + (ulong)bVar2" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) (expression_statement "*pbVar12 = 0x20;" (assignment_expression "*pbVar12 = 0x20" (pointer_expression "*pbVar12" * identifier) = number_literal) ;) (expression_statement "pbVar12[1] = 0;" (assignment_expression "pbVar12[1] = 0" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }" { (expression_statement "iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);" (assignment_expression "iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44)" identifier = (call_expression "FUN_0013eeb3(pbVar12,puVar14,local_44)" identifier (argument_list "(pbVar12,puVar14,local_44)" ( identifier , identifier , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar6;" (assignment_expression "pbVar12 = pbVar12 + iVar6" identifier = (binary_expression "pbVar12 + iVar6" identifier + identifier)) ;) (expression_statement "iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);" (assignment_expression "iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bab06" & identifier) , identifier )))) ;) (expression_statement "iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);" (assignment_expression "iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" identifier = (call_expression "FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" identifier (argument_list "(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" ( (binary_expression "pbVar12 + iVar6" identifier + identifier) , (pointer_expression "&DAT_001c0d09" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar6 + iVar5;" (assignment_expression "pbVar12 = pbVar12 + iVar6 + iVar5" identifier = (binary_expression "pbVar12 + iVar6 + iVar5" (binary_expression "pbVar12 + iVar6" identifier + identifier) + identifier)) ;) (expression_statement "uVar13 = iVar4 - 4;" (assignment_expression "uVar13 = iVar4 - 4" identifier = (binary_expression "iVar4 - 4" identifier - number_literal)) ;) (if_statement "if ((int)uVar13 < 5) break;" if (parenthesized_expression "((int)uVar13 < 5)" ( (binary_expression "(int)uVar13 < 5" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar17 = pbVar18 + 5;" (assignment_expression "pbVar17 = pbVar18 + 5" identifier = (binary_expression "pbVar18 + 5" identifier + number_literal)) ;) (expression_statement "uVar15 = (uint)pbVar18[4];" (assignment_expression "uVar15 = (uint)pbVar18[4]" identifier = (cast_expression "(uint)pbVar18[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar18[4]" identifier [ number_literal ]))) ;) (expression_statement "puVar14 = &DAT_001bea5f;" (assignment_expression "puVar14 = &DAT_001bea5f" identifier = (pointer_expression "&DAT_001bea5f" & identifier)) ;) (if_statement "if (0x20 < pbVar18[4]) break;" if (parenthesized_expression "(0x20 < pbVar18[4])" ( (binary_expression "0x20 < pbVar18[4]" number_literal < (subscript_expression "pbVar18[4]" identifier [ number_literal ])) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0013f14a:\n    iVar4 = uVar13 - 1;" statement_identifier : (expression_statement "iVar4 = uVar13 - 1;" (assignment_expression "iVar4 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;)) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[1] = 0;" (assignment_expression "local_44[1] = 0" (subscript_expression "local_44[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[2] = 0;" (assignment_expression "local_44[2] = 0" (subscript_expression "local_44[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[3] = 0;" (assignment_expression "local_44[3] = 0" (subscript_expression "local_44[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar13 = uVar15 + 7 >> 3;" (assignment_expression "uVar13 = uVar15 + 7 >> 3" identifier = (binary_expression "uVar15 + 7 >> 3" (binary_expression "uVar15 + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (if_statement "if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }" { (expression_statement "pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;" (assignment_expression "pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1" identifier = (binary_expression "pbVar17 + (ulong)(uVar13 - 1) + 1" (binary_expression "pbVar17 + (ulong)(uVar13 - 1)" identifier + (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )))) + number_literal)) ;) (expression_statement "pbVar11 = local_44;" (assignment_expression "pbVar11 = local_44" identifier = identifier) ;) (do_statement "do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);" do (compound_statement "{\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      }" { (expression_statement "pbVar9 = pbVar17 + 1;" (assignment_expression "pbVar9 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = *pbVar17;" (assignment_expression "*pbVar11 = *pbVar17" (pointer_expression "*pbVar11" * identifier) = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar17 = pbVar9;" (assignment_expression "pbVar17 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar18 != pbVar9)" ( (binary_expression "pbVar18 != pbVar9" identifier != identifier) )) ;) (expression_statement "iVar4 = iVar4 - uVar13;" (assignment_expression "iVar4 = iVar4 - uVar13" identifier = (binary_expression "iVar4 - uVar13" identifier - identifier)) ;) })) (if_statement "if (iVar4 < 4) break;" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (break_statement "break;" break ;)) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;) (labeled_statement "LAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;" statement_identifier : (if_statement "if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;" if (parenthesized_expression "((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))" ( (binary_expression "(*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0)" (parenthesized_expression "(*pbVar17 == 0)" ( (binary_expression "*pbVar17 == 0" (pointer_expression "*pbVar17" * identifier) == number_literal) )) || (parenthesized_expression "(pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0)" ( (comma_expression "pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0" (assignment_expression "pbVar18 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) , (comma_expression "pbVar17 = pbVar17 + 1, *pbVar18 == 0" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) , (binary_expression "*pbVar18 == 0" (pointer_expression "*pbVar18" * identifier) == number_literal))) ))) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;))) (goto_statement "goto LAB_0013f0e7;" goto statement_identifier ;) (labeled_statement "switchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;" statement_identifier : (expression_statement "sVar7 = (size_t)(int)uVar13;" (assignment_expression "sVar7 = (size_t)(int)uVar13" identifier = (cast_expression "(size_t)(int)uVar13" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "memcpy(pbVar12,param_1,sVar7);" (call_expression "memcpy(pbVar12,param_1,sVar7)" identifier (argument_list "(pbVar12,param_1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar12[sVar7] = 0;" (assignment_expression "pbVar12[sVar7] = 0" (subscript_expression "pbVar12[sVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "pbVar17 = pbVar12;" (assignment_expression "pbVar17 = pbVar12" identifier = identifier) ;) (if_statement "if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }" { (labeled_statement "LAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" statement_identifier : (if_statement "if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(*pbVar17 != 0x2d)" ( (binary_expression "*pbVar17 != 0x2d" (pointer_expression "*pbVar17" * identifier) != number_literal) )) (compound_statement "{\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" { (do_statement "do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );" do (compound_statement "{\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      }" { (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (if_statement "if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" if (parenthesized_expression "((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30)))" ( (binary_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))" (parenthesized_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f))" ( (binary_expression "0x19 < (byte)((bVar1 | 0x20) + 0x9f)" number_literal < (call_expression "(byte)((bVar1 | 0x20) + 0x9f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((bVar1 | 0x20) + 0x9f)" ( (binary_expression "(bVar1 | 0x20) + 0x9f" (parenthesized_expression "(bVar1 | 0x20)" ( (binary_expression "bVar1 | 0x20" identifier | number_literal) )) + number_literal) )))) )) && (parenthesized_expression "(9 < (byte)(bVar1 - 0x30))" ( (binary_expression "9 < (byte)(bVar1 - 0x30)" number_literal < (call_expression "(byte)(bVar1 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 - 0x30)" ( (binary_expression "bVar1 - 0x30" identifier - number_literal) )))) ))) )) (compound_statement "{\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" { (if_statement "if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;" if (parenthesized_expression "((bVar1 == 0) || (bVar1 == 0x2e))" ( (binary_expression "(bVar1 == 0) || (bVar1 == 0x2e)" (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 0x2e)" ( (binary_expression "bVar1 == 0x2e" identifier == number_literal) ))) )) (goto_statement "goto LAB_0013f397;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;" if (parenthesized_expression "((bVar1 != 0x2d) && (bVar1 != 0x5f))" ( (binary_expression "(bVar1 != 0x2d) && (bVar1 != 0x5f)" (parenthesized_expression "(bVar1 != 0x2d)" ( (binary_expression "bVar1 != 0x2d" identifier != number_literal) )) && (parenthesized_expression "(bVar1 != 0x5f)" ( (binary_expression "bVar1 != 0x5f" identifier != number_literal) ))) )) (break_statement "break;" break ;)) })) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "FUN_001a49d0(pbVar12,"bad",sVar7);" (call_expression "FUN_001a49d0(pbVar12,"bad",sVar7)" identifier (argument_list "(pbVar12,"bad",sVar7)" ( identifier , (string_literal ""bad"" " string_content ") , identifier ))) ;) })) (labeled_statement "LAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return __ptr;" return identifier ;) })))
(translation_unit "char * xmalloc_optname_optval(uint8_t *option,dhcp_optflag *optflag,char *opt_name)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pre;\n  char *pcVar8;\n  byte *pbVar9;\n  uint32_t *puVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  ushort *ip;\n  byte *pbVar14;\n  byte *pbVar15;\n  long in_FS_OFFSET;\n  uint32_t nip;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = option[-1];\n  uVar12 = (uint)bVar1;\n  bVar3 = optflag->flags & 0xf;\n  uVar13 = (uint)bVar3;\n  bVar2 = dhcp_option_lengths[(int)uVar13];\n  sVar7 = strlen(opt_name);\n  pre = (char *)xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       );\n  iVar4 = __sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name);\n  if (bVar2 <= bVar1) {\n    pbVar11 = (byte *)(pre + iVar4);\n    pcVar8 = "%ld";\n    if (uVar13 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);\n    pbVar11 = pbVar11 + iVar6;\n    iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);\n    iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);\n    pbVar11 = pbVar11 + iVar6 + iVar5;\n    uVar12 = iVar4 - 4;\n    if ((int)uVar12 < 5) break;\n    pbVar14 = pbVar15 + 5;\n    uVar13 = (uint)pbVar15[4];\n    pcVar8 = " ";\n    if (0x20 < pbVar15[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar12 - 1;\n    nip = 0;\n    uVar12 = uVar13 + 7 >> 3;\n    pbVar15 = pbVar14;\n    if (uVar12 != 0) {\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar12;\n  memcpy(pbVar11,option,sVar7);\n  pbVar11[sVar7] = 0;\n  pbVar14 = pbVar11;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }\n    safe_strncpy((char *)pbVar11,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pre;\n}\n\n" (function_definition "char * xmalloc_optname_optval(uint8_t *option,dhcp_optflag *optflag,char *opt_name)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pre;\n  char *pcVar8;\n  byte *pbVar9;\n  uint32_t *puVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  ushort *ip;\n  byte *pbVar14;\n  byte *pbVar15;\n  long in_FS_OFFSET;\n  uint32_t nip;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = option[-1];\n  uVar12 = (uint)bVar1;\n  bVar3 = optflag->flags & 0xf;\n  uVar13 = (uint)bVar3;\n  bVar2 = dhcp_option_lengths[(int)uVar13];\n  sVar7 = strlen(opt_name);\n  pre = (char *)xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       );\n  iVar4 = __sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name);\n  if (bVar2 <= bVar1) {\n    pbVar11 = (byte *)(pre + iVar4);\n    pcVar8 = "%ld";\n    if (uVar13 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);\n    pbVar11 = pbVar11 + iVar6;\n    iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);\n    iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);\n    pbVar11 = pbVar11 + iVar6 + iVar5;\n    uVar12 = iVar4 - 4;\n    if ((int)uVar12 < 5) break;\n    pbVar14 = pbVar15 + 5;\n    uVar13 = (uint)pbVar15[4];\n    pcVar8 = " ";\n    if (0x20 < pbVar15[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar12 - 1;\n    nip = 0;\n    uVar12 = uVar13 + 7 >> 3;\n    pbVar15 = pbVar14;\n    if (uVar12 != 0) {\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar12;\n  memcpy(pbVar11,option,sVar7);\n  pbVar11[sVar7] = 0;\n  pbVar14 = pbVar11;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }\n    safe_strncpy((char *)pbVar11,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pre;\n}" primitive_type (pointer_declarator "* xmalloc_optname_optval(uint8_t *option,dhcp_optflag *optflag,char *opt_name)" * (function_declarator "xmalloc_optname_optval(uint8_t *option,dhcp_optflag *optflag,char *opt_name)" identifier (parameter_list "(uint8_t *option,dhcp_optflag *optflag,char *opt_name)" ( (parameter_declaration "uint8_t *option" primitive_type (pointer_declarator "*option" * identifier)) , (parameter_declaration "dhcp_optflag *optflag" type_identifier (pointer_declarator "*optflag" * identifier)) , (parameter_declaration "char *opt_name" primitive_type (pointer_declarator "*opt_name" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pre;\n  char *pcVar8;\n  byte *pbVar9;\n  uint32_t *puVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  ushort *ip;\n  byte *pbVar14;\n  byte *pbVar15;\n  long in_FS_OFFSET;\n  uint32_t nip;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = option[-1];\n  uVar12 = (uint)bVar1;\n  bVar3 = optflag->flags & 0xf;\n  uVar13 = (uint)bVar3;\n  bVar2 = dhcp_option_lengths[(int)uVar13];\n  sVar7 = strlen(opt_name);\n  pre = (char *)xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       );\n  iVar4 = __sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name);\n  if (bVar2 <= bVar1) {\n    pbVar11 = (byte *)(pre + iVar4);\n    pcVar8 = "%ld";\n    if (uVar13 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);\n    pbVar11 = pbVar11 + iVar6;\n    iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);\n    iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);\n    pbVar11 = pbVar11 + iVar6 + iVar5;\n    uVar12 = iVar4 - 4;\n    if ((int)uVar12 < 5) break;\n    pbVar14 = pbVar15 + 5;\n    uVar13 = (uint)pbVar15[4];\n    pcVar8 = " ";\n    if (0x20 < pbVar15[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar12 - 1;\n    nip = 0;\n    uVar12 = uVar13 + 7 >> 3;\n    pbVar15 = pbVar14;\n    if (uVar12 != 0) {\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar12;\n  memcpy(pbVar11,option,sVar7);\n  pbVar11[sVar7] = 0;\n  pbVar14 = pbVar11;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }\n    safe_strncpy((char *)pbVar11,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pre;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "char *pre;" primitive_type (pointer_declarator "*pre" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint32_t *puVar10;" primitive_type (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ushort *ip;" type_identifier (pointer_declarator "*ip" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint32_t nip;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = option[-1];" (assignment_expression "bVar1 = option[-1]" identifier = (subscript_expression "option[-1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (uint)bVar1;" (assignment_expression "uVar12 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar3 = optflag->flags & 0xf;" (assignment_expression "bVar3 = optflag->flags & 0xf" identifier = (binary_expression "optflag->flags & 0xf" (field_expression "optflag->flags" identifier -> field_identifier) & number_literal)) ;) (expression_statement "uVar13 = (uint)bVar3;" (assignment_expression "uVar13 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar2 = dhcp_option_lengths[(int)uVar13];" (assignment_expression "bVar2 = dhcp_option_lengths[(int)uVar13]" identifier = (subscript_expression "dhcp_option_lengths[(int)uVar13]" identifier [ (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "sVar7 = strlen(opt_name);" (assignment_expression "sVar7 = strlen(opt_name)" identifier = (call_expression "strlen(opt_name)" identifier (argument_list "(opt_name)" ( identifier )))) ;) (expression_statement "pre = (char *)xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       );" (assignment_expression "pre = (char *)xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       )" identifier = (cast_expression "(char *)xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       )" identifier (argument_list "(sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])\n                       )" ( (binary_expression "sVar7 + 2 +\n                        (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])" (binary_expression "sVar7 + 2" identifier + number_literal) + (call_expression "(ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13])" ( (binary_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2) * (uint)""[(int)uVar13]" (parenthesized_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2)" ( (binary_expression "((uint)bVar1 + (uint)bVar2) / (uint)bVar2" (parenthesized_expression "((uint)bVar1 + (uint)bVar2)" ( (binary_expression "(uint)bVar1 + (uint)bVar2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) )) / (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) )) * (cast_expression "(uint)""[(int)uVar13]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression """[(int)uVar13]" (string_literal """" " ") [ (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )))) ))))) ;) (expression_statement "iVar4 = __sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name);" (assignment_expression "iVar4 = __sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name)" identifier = (call_expression "__sprintf_chk(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name)" identifier (argument_list "(pre,1,0xffffffffffffffff,&DAT_001bb34d,opt_name)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bb34d" & identifier) , identifier )))) ;) (if_statement "if (bVar2 <= bVar1) {\n    pbVar11 = (byte *)(pre + iVar4);\n    pcVar8 = "%ld";\n    if (uVar13 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(bVar2 <= bVar1)" ( (binary_expression "bVar2 <= bVar1" identifier <= identifier) )) (compound_statement "{\n    pbVar11 = (byte *)(pre + iVar4);\n    pcVar8 = "%ld";\n    if (uVar13 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    } while( true );\n  }" { (expression_statement "pbVar11 = (byte *)(pre + iVar4);" (assignment_expression "pbVar11 = (byte *)(pre + iVar4)" identifier = (cast_expression "(byte *)(pre + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pre + iVar4)" ( (binary_expression "pre + iVar4" identifier + identifier) )))) ;) (expression_statement "pcVar8 = "%ld";" (assignment_expression "pcVar8 = "%ld"" identifier = (string_literal ""%ld"" " string_content ")) ;) (if_statement "if (uVar13 == 7) {\n      pcVar8 = "%lu";\n    }" if (parenthesized_expression "(uVar13 == 7)" ( (binary_expression "uVar13 == 7" identifier == number_literal) )) (compound_statement "{\n      pcVar8 = "%lu";\n    }" { (expression_statement "pcVar8 = "%lu";" (assignment_expression "pcVar8 = "%lu"" identifier = (string_literal ""%lu"" " string_content ")) ;) })) (do_statement "do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    } while( true );" do (compound_statement "{\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar12 = uVar12 - bVar2;\n      if ((int)uVar12 < (int)(uint)bVar2) break;\n      option = (uint8_t *)((long)option + (ulong)bVar2);\n      *pbVar11 = 0x20;\n      pbVar11[1] = 0;\n      pbVar11 = pbVar11 + 1;\n    }" { (switch_statement "switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" switch (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      case 1:\n      case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" { (case_statement "case 1:" case number_literal :) (case_statement "case 2:\n        iVar4 = sprint_nip((char *)pbVar11,"",option);\n        pbVar11 = pbVar11 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }\n        break;" case number_literal : (expression_statement "iVar4 = sprint_nip((char *)pbVar11,"",option);" (assignment_expression "iVar4 = sprint_nip((char *)pbVar11,"",option)" identifier = (call_expression "sprint_nip((char *)pbVar11,"",option)" identifier (argument_list "((char *)pbVar11,"",option)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal """" " ") , identifier )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (if_statement "if (bVar3 != 1) {\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }" if (parenthesized_expression "(bVar3 != 1)" ( (binary_expression "bVar3 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));\n          pbVar11 = pbVar11 + iVar4;\n        }" { (expression_statement "iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4));" (assignment_expression "iVar4 = sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4))" identifier = (call_expression "sprint_nip((char *)pbVar11,"/",(uint8_t *)((long)option + 4))" identifier (argument_list "((char *)pbVar11,"/",(uint8_t *)((long)option + 4))" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""/"" " string_content ") , (cast_expression "(uint8_t *)((long)option + 4)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 4)" ( (binary_expression "(long)option + 4" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) })) (break_statement "break;" break ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:\n        goto switchD_0013efd8_caseD_3;" case number_literal : (goto_statement "goto switchD_0013efd8_caseD_3;" goto statement_identifier ;)) (case_statement "case 5:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);\n        pbVar11 = pbVar11 + iVar4;\n        break;" case number_literal : (expression_statement "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option);" (assignment_expression "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option)" identifier = (call_expression "__sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option)" identifier (argument_list "(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,(byte)*(uint *)option)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bd262" & identifier) , (binary_expression "(byte)*(uint *)option" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);\n        pbVar11 = pbVar11 + iVar4;\n        break;" case number_literal : (expression_statement "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8);" (assignment_expression "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8)" identifier = (call_expression "__sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8)" identifier (argument_list "(pbVar11,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bd262" & identifier) , (binary_expression "(ushort)*(uint *)option << 8 | (ushort)*(uint *)option >> 8" (binary_expression "(ushort)*(uint *)option << 8" (binary_expression "(ushort)*(uint *)option" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) | (binary_expression "(ushort)*(uint *)option >> 8" (binary_expression "(ushort)*(uint *)option" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal)) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:\n        uVar13 = *(uint *)option;\n        iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);\n        pbVar11 = pbVar11 + iVar4;\n        break;" case number_literal : (expression_statement "uVar13 = *(uint *)option;" (assignment_expression "uVar13 = *(uint *)option" identifier = (pointer_expression "*(uint *)option" * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18);" (assignment_expression "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18)" identifier = (call_expression "__sprintf_chk(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18)" identifier (argument_list "(pbVar11,1,0xffffffffffffffff,pcVar8,\n                              uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18)" ( identifier , number_literal , number_literal , identifier , (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                              uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        if ((int)uVar12 < 5) goto LAB_0013f3aa;\n        uVar13 = (uint)(byte)*(uint *)option;\n        pbVar14 = (byte *)((long)option + 1);\n        pcVar8 = "";\n        if (0x20 < uVar13) goto LAB_0013f3aa;\n        goto LAB_0013f14a;" case number_literal : (if_statement "if ((int)uVar12 < 5) goto LAB_0013f3aa;" if (parenthesized_expression "((int)uVar12 < 5)" ( (binary_expression "(int)uVar12 < 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (expression_statement "uVar13 = (uint)(byte)*(uint *)option;" (assignment_expression "uVar13 = (uint)(byte)*(uint *)option" identifier = (binary_expression "(uint)(byte)*(uint *)option" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar14 = (byte *)((long)option + 1);" (assignment_expression "pbVar14 = (byte *)((long)option + 1)" identifier = (cast_expression "(byte *)((long)option + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 1)" ( (binary_expression "(long)option + 1" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (0x20 < uVar13) goto LAB_0013f3aa;" if (parenthesized_expression "(0x20 < uVar13)" ( (binary_expression "0x20 < uVar13" number_literal < identifier) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (goto_statement "goto LAB_0013f14a;" goto statement_identifier ;)) (case_statement "case 0xb:\n        if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }\n        goto LAB_0013f3aa;" case number_literal : (if_statement "if (((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }" if (parenthesized_expression "(((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81))" ( (binary_expression "((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)) &&\n           ((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)" (parenthesized_expression "((0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21))" ( (binary_expression "(0x15 < (int)uVar12) && ((byte)*(uint *)option < 0x21)" (parenthesized_expression "(0x15 < (int)uVar12)" ( (binary_expression "0x15 < (int)uVar12" number_literal < (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((byte)*(uint *)option < 0x21)" ( (binary_expression "(byte)*(uint *)option < 0x21" (binary_expression "(byte)*(uint *)option" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) ))) )) && (parenthesized_expression "((int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81)" ( (binary_expression "(int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option) < 0x81" (cast_expression "(int)((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option)" ( (binary_expression "(*(byte *)((long)option + 1) + 0x20) - (uint)(byte)*(uint *)option" (parenthesized_expression "(*(byte *)((long)option + 1) + 0x20)" ( (binary_expression "*(byte *)((long)option + 1) + 0x20" (pointer_expression "*(byte *)((long)option + 1)" * (cast_expression "(byte *)((long)option + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 1)" ( (binary_expression "(long)option + 1" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )) - (binary_expression "(uint)(byte)*(uint *)option" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ))) < number_literal) ))) )) (compound_statement "{\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar11 = pbVar11 + iVar4;\n          iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));\n          iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));\n          pbVar11 = pbVar11 + iVar4 + iVar6;\n          ip = (ushort *)((long)option + 0x12);\n          do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);\n        }" { (expression_statement "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a);" (assignment_expression "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a)" identifier = (call_expression "__sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a)" identifier (argument_list "(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001ba61a" & identifier) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1));" (assignment_expression "iVar4 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1))" identifier = (call_expression "__sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1))" identifier (argument_list "(pbVar11,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)option + 1))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001ba61a" & identifier) , (pointer_expression "*(byte *)((long)option + 1)" * (cast_expression "(byte *)((long)option + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 1)" ( (binary_expression "(long)option + 1" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2));" (assignment_expression "iVar6 = sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2))" identifier = (call_expression "sprint_nip6((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2))" identifier (argument_list "((char *)(pbVar11 + iVar4),(uint8_t *)((long)option + 2))" ( (cast_expression "(char *)(pbVar11 + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + iVar4)" ( (binary_expression "pbVar11 + iVar4" identifier + identifier) ))) , (cast_expression "(uint8_t *)((long)option + 2)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 2)" ( (binary_expression "(long)option + 2" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4 + iVar6;" (assignment_expression "pbVar11 = pbVar11 + iVar4 + iVar6" identifier = (binary_expression "pbVar11 + iVar4 + iVar6" (binary_expression "pbVar11 + iVar4" identifier + identifier) + identifier)) ;) (expression_statement "ip = (ushort *)((long)option + 0x12);" (assignment_expression "ip = (ushort *)((long)option + 0x12)" identifier = (cast_expression "(ushort *)((long)option + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 0x12)" ( (binary_expression "(long)option + 0x12" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          } while ((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip);" do (compound_statement "{\n            iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);\n            pbVar11 = pbVar11 + iVar4;\n            ip = ip + 2;\n          }" { (expression_statement "iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip);" (assignment_expression "iVar4 = sprint_nip((char *)pbVar11," ",(uint8_t *)ip)" identifier = (call_expression "sprint_nip((char *)pbVar11," ",(uint8_t *)ip)" identifier (argument_list "((char *)pbVar11," ",(uint8_t *)ip)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" "" " string_content ") , (cast_expression "(uint8_t *)ip" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (expression_statement "ip = ip + 2;" (assignment_expression "ip = ip + 2" identifier = (binary_expression "ip + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "((ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip)" ( (binary_expression "(ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16) != ip" (cast_expression "(ushort *)((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16)" ( (binary_expression "(long)option + (ulong)(uVar12 - 0x16 >> 2) * 4 + 0x16" (binary_expression "(long)option + (ulong)(uVar12 - 0x16 >> 2) * 4" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)(uVar12 - 0x16 >> 2) * 4" (call_expression "(ulong)(uVar12 - 0x16 >> 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 - 0x16 >> 2)" ( (binary_expression "uVar12 - 0x16 >> 2" (binary_expression "uVar12 - 0x16" identifier - number_literal) >> number_literal) ))) * number_literal)) + number_literal) ))) != identifier) )) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (case_statement "case 0xc:\n        pcVar8 = dname_dec(option,uVar12,pre);\n        if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }\n        goto LAB_0013f3aa;" case number_literal : (expression_statement "pcVar8 = dname_dec(option,uVar12,pre);" (assignment_expression "pcVar8 = dname_dec(option,uVar12,pre)" identifier = (call_expression "dname_dec(option,uVar12,pre)" identifier (argument_list "(option,uVar12,pre)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n          free(pre);\n          pre = pcVar8;\n        }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pre);\n          pre = pcVar8;\n        }" { (expression_statement "free(pre);" (call_expression "free(pre)" identifier (argument_list "(pre)" ( identifier ))) ;) (expression_statement "pre = pcVar8;" (assignment_expression "pre = pcVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (case_statement "case 0xd:\n        pbVar14 = (byte *)((long)option + 1);\n        if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;" case number_literal : (expression_statement "pbVar14 = (byte *)((long)option + 1);" (assignment_expression "pbVar14 = (byte *)((long)option + 1)" identifier = (cast_expression "(byte *)((long)option + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + 1)" ( (binary_expression "(long)option + 1" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((byte)*(uint *)option == 0) {\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }\n        else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }" if (parenthesized_expression "((byte)*(uint *)option == 0)" ( (binary_expression "(byte)*(uint *)option == 0" (binary_expression "(byte)*(uint *)option" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);\n          if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }\n        }" { (expression_statement "pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre);" (assignment_expression "pcVar8 = dname_dec(pbVar14,uVar12 - 1,pre)" identifier = (call_expression "dname_dec(pbVar14,uVar12 - 1,pre)" identifier (argument_list "(pbVar14,uVar12 - 1,pre)" ( identifier , (binary_expression "uVar12 - 1" identifier - number_literal) , identifier )))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            free(pre);\n            pre = pcVar8;\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(pre);\n            pre = pcVar8;\n          }" { (expression_statement "free(pre);" (call_expression "free(pre)" identifier (argument_list "(pre)" ( identifier ))) ;) (expression_statement "pre = pcVar8;" (assignment_expression "pre = pcVar8" identifier = identifier) ;) })) }) (else_clause "else if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }" else (if_statement "if (((byte)*(uint *)option == 1) && (4 < (int)uVar12)) {\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }" if (parenthesized_expression "(((byte)*(uint *)option == 1) && (4 < (int)uVar12))" ( (binary_expression "((byte)*(uint *)option == 1) && (4 < (int)uVar12)" (parenthesized_expression "((byte)*(uint *)option == 1)" ( (binary_expression "(byte)*(uint *)option == 1" (binary_expression "(byte)*(uint *)option" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(uint *)option" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) && (parenthesized_expression "(4 < (int)uVar12)" ( (binary_expression "4 < (int)uVar12" number_literal < (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          pcVar8 = "";\n          do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));\n        }" { (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          } while (pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5));" do (compound_statement "{\n            iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);\n            pbVar11 = pbVar11 + iVar4;\n            pbVar14 = pbVar14 + 4;\n            pcVar8 = " ";\n          }" { (expression_statement "iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14);" (assignment_expression "iVar4 = sprint_nip((char *)pbVar11,pcVar8,pbVar14)" identifier = (call_expression "sprint_nip((char *)pbVar11,pcVar8,pbVar14)" identifier (argument_list "((char *)pbVar11,pcVar8,pbVar14)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar4;" (assignment_expression "pbVar11 = pbVar11 + iVar4" identifier = (binary_expression "pbVar11 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pcVar8 = " ";" (assignment_expression "pcVar8 = " "" identifier = (string_literal "" "" " string_content ")) ;) }) while (parenthesized_expression "(pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5))" ( (binary_expression "pbVar14 != (byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5)" identifier != (cast_expression "(byte *)((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5)" ( (binary_expression "(long)option + (ulong)(uVar12 - 5 >> 2) * 4 + 5" (binary_expression "(long)option + (ulong)(uVar12 - 5 >> 2) * 4" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)(uVar12 - 5 >> 2) * 4" (call_expression "(ulong)(uVar12 - 5 >> 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 - 5 >> 2)" ( (binary_expression "uVar12 - 5 >> 2" (binary_expression "uVar12 - 5" identifier - number_literal) >> number_literal) ))) * number_literal)) + number_literal) )))) )) ;) })))) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) })) (expression_statement "uVar12 = uVar12 - bVar2;" (assignment_expression "uVar12 = uVar12 - bVar2" identifier = (binary_expression "uVar12 - bVar2" identifier - identifier)) ;) (if_statement "if ((int)uVar12 < (int)(uint)bVar2) break;" if (parenthesized_expression "((int)uVar12 < (int)(uint)bVar2)" ( (binary_expression "(int)uVar12 < (int)(uint)bVar2" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uint)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "option = (uint8_t *)((long)option + (ulong)bVar2);" (assignment_expression "option = (uint8_t *)((long)option + (ulong)bVar2)" identifier = (cast_expression "(uint8_t *)((long)option + (ulong)bVar2)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)option + (ulong)bVar2)" ( (binary_expression "(long)option + (ulong)bVar2" (cast_expression "(long)option" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) (expression_statement "*pbVar11 = 0x20;" (assignment_expression "*pbVar11 = 0x20" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11[1] = 0;" (assignment_expression "pbVar11[1] = 0" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);\n    pbVar11 = pbVar11 + iVar6;\n    iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);\n    iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);\n    pbVar11 = pbVar11 + iVar6 + iVar5;\n    uVar12 = iVar4 - 4;\n    if ((int)uVar12 < 5) break;\n    pbVar14 = pbVar15 + 5;\n    uVar13 = (uint)pbVar15[4];\n    pcVar8 = " ";\n    if (0x20 < pbVar15[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar12 - 1;\n    nip = 0;\n    uVar12 = uVar13 + 7 >> 3;\n    pbVar15 = pbVar14;\n    if (uVar12 != 0) {\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }\n    if (iVar4 < 4) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);\n    pbVar11 = pbVar11 + iVar6;\n    iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);\n    iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);\n    pbVar11 = pbVar11 + iVar6 + iVar5;\n    uVar12 = iVar4 - 4;\n    if ((int)uVar12 < 5) break;\n    pbVar14 = pbVar15 + 5;\n    uVar13 = (uint)pbVar15[4];\n    pcVar8 = " ";\n    if (0x20 < pbVar15[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar12 - 1;\n    nip = 0;\n    uVar12 = uVar13 + 7 >> 3;\n    pbVar15 = pbVar14;\n    if (uVar12 != 0) {\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }\n    if (iVar4 < 4) break;\n  }" { (expression_statement "iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip);" (assignment_expression "iVar6 = sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip)" identifier = (call_expression "sprint_nip((char *)pbVar11,pcVar8,(uint8_t *)&nip)" identifier (argument_list "((char *)pbVar11,pcVar8,(uint8_t *)&nip)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(uint8_t *)&nip" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&nip" & identifier)) )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar6;" (assignment_expression "pbVar11 = pbVar11 + iVar6" identifier = (binary_expression "pbVar11 + iVar6" identifier + identifier)) ;) (expression_statement "iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13);" (assignment_expression "iVar6 = __sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13)" identifier = (call_expression "__sprintf_chk(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13)" identifier (argument_list "(pbVar11,1,0xffffffffffffffff,&DAT_001bab06,uVar13)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bab06" & identifier) , identifier )))) ;) (expression_statement "iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15);" (assignment_expression "iVar5 = sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15)" identifier = (call_expression "sprint_nip((char *)(pbVar11 + iVar6),"",pbVar15)" identifier (argument_list "((char *)(pbVar11 + iVar6),"",pbVar15)" ( (cast_expression "(char *)(pbVar11 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + iVar6)" ( (binary_expression "pbVar11 + iVar6" identifier + identifier) ))) , (string_literal """" " ") , identifier )))) ;) (expression_statement "pbVar11 = pbVar11 + iVar6 + iVar5;" (assignment_expression "pbVar11 = pbVar11 + iVar6 + iVar5" identifier = (binary_expression "pbVar11 + iVar6 + iVar5" (binary_expression "pbVar11 + iVar6" identifier + identifier) + identifier)) ;) (expression_statement "uVar12 = iVar4 - 4;" (assignment_expression "uVar12 = iVar4 - 4" identifier = (binary_expression "iVar4 - 4" identifier - number_literal)) ;) (if_statement "if ((int)uVar12 < 5) break;" if (parenthesized_expression "((int)uVar12 < 5)" ( (binary_expression "(int)uVar12 < 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar15 + 5;" (assignment_expression "pbVar14 = pbVar15 + 5" identifier = (binary_expression "pbVar15 + 5" identifier + number_literal)) ;) (expression_statement "uVar13 = (uint)pbVar15[4];" (assignment_expression "uVar13 = (uint)pbVar15[4]" identifier = (cast_expression "(uint)pbVar15[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar15[4]" identifier [ number_literal ]))) ;) (expression_statement "pcVar8 = " ";" (assignment_expression "pcVar8 = " "" identifier = (string_literal "" "" " string_content ")) ;) (if_statement "if (0x20 < pbVar15[4]) break;" if (parenthesized_expression "(0x20 < pbVar15[4])" ( (binary_expression "0x20 < pbVar15[4]" number_literal < (subscript_expression "pbVar15[4]" identifier [ number_literal ])) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0013f14a:\n    iVar4 = uVar12 - 1;" statement_identifier : (expression_statement "iVar4 = uVar12 - 1;" (assignment_expression "iVar4 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;)) (expression_statement "nip = 0;" (assignment_expression "nip = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar13 + 7 >> 3;" (assignment_expression "uVar12 = uVar13 + 7 >> 3" identifier = (binary_expression "uVar13 + 7 >> 3" (binary_expression "uVar13 + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "pbVar15 = pbVar14;" (assignment_expression "pbVar15 = pbVar14" identifier = identifier) ;) (if_statement "if (uVar12 != 0) {\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;\n      puVar10 = &nip;\n      do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);\n      iVar4 = iVar4 - uVar12;\n    }" { (expression_statement "pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1;" (assignment_expression "pbVar15 = pbVar14 + (ulong)(uVar12 - 1) + 1" identifier = (binary_expression "pbVar14 + (ulong)(uVar12 - 1) + 1" (binary_expression "pbVar14 + (ulong)(uVar12 - 1)" identifier + (call_expression "(ulong)(uVar12 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 - 1)" ( (binary_expression "uVar12 - 1" identifier - number_literal) )))) + number_literal)) ;) (expression_statement "puVar10 = &nip;" (assignment_expression "puVar10 = &nip" identifier = (pointer_expression "&nip" & identifier)) ;) (do_statement "do {\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      } while (pbVar15 != pbVar9);" do (compound_statement "{\n        pbVar9 = pbVar14 + 1;\n        *(byte *)puVar10 = *pbVar14;\n        pbVar14 = pbVar9;\n        puVar10 = (uint32_t *)((long)puVar10 + 1);\n      }" { (expression_statement "pbVar9 = pbVar14 + 1;" (assignment_expression "pbVar9 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)puVar10 = *pbVar14;" (assignment_expression "*(byte *)puVar10 = *pbVar14" (pointer_expression "*(byte *)puVar10" * (cast_expression "(byte *)puVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar14 = pbVar9;" (assignment_expression "pbVar14 = pbVar9" identifier = identifier) ;) (expression_statement "puVar10 = (uint32_t *)((long)puVar10 + 1);" (assignment_expression "puVar10 = (uint32_t *)((long)puVar10 + 1)" identifier = (cast_expression "(uint32_t *)((long)puVar10 + 1)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 1)" ( (binary_expression "(long)puVar10 + 1" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pbVar15 != pbVar9)" ( (binary_expression "pbVar15 != pbVar9" identifier != identifier) )) ;) (expression_statement "iVar4 = iVar4 - uVar12;" (assignment_expression "iVar4 = iVar4 - uVar12" identifier = (binary_expression "iVar4 - uVar12" identifier - identifier)) ;) })) (if_statement "if (iVar4 < 4) break;" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (break_statement "break;" break ;)) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;) (labeled_statement "LAB_0013f397:\n  if ((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))\n  goto LAB_0013f3aa;" statement_identifier : (if_statement "if ((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))\n  goto LAB_0013f3aa;" if (parenthesized_expression "((*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0))" ( (binary_expression "(*pbVar14 == 0) || (pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0)" (parenthesized_expression "(*pbVar14 == 0)" ( (binary_expression "*pbVar14 == 0" (pointer_expression "*pbVar14" * identifier) == number_literal) )) || (parenthesized_expression "(pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0)" ( (comma_expression "pbVar15 = pbVar14 + 1, pbVar14 = pbVar14 + 1, *pbVar15 == 0" (assignment_expression "pbVar15 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) , (comma_expression "pbVar14 = pbVar14 + 1, *pbVar15 == 0" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) , (binary_expression "*pbVar15 == 0" (pointer_expression "*pbVar15" * identifier) == number_literal))) ))) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;))) (goto_statement "goto LAB_0013f0e7;" goto statement_identifier ;) (labeled_statement "switchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar12;" statement_identifier : (expression_statement "sVar7 = (size_t)(int)uVar12;" (assignment_expression "sVar7 = (size_t)(int)uVar12" identifier = (cast_expression "(size_t)(int)uVar12" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "memcpy(pbVar11,option,sVar7);" (call_expression "memcpy(pbVar11,option,sVar7)" identifier (argument_list "(pbVar11,option,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar11[sVar7] = 0;" (assignment_expression "pbVar11[sVar7] = 0" (subscript_expression "pbVar11[sVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "pbVar14 = pbVar11;" (assignment_expression "pbVar14 = pbVar11" identifier = identifier) ;) (if_statement "if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }\n    safe_strncpy((char *)pbVar11,"bad",sVar7);\n  }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0013f0e7:\n    if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }\n    safe_strncpy((char *)pbVar11,"bad",sVar7);\n  }" { (labeled_statement "LAB_0013f0e7:\n    if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }" statement_identifier : (if_statement "if (*pbVar14 != 0x2d) {\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(*pbVar14 != 0x2d)" ( (binary_expression "*pbVar14 != 0x2d" (pointer_expression "*pbVar14" * identifier) != number_literal) )) (compound_statement "{\n      do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );\n    }" { (do_statement "do {\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      } while( true );" do (compound_statement "{\n        bVar1 = *pbVar14;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar14 = pbVar14 + 1;\n      }" { (expression_statement "bVar1 = *pbVar14;" (assignment_expression "bVar1 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (if_statement "if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" if (parenthesized_expression "((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30)))" ( (binary_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))" (parenthesized_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f))" ( (binary_expression "0x19 < (byte)((bVar1 | 0x20) + 0x9f)" number_literal < (call_expression "(byte)((bVar1 | 0x20) + 0x9f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((bVar1 | 0x20) + 0x9f)" ( (binary_expression "(bVar1 | 0x20) + 0x9f" (parenthesized_expression "(bVar1 | 0x20)" ( (binary_expression "bVar1 | 0x20" identifier | number_literal) )) + number_literal) )))) )) && (parenthesized_expression "(9 < (byte)(bVar1 - 0x30))" ( (binary_expression "9 < (byte)(bVar1 - 0x30)" number_literal < (call_expression "(byte)(bVar1 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 - 0x30)" ( (binary_expression "bVar1 - 0x30" identifier - number_literal) )))) ))) )) (compound_statement "{\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" { (if_statement "if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;" if (parenthesized_expression "((bVar1 == 0) || (bVar1 == 0x2e))" ( (binary_expression "(bVar1 == 0) || (bVar1 == 0x2e)" (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 0x2e)" ( (binary_expression "bVar1 == 0x2e" identifier == number_literal) ))) )) (goto_statement "goto LAB_0013f397;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;" if (parenthesized_expression "((bVar1 != 0x2d) && (bVar1 != 0x5f))" ( (binary_expression "(bVar1 != 0x2d) && (bVar1 != 0x5f)" (parenthesized_expression "(bVar1 != 0x2d)" ( (binary_expression "bVar1 != 0x2d" identifier != number_literal) )) && (parenthesized_expression "(bVar1 != 0x5f)" ( (binary_expression "bVar1 != 0x5f" identifier != number_literal) ))) )) (break_statement "break;" break ;)) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "safe_strncpy((char *)pbVar11,"bad",sVar7);" (call_expression "safe_strncpy((char *)pbVar11,"bad",sVar7)" identifier (argument_list "((char *)pbVar11,"bad",sVar7)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""bad"" " string_content ") , identifier ))) ;) })) (labeled_statement "LAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return pre;" return identifier ;) })))
(translation_unit "void * FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return __ptr;\n}\n\n" (function_definition "void * FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return __ptr;\n}" primitive_type (pointer_declarator "* FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)" * (function_declarator "FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)" identifier (parameter_list "(uint *param_1,byte *param_2,char *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return __ptr;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "void *pvVar10;" primitive_type (pointer_declarator "*pvVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ushort *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)((long)param_1 + -1);" (assignment_expression "bVar1 = *(byte *)((long)param_1 + -1)" identifier = (pointer_expression "*(byte *)((long)param_1 + -1)" * (cast_expression "(byte *)((long)param_1 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + -1)" ( (binary_expression "(long)param_1 + -1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)bVar1;" (assignment_expression "uVar13 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar3 = *param_2 & 0xf;" (assignment_expression "bVar3 = *param_2 & 0xf" identifier = (binary_expression "*param_2 & 0xf" (pointer_expression "*param_2" * identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)bVar3;" (assignment_expression "uVar15 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar2 = (&DAT_001bb7c1)[(int)uVar15];" (assignment_expression "bVar2 = (&DAT_001bb7c1)[(int)uVar15]" identifier = (subscript_expression "(&DAT_001bb7c1)[(int)uVar15]" (parenthesized_expression "(&DAT_001bb7c1)" ( (pointer_expression "&DAT_001bb7c1" & identifier) )) [ (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "sVar7 = strlen(param_3);" (assignment_expression "sVar7 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "__ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));" (assignment_expression "__ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" identifier = (cast_expression "(void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" identifier (argument_list "(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" ( (binary_expression "sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (binary_expression "sVar7 + 2" identifier + number_literal) + (call_expression "(ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" ( (binary_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]" (parenthesized_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2)" ( (binary_expression "((uint)bVar1 + (uint)bVar2) / (uint)bVar2" (parenthesized_expression "((uint)bVar1 + (uint)bVar2)" ( (binary_expression "(uint)bVar1 + (uint)bVar2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) )) / (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) )) * (subscript_expression "(uint)(byte)(&DAT_001bb46e)[(int)uVar15]" (call_expression "(uint)(byte)(&DAT_001bb46e)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001bb46e)" ( (pointer_expression "&DAT_001bb46e" & identifier) ))) [ (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) ])) )))) ))))) ;) (expression_statement "iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);" (assignment_expression "iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" identifier = (call_expression "__sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" identifier (argument_list "(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bb34d" & identifier) , identifier )))) ;) (if_statement "if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(bVar2 <= bVar1)" ( (binary_expression "bVar2 <= bVar1" identifier <= identifier) )) (compound_statement "{\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }" { (expression_statement "pbVar12 = (byte *)((long)iVar4 + (long)__ptr);" (assignment_expression "pbVar12 = (byte *)((long)iVar4 + (long)__ptr)" identifier = (cast_expression "(byte *)((long)iVar4 + (long)__ptr)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar4 + (long)__ptr)" ( (binary_expression "(long)iVar4 + (long)__ptr" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "pcVar8 = "%ld";" (assignment_expression "pcVar8 = "%ld"" identifier = (string_literal ""%ld"" " string_content ")) ;) (if_statement "if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }" if (parenthesized_expression "(uVar15 == 7)" ( (binary_expression "uVar15 == 7" identifier == number_literal) )) (compound_statement "{\n      pcVar8 = "%lu";\n    }" { (expression_statement "pcVar8 = "%lu";" (assignment_expression "pcVar8 = "%lu"" identifier = (string_literal ""%lu"" " string_content ")) ;) })) (do_statement "do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );" do (compound_statement "{\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    }" { (switch_statement "switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" switch (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" { (case_statement "case 1:" case number_literal :) (case_statement "case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;" case number_literal : (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1)" identifier = (call_expression "FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1)" identifier (argument_list "(pbVar12,&DAT_001c0d09,param_1)" ( identifier , (pointer_expression "&DAT_001c0d09" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (if_statement "if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }" if (parenthesized_expression "(bVar3 != 1)" ( (binary_expression "bVar3 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }" { (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1)" identifier = (call_expression "FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1)" identifier (argument_list "(pbVar12,&DAT_001be5e2,param_1 + 1)" ( identifier , (pointer_expression "&DAT_001be5e2" & identifier) , (binary_expression "param_1 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) })) (break_statement "break;" break ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:\n        goto switchD_0013efd8_caseD_3;" case number_literal : (goto_statement "goto switchD_0013efd8_caseD_3;" goto statement_identifier ;)) (case_statement "case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;" case number_literal : (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bd262" & identifier) , (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;" case number_literal : (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bd262" & identifier) , (binary_expression "(ushort)*param_1 << 8 | (ushort)*param_1 >> 8" (binary_expression "(ushort)*param_1 << 8" (binary_expression "(ushort)*param_1" (parenthesized_expression "(ushort)" ( identifier )) * identifier) << number_literal) | (binary_expression "(ushort)*param_1 >> 8" (binary_expression "(ushort)*param_1" (parenthesized_expression "(ushort)" ( identifier )) * identifier) >> number_literal)) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;" case number_literal : (expression_statement "uVar15 = *param_1;" (assignment_expression "uVar15 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" ( identifier , number_literal , number_literal , identifier , (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18" (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8" (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8" (binary_expression "uVar15 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar15 & 0xff0000) >> 8" (parenthesized_expression "(uVar15 & 0xff0000)" ( (binary_expression "uVar15 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar15 & 0xff00) << 8" (parenthesized_expression "(uVar15 & 0xff00)" ( (binary_expression "uVar15 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar15 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;" case number_literal : (if_statement "if ((int)uVar13 < 5) goto LAB_0013f3aa;" if (parenthesized_expression "((int)uVar13 < 5)" ( (binary_expression "(int)uVar13 < 5" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)(byte)*param_1;" (assignment_expression "uVar15 = (uint)(byte)*param_1" identifier = (binary_expression "(uint)(byte)*param_1" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar17 = (byte *)((long)param_1 + 1);" (assignment_expression "pbVar17 = (byte *)((long)param_1 + 1)" identifier = (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = &DAT_001c0d09;" (assignment_expression "puVar14 = &DAT_001c0d09" identifier = (pointer_expression "&DAT_001c0d09" & identifier)) ;) (if_statement "if (0x20 < uVar15) goto LAB_0013f3aa;" if (parenthesized_expression "(0x20 < uVar15)" ( (binary_expression "0x20 < uVar15" number_literal < identifier) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (goto_statement "goto LAB_0013f14a;" goto statement_identifier ;)) (case_statement "case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;" case number_literal : (if_statement "if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }" if (parenthesized_expression "(((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81))" ( (binary_expression "((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)" (parenthesized_expression "((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21))" ( (binary_expression "(0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)" (parenthesized_expression "(0x15 < (int)uVar13)" ( (binary_expression "0x15 < (int)uVar13" number_literal < (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((byte)*param_1 < 0x21)" ( (binary_expression "(byte)*param_1 < 0x21" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) < number_literal) ))) )) && (parenthesized_expression "((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)" ( (binary_expression "(int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81" (cast_expression "(int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1)" ( (binary_expression "(*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1" (parenthesized_expression "(*(byte *)((long)param_1 + 1) + 0x20)" ( (binary_expression "*(byte *)((long)param_1 + 1) + 0x20" (pointer_expression "*(byte *)((long)param_1 + 1)" * (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )) - (binary_expression "(uint)(byte)*param_1" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ))) < number_literal) ))) )) (compound_statement "{\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }" { (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001ba61a" & identifier) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001ba61a" & identifier) , (pointer_expression "*(byte *)((long)param_1 + 1)" * (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));" (assignment_expression "iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" identifier = (call_expression "FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" identifier (argument_list "(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" ( (binary_expression "pbVar12 + iVar4" identifier + identifier) , (cast_expression "(ushort *)((long)param_1 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 2)" ( (binary_expression "(long)param_1 + 2" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4 + iVar6;" (assignment_expression "pbVar12 = pbVar12 + iVar4 + iVar6" identifier = (binary_expression "pbVar12 + iVar4 + iVar6" (binary_expression "pbVar12 + iVar4" identifier + identifier) + identifier)) ;) (expression_statement "puVar16 = (ushort *)((long)param_1 + 0x12);" (assignment_expression "puVar16 = (ushort *)((long)param_1 + 0x12)" identifier = (cast_expression "(ushort *)((long)param_1 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x12)" ( (binary_expression "(long)param_1 + 0x12" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);" do (compound_statement "{\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          }" { (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16)" identifier = (call_expression "FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16)" identifier (argument_list "(pbVar12,&DAT_001bea5f,puVar16)" ( identifier , (pointer_expression "&DAT_001bea5f" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (expression_statement "puVar16 = puVar16 + 2;" (assignment_expression "puVar16 = puVar16 + 2" identifier = (binary_expression "puVar16 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16)" ( (binary_expression "(ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16" (cast_expression "(ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16)" ( (binary_expression "(long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16" (binary_expression "(long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)(uVar13 - 0x16 >> 2) * 4" (call_expression "(ulong)(uVar13 - 0x16 >> 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 0x16 >> 2)" ( (binary_expression "uVar13 - 0x16 >> 2" (binary_expression "uVar13 - 0x16" identifier - number_literal) >> number_literal) ))) * number_literal)) + number_literal) ))) != identifier) )) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (case_statement "case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;" case number_literal : (expression_statement "pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);" (assignment_expression "pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr)" identifier = (cast_expression "(void *)FUN_00141bc1(param_1,uVar13,__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00141bc1(param_1,uVar13,__ptr)" identifier (argument_list "(param_1,uVar13,__ptr)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }" if (parenthesized_expression "(pvVar10 != (void *)0x0)" ( (binary_expression "pvVar10 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(__ptr);\n          __ptr = pvVar10;\n        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = pvVar10;" (assignment_expression "__ptr = pvVar10" identifier = identifier) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) (case_statement "case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;" case number_literal : (expression_statement "pbVar17 = (byte *)((long)param_1 + 1);" (assignment_expression "pbVar17 = (byte *)((long)param_1 + 1)" identifier = (cast_expression "(byte *)((long)param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 1)" ( (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" if (parenthesized_expression "((byte)*param_1 == 0)" ( (binary_expression "(byte)*param_1 == 0" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) (compound_statement "{\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }" { (expression_statement "pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);" (assignment_expression "pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" identifier = (cast_expression "(void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" identifier (argument_list "(pbVar17,uVar13 - 1,__ptr)" ( identifier , (binary_expression "uVar13 - 1" identifier - number_literal) , identifier ))))) ;) (if_statement "if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }" if (parenthesized_expression "(pvVar10 != (void *)0x0)" ( (binary_expression "pvVar10 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(__ptr);\n            __ptr = pvVar10;\n          }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = pvVar10;" (assignment_expression "__ptr = pvVar10" identifier = identifier) ;) })) }) (else_clause "else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" else (if_statement "if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" if (parenthesized_expression "(((byte)*param_1 == 1) && (4 < (int)uVar13))" ( (binary_expression "((byte)*param_1 == 1) && (4 < (int)uVar13)" (parenthesized_expression "((byte)*param_1 == 1)" ( (binary_expression "(byte)*param_1 == 1" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) && (parenthesized_expression "(4 < (int)uVar13)" ( (binary_expression "4 < (int)uVar13" number_literal < (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" { (expression_statement "puVar14 = &DAT_001c0d09;" (assignment_expression "puVar14 = &DAT_001c0d09" identifier = (pointer_expression "&DAT_001c0d09" & identifier)) ;) (do_statement "do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));" do (compound_statement "{\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          }" { (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17)" identifier = (call_expression "FUN_0013eeb3(pbVar12,puVar14,pbVar17)" identifier (argument_list "(pbVar12,puVar14,pbVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" identifier = (binary_expression "pbVar12 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar17 = pbVar17 + 4;" (assignment_expression "pbVar17 = pbVar17 + 4" identifier = (binary_expression "pbVar17 + 4" identifier + number_literal)) ;) (expression_statement "puVar14 = &DAT_001bea5f;" (assignment_expression "puVar14 = &DAT_001bea5f" identifier = (pointer_expression "&DAT_001bea5f" & identifier)) ;) }) while (parenthesized_expression "(pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5))" ( (binary_expression "pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" identifier != (cast_expression "(byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" ( (binary_expression "(long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5" (binary_expression "(long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)(uVar13 - 5 >> 2) * 4" (call_expression "(ulong)(uVar13 - 5 >> 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 5 >> 2)" ( (binary_expression "uVar13 - 5 >> 2" (binary_expression "uVar13 - 5" identifier - number_literal) >> number_literal) ))) * number_literal)) + number_literal) )))) )) ;) })))) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;)) })) (expression_statement "uVar13 = uVar13 - bVar2;" (assignment_expression "uVar13 = uVar13 - bVar2" identifier = (binary_expression "uVar13 - bVar2" identifier - identifier)) ;) (if_statement "if ((int)uVar13 < (int)(uint)bVar2) break;" if (parenthesized_expression "((int)uVar13 < (int)(uint)bVar2)" ( (binary_expression "(int)uVar13 < (int)(uint)bVar2" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uint)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "param_1 = (uint *)((long)param_1 + (ulong)bVar2);" (assignment_expression "param_1 = (uint *)((long)param_1 + (ulong)bVar2)" identifier = (cast_expression "(uint *)((long)param_1 + (ulong)bVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)bVar2)" ( (binary_expression "(long)param_1 + (ulong)bVar2" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) (expression_statement "*pbVar12 = 0x20;" (assignment_expression "*pbVar12 = 0x20" (pointer_expression "*pbVar12" * identifier) = number_literal) ;) (expression_statement "pbVar12[1] = 0;" (assignment_expression "pbVar12[1] = 0" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }" { (expression_statement "iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);" (assignment_expression "iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44)" identifier = (call_expression "FUN_0013eeb3(pbVar12,puVar14,local_44)" identifier (argument_list "(pbVar12,puVar14,local_44)" ( identifier , identifier , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar6;" (assignment_expression "pbVar12 = pbVar12 + iVar6" identifier = (binary_expression "pbVar12 + iVar6" identifier + identifier)) ;) (expression_statement "iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);" (assignment_expression "iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" identifier = (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" identifier (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001bab06" & identifier) , identifier )))) ;) (expression_statement "iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);" (assignment_expression "iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" identifier = (call_expression "FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" identifier (argument_list "(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" ( (binary_expression "pbVar12 + iVar6" identifier + identifier) , (pointer_expression "&DAT_001c0d09" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar12 + iVar6 + iVar5;" (assignment_expression "pbVar12 = pbVar12 + iVar6 + iVar5" identifier = (binary_expression "pbVar12 + iVar6 + iVar5" (binary_expression "pbVar12 + iVar6" identifier + identifier) + identifier)) ;) (expression_statement "uVar13 = iVar4 - 4;" (assignment_expression "uVar13 = iVar4 - 4" identifier = (binary_expression "iVar4 - 4" identifier - number_literal)) ;) (if_statement "if ((int)uVar13 < 5) break;" if (parenthesized_expression "((int)uVar13 < 5)" ( (binary_expression "(int)uVar13 < 5" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar17 = pbVar18 + 5;" (assignment_expression "pbVar17 = pbVar18 + 5" identifier = (binary_expression "pbVar18 + 5" identifier + number_literal)) ;) (expression_statement "uVar15 = (uint)pbVar18[4];" (assignment_expression "uVar15 = (uint)pbVar18[4]" identifier = (cast_expression "(uint)pbVar18[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar18[4]" identifier [ number_literal ]))) ;) (expression_statement "puVar14 = &DAT_001bea5f;" (assignment_expression "puVar14 = &DAT_001bea5f" identifier = (pointer_expression "&DAT_001bea5f" & identifier)) ;) (if_statement "if (0x20 < pbVar18[4]) break;" if (parenthesized_expression "(0x20 < pbVar18[4])" ( (binary_expression "0x20 < pbVar18[4]" number_literal < (subscript_expression "pbVar18[4]" identifier [ number_literal ])) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0013f14a:\n    iVar4 = uVar13 - 1;" statement_identifier : (expression_statement "iVar4 = uVar13 - 1;" (assignment_expression "iVar4 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;)) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[1] = 0;" (assignment_expression "local_44[1] = 0" (subscript_expression "local_44[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[2] = 0;" (assignment_expression "local_44[2] = 0" (subscript_expression "local_44[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[3] = 0;" (assignment_expression "local_44[3] = 0" (subscript_expression "local_44[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar13 = uVar15 + 7 >> 3;" (assignment_expression "uVar13 = uVar15 + 7 >> 3" identifier = (binary_expression "uVar15 + 7 >> 3" (binary_expression "uVar15 + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (if_statement "if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }" { (expression_statement "pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;" (assignment_expression "pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1" identifier = (binary_expression "pbVar17 + (ulong)(uVar13 - 1) + 1" (binary_expression "pbVar17 + (ulong)(uVar13 - 1)" identifier + (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )))) + number_literal)) ;) (expression_statement "pbVar11 = local_44;" (assignment_expression "pbVar11 = local_44" identifier = identifier) ;) (do_statement "do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);" do (compound_statement "{\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      }" { (expression_statement "pbVar9 = pbVar17 + 1;" (assignment_expression "pbVar9 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = *pbVar17;" (assignment_expression "*pbVar11 = *pbVar17" (pointer_expression "*pbVar11" * identifier) = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar17 = pbVar9;" (assignment_expression "pbVar17 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar18 != pbVar9)" ( (binary_expression "pbVar18 != pbVar9" identifier != identifier) )) ;) (expression_statement "iVar4 = iVar4 - uVar13;" (assignment_expression "iVar4 = iVar4 - uVar13" identifier = (binary_expression "iVar4 - uVar13" identifier - identifier)) ;) })) (if_statement "if (iVar4 < 4) break;" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (break_statement "break;" break ;)) })) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;) (labeled_statement "LAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;" statement_identifier : (if_statement "if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;" if (parenthesized_expression "((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))" ( (binary_expression "(*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0)" (parenthesized_expression "(*pbVar17 == 0)" ( (binary_expression "*pbVar17 == 0" (pointer_expression "*pbVar17" * identifier) == number_literal) )) || (parenthesized_expression "(pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0)" ( (comma_expression "pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0" (assignment_expression "pbVar18 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) , (comma_expression "pbVar17 = pbVar17 + 1, *pbVar18 == 0" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) , (binary_expression "*pbVar18 == 0" (pointer_expression "*pbVar18" * identifier) == number_literal))) ))) )) (goto_statement "goto LAB_0013f3aa;" goto statement_identifier ;))) (goto_statement "goto LAB_0013f0e7;" goto statement_identifier ;) (labeled_statement "switchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;" statement_identifier : (expression_statement "sVar7 = (size_t)(int)uVar13;" (assignment_expression "sVar7 = (size_t)(int)uVar13" identifier = (cast_expression "(size_t)(int)uVar13" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "memcpy(pbVar12,param_1,sVar7);" (call_expression "memcpy(pbVar12,param_1,sVar7)" identifier (argument_list "(pbVar12,param_1,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar12[sVar7] = 0;" (assignment_expression "pbVar12[sVar7] = 0" (subscript_expression "pbVar12[sVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "pbVar17 = pbVar12;" (assignment_expression "pbVar17 = pbVar12" identifier = identifier) ;) (if_statement "if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }" { (labeled_statement "LAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" statement_identifier : (if_statement "if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(*pbVar17 != 0x2d)" ( (binary_expression "*pbVar17 != 0x2d" (pointer_expression "*pbVar17" * identifier) != number_literal) )) (compound_statement "{\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" { (do_statement "do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );" do (compound_statement "{\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      }" { (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (if_statement "if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" if (parenthesized_expression "((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30)))" ( (binary_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))" (parenthesized_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f))" ( (binary_expression "0x19 < (byte)((bVar1 | 0x20) + 0x9f)" number_literal < (call_expression "(byte)((bVar1 | 0x20) + 0x9f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((bVar1 | 0x20) + 0x9f)" ( (binary_expression "(bVar1 | 0x20) + 0x9f" (parenthesized_expression "(bVar1 | 0x20)" ( (binary_expression "bVar1 | 0x20" identifier | number_literal) )) + number_literal) )))) )) && (parenthesized_expression "(9 < (byte)(bVar1 - 0x30))" ( (binary_expression "9 < (byte)(bVar1 - 0x30)" number_literal < (call_expression "(byte)(bVar1 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 - 0x30)" ( (binary_expression "bVar1 - 0x30" identifier - number_literal) )))) ))) )) (compound_statement "{\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" { (if_statement "if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;" if (parenthesized_expression "((bVar1 == 0) || (bVar1 == 0x2e))" ( (binary_expression "(bVar1 == 0) || (bVar1 == 0x2e)" (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 0x2e)" ( (binary_expression "bVar1 == 0x2e" identifier == number_literal) ))) )) (goto_statement "goto LAB_0013f397;" goto statement_identifier ;)) (if_statement "if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;" if (parenthesized_expression "((bVar1 != 0x2d) && (bVar1 != 0x5f))" ( (binary_expression "(bVar1 != 0x2d) && (bVar1 != 0x5f)" (parenthesized_expression "(bVar1 != 0x2d)" ( (binary_expression "bVar1 != 0x2d" identifier != number_literal) )) && (parenthesized_expression "(bVar1 != 0x5f)" ( (binary_expression "bVar1 != 0x5f" identifier != number_literal) ))) )) (break_statement "break;" break ;)) })) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "FUN_001a49d0(pbVar12,"bad",sVar7);" (call_expression "FUN_001a49d0(pbVar12,"bad",sVar7)" identifier (argument_list "(pbVar12,"bad",sVar7)" ( identifier , (string_literal ""bad"" " string_content ") , identifier ))) ;) })) (labeled_statement "LAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return __ptr;" return identifier ;) })))
(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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (do_statement do (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( IDENT )) * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT) | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) >> LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) + LIT) )) - (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) >> LIT) ))) * LIT)) + LIT) ))) != IDENT) )) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - LIT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) >> LIT) ))) * LIT)) + LIT) )))) )) ;) })))) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) == LIT))) ))) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) + LIT) )))) )) && (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (break_statement break ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "void * FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return __ptr;\n}" (primitive_type "void") (pointer_declarator "* FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)" (* "*") (function_declarator "FUN_0013eeef(uint *param_1,byte *param_2,char *param_3)" (identifier "FUN_0013eeef") (parameter_list "(uint *param_1,byte *param_2,char *param_3)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (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  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  size_t sVar7;\n  void *__ptr;\n  char *pcVar8;\n  byte *pbVar9;\n  void *pvVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  undefined *puVar14;\n  uint uVar15;\n  ushort *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  long in_FS_OFFSET;\n  byte local_44 [4];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  bVar1 = *(byte *)((long)param_1 + -1);\n  uVar13 = (uint)bVar1;\n  bVar3 = *param_2 & 0xf;\n  uVar15 = (uint)bVar3;\n  bVar2 = (&DAT_001bb7c1)[(int)uVar15];\n  sVar7 = strlen(param_3);\n  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));\n  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);\n  if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }\n  goto LAB_0013f3aa;\n  while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }\n  goto LAB_0013f3aa;\nLAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;\n  goto LAB_0013f0e7;\nswitchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;\n  memcpy(pbVar12,param_1,sVar7);\n  pbVar12[sVar7] = 0;\n  pbVar17 = pbVar12;\n  if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }\nLAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return __ptr;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "void *pvVar10;" (primitive_type "void") (pointer_declarator "*pvVar10" (* "*") (identifier "pvVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "ushort *puVar16;" (type_identifier "ushort") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte local_44 [4];" (type_identifier "byte") (array_declarator "local_44 [4]" (identifier "local_44") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)((long)param_1 + -1);" (assignment_expression "bVar1 = *(byte *)((long)param_1 + -1)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)param_1 + -1)" (* "*") (cast_expression "(byte *)((long)param_1 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + -1)" (( "(") (binary_expression "(long)param_1 + -1" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)bVar1;" (assignment_expression "uVar13 = (uint)bVar1" (identifier "uVar13") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "bVar3 = *param_2 & 0xf;" (assignment_expression "bVar3 = *param_2 & 0xf" (identifier "bVar3") (= "=") (binary_expression "*param_2 & 0xf" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "uVar15 = (uint)bVar3;" (assignment_expression "uVar15 = (uint)bVar3" (identifier "uVar15") (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (expression_statement "bVar2 = (&DAT_001bb7c1)[(int)uVar15];" (assignment_expression "bVar2 = (&DAT_001bb7c1)[(int)uVar15]" (identifier "bVar2") (= "=") (subscript_expression "(&DAT_001bb7c1)[(int)uVar15]" (parenthesized_expression "(&DAT_001bb7c1)" (( "(") (pointer_expression "&DAT_001bb7c1" (& "&") (identifier "DAT_001bb7c1")) () ")")) ([ "[") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (] "]"))) (; ";")) (expression_statement "sVar7 = strlen(param_3);" (assignment_expression "sVar7 = strlen(param_3)" (identifier "sVar7") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "__ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));" (assignment_expression "__ptr = (void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010e5ce(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" (identifier "FUN_0010e5ce") (argument_list "(sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]))" (( "(") (binary_expression "sVar7 + 2 +\n                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (binary_expression "sVar7 + 2" (identifier "sVar7") (+ "+") (number_literal "2")) (+ "+") (call_expression "(ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15])" (( "(") (binary_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *\n                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]" (parenthesized_expression "(((uint)bVar1 + (uint)bVar2) / (uint)bVar2)" (( "(") (binary_expression "((uint)bVar1 + (uint)bVar2) / (uint)bVar2" (parenthesized_expression "((uint)bVar1 + (uint)bVar2)" (( "(") (binary_expression "(uint)bVar1 + (uint)bVar2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (+ "+") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))) () ")")) (/ "/") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))) () ")")) (* "*") (subscript_expression "(uint)(byte)(&DAT_001bb46e)[(int)uVar15]" (call_expression "(uint)(byte)(&DAT_001bb46e)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001bb46e)" (( "(") (pointer_expression "&DAT_001bb46e" (& "&") (identifier "DAT_001bb46e")) () ")"))) ([ "[") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (] "]"))) () ")")))) () ")"))))) (; ";")) (expression_statement "iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);" (assignment_expression "iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" (identifier "iVar4") (= "=") (call_expression "__sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" (identifier "__sprintf_chk") (argument_list "(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3)" (( "(") (identifier "__ptr") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001bb34d" (& "&") (identifier "DAT_001bb34d")) (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (bVar2 <= bVar1) {\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(bVar2 <= bVar1)" (( "(") (binary_expression "bVar2 <= bVar1" (identifier "bVar2") (<= "<=") (identifier "bVar1")) () ")")) (compound_statement "{\n    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);\n    pcVar8 = "%ld";\n    if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }\n    do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );\n  }" ({ "{") (expression_statement "pbVar12 = (byte *)((long)iVar4 + (long)__ptr);" (assignment_expression "pbVar12 = (byte *)((long)iVar4 + (long)__ptr)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)((long)iVar4 + (long)__ptr)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar4 + (long)__ptr)" (( "(") (binary_expression "(long)iVar4 + (long)__ptr" (cast_expression "(long)iVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar4")) (+ "+") (cast_expression "(long)__ptr" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr"))) () ")")))) (; ";")) (expression_statement "pcVar8 = "%ld";" (assignment_expression "pcVar8 = "%ld"" (identifier "pcVar8") (= "=") (string_literal ""%ld"" (" """) (string_content "%ld") (" """))) (; ";")) (if_statement "if (uVar15 == 7) {\n      pcVar8 = "%lu";\n    }" (if "if") (parenthesized_expression "(uVar15 == 7)" (( "(") (binary_expression "uVar15 == 7" (identifier "uVar15") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      pcVar8 = "%lu";\n    }" ({ "{") (expression_statement "pcVar8 = "%lu";" (assignment_expression "pcVar8 = "%lu"" (identifier "pcVar8") (= "=") (string_literal ""%lu"" (" """) (string_content "%lu") (" """))) (; ";")) (} "}"))) (do_statement "do {\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    } while( true );" (do "do") (compound_statement "{\n      switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }\n      uVar13 = uVar13 - bVar2;\n      if ((int)uVar13 < (int)(uint)bVar2) break;\n      param_1 = (uint *)((long)param_1 + (ulong)bVar2);\n      *pbVar12 = 0x20;\n      pbVar12[1] = 0;\n      pbVar12 = pbVar12 + 1;\n    }" ({ "{") (switch_statement "switch(bVar3) {\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" (switch "switch") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n      case 1:\n      case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;\n      case 3:\n      case 4:\n        goto switchD_0013efd8_caseD_3;\n      case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 7:\n      case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;\n      case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;\n      case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;\n      case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;\n      case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;\n      }" ({ "{") (case_statement "case 1:" (case "case") (number_literal "1") (: ":")) (case_statement "case 2:\n        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);\n        pbVar12 = pbVar12 + iVar4;\n        if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1)" (identifier "iVar4") (= "=") (call_expression "FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1)" (identifier "FUN_0013eeb3") (argument_list "(pbVar12,&DAT_001c0d09,param_1)" (( "(") (identifier "pbVar12") (, ",") (pointer_expression "&DAT_001c0d09" (& "&") (identifier "DAT_001c0d09")) (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (if_statement "if (bVar3 != 1) {\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }" (if "if") (parenthesized_expression "(bVar3 != 1)" (( "(") (binary_expression "bVar3 != 1" (identifier "bVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);\n          pbVar12 = pbVar12 + iVar4;\n        }" ({ "{") (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1)" (identifier "iVar4") (= "=") (call_expression "FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1)" (identifier "FUN_0013eeb3") (argument_list "(pbVar12,&DAT_001be5e2,param_1 + 1)" (( "(") (identifier "pbVar12") (, ",") (pointer_expression "&DAT_001be5e2" (& "&") (identifier "DAT_001be5e2")) (, ",") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 4:\n        goto switchD_0013efd8_caseD_3;" (case "case") (number_literal "4") (: ":") (goto_statement "goto switchD_0013efd8_caseD_3;" (goto "goto") (statement_identifier "switchD_0013efd8_caseD_3") (; ";"))) (case_statement "case 5:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);\n        pbVar12 = pbVar12 + iVar4;\n        break;" (case "case") (number_literal "5") (: ":") (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" (identifier "iVar4") (= "=") (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" (identifier "__sprintf_chk") (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1)" (( "(") (identifier "pbVar12") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001bd262" (& "&") (identifier "DAT_001bd262")) (, ",") (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);\n        pbVar12 = pbVar12 + iVar4;\n        break;" (case "case") (number_literal "6") (: ":") (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" (identifier "iVar4") (= "=") (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" (identifier "__sprintf_chk") (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,\n                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8)" (( "(") (identifier "pbVar12") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001bd262" (& "&") (identifier "DAT_001bd262")) (, ",") (binary_expression "(ushort)*param_1 << 8 | (ushort)*param_1 >> 8" (binary_expression "(ushort)*param_1 << 8" (binary_expression "(ushort)*param_1" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "param_1")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(ushort)*param_1 >> 8" (binary_expression "(ushort)*param_1" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "param_1")) (>> ">>") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 8:\n        uVar15 = *param_1;\n        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);\n        pbVar12 = pbVar12 + iVar4;\n        break;" (case "case") (number_literal "8") (: ":") (expression_statement "uVar15 = *param_1;" (assignment_expression "uVar15 = *param_1" (identifier "uVar15") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" (identifier "iVar4") (= "=") (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" (identifier "__sprintf_chk") (argument_list "(pbVar12,1,0xffffffffffffffff,pcVar8,\n                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18)" (( "(") (identifier "pbVar12") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (identifier "pcVar8") (, ",") (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |\n                              uVar15 << 0x18" (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8" (binary_expression "uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8" (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar15 & 0xff0000) >> 8" (parenthesized_expression "(uVar15 & 0xff0000)" (( "(") (binary_expression "uVar15 & 0xff0000" (identifier "uVar15") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar15 & 0xff00) << 8" (parenthesized_expression "(uVar15 & 0xff00)" (( "(") (binary_expression "uVar15 & 0xff00" (identifier "uVar15") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar15 << 0x18" (identifier "uVar15") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n        if ((int)uVar13 < 5) goto LAB_0013f3aa;\n        uVar15 = (uint)(byte)*param_1;\n        pbVar17 = (byte *)((long)param_1 + 1);\n        puVar14 = &DAT_001c0d09;\n        if (0x20 < uVar15) goto LAB_0013f3aa;\n        goto LAB_0013f14a;" (case "case") (number_literal "10") (: ":") (if_statement "if ((int)uVar13 < 5) goto LAB_0013f3aa;" (if "if") (parenthesized_expression "((int)uVar13 < 5)" (( "(") (binary_expression "(int)uVar13 < 5" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (number_literal "5")) () ")")) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";"))) (expression_statement "uVar15 = (uint)(byte)*param_1;" (assignment_expression "uVar15 = (uint)(byte)*param_1" (identifier "uVar15") (= "=") (binary_expression "(uint)(byte)*param_1" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pbVar17 = (byte *)((long)param_1 + 1);" (assignment_expression "pbVar17 = (byte *)((long)param_1 + 1)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((long)param_1 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 1)" (( "(") (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar14 = &DAT_001c0d09;" (assignment_expression "puVar14 = &DAT_001c0d09" (identifier "puVar14") (= "=") (pointer_expression "&DAT_001c0d09" (& "&") (identifier "DAT_001c0d09"))) (; ";")) (if_statement "if (0x20 < uVar15) goto LAB_0013f3aa;" (if "if") (parenthesized_expression "(0x20 < uVar15)" (( "(") (binary_expression "0x20 < uVar15" (number_literal "0x20") (< "<") (identifier "uVar15")) () ")")) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";"))) (goto_statement "goto LAB_0013f14a;" (goto "goto") (statement_identifier "LAB_0013f14a") (; ";"))) (case_statement "case 0xb:\n        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }\n        goto LAB_0013f3aa;" (case "case") (number_literal "0xb") (: ":") (if_statement "if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }" (if "if") (parenthesized_expression "(((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81))" (( "(") (binary_expression "((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&\n           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)" (parenthesized_expression "((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21))" (( "(") (binary_expression "(0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)" (parenthesized_expression "(0x15 < (int)uVar13)" (( "(") (binary_expression "0x15 < (int)uVar13" (number_literal "0x15") (< "<") (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13"))) () ")")) (&& "&&") (parenthesized_expression "((byte)*param_1 < 0x21)" (( "(") (binary_expression "(byte)*param_1 < 0x21" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "param_1")) (< "<") (number_literal "0x21")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)" (( "(") (binary_expression "(int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81" (cast_expression "(int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1" (parenthesized_expression "(*(byte *)((long)param_1 + 1) + 0x20)" (( "(") (binary_expression "*(byte *)((long)param_1 + 1) + 0x20" (pointer_expression "*(byte *)((long)param_1 + 1)" (* "*") (cast_expression "(byte *)((long)param_1 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 1)" (( "(") (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (+ "+") (number_literal "0x20")) () ")")) (- "-") (binary_expression "(uint)(byte)*param_1" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "param_1"))) () ")"))) (< "<") (number_literal "0x81")) () ")"))) () ")")) (compound_statement "{\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);\n          pbVar12 = pbVar12 + iVar4;\n          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));\n          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));\n          pbVar12 = pbVar12 + iVar4 + iVar6;\n          puVar16 = (ushort *)((long)param_1 + 0x12);\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);\n        }" ({ "{") (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" (identifier "iVar4") (= "=") (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" (identifier "__sprintf_chk") (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a)" (( "(") (identifier "pbVar12") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001ba61a" (& "&") (identifier "DAT_001ba61a")) () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1));" (assignment_expression "iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" (identifier "iVar4") (= "=") (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" (identifier "__sprintf_chk") (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,\n                                *(byte *)((long)param_1 + 1))" (( "(") (identifier "pbVar12") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001ba61a" (& "&") (identifier "DAT_001ba61a")) (, ",") (pointer_expression "*(byte *)((long)param_1 + 1)" (* "*") (cast_expression "(byte *)((long)param_1 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 1)" (( "(") (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));" (assignment_expression "iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" (identifier "iVar6") (= "=") (call_expression "FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" (identifier "FUN_0014357f") (argument_list "(pbVar12 + iVar4,(ushort *)((long)param_1 + 2))" (( "(") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4")) (, ",") (cast_expression "(ushort *)((long)param_1 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 2)" (( "(") (binary_expression "(long)param_1 + 2" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "2")) () ")"))) () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4 + iVar6;" (assignment_expression "pbVar12 = pbVar12 + iVar4 + iVar6" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4 + iVar6" (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "puVar16 = (ushort *)((long)param_1 + 0x12);" (assignment_expression "puVar16 = (ushort *)((long)param_1 + 0x12)" (identifier "puVar16") (= "=") (cast_expression "(ushort *)((long)param_1 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x12)" (( "(") (binary_expression "(long)param_1 + 0x12" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (; ";")) (do_statement "do {\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);" (do "do") (compound_statement "{\n            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);\n            pbVar12 = pbVar12 + iVar4;\n            puVar16 = puVar16 + 2;\n          }" ({ "{") (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16)" (identifier "iVar4") (= "=") (call_expression "FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16)" (identifier "FUN_0013eeb3") (argument_list "(pbVar12,&DAT_001bea5f,puVar16)" (( "(") (identifier "pbVar12") (, ",") (pointer_expression "&DAT_001bea5f" (& "&") (identifier "DAT_001bea5f")) (, ",") (identifier "puVar16") () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "puVar16 = puVar16 + 2;" (assignment_expression "puVar16 = puVar16 + 2" (identifier "puVar16") (= "=") (binary_expression "puVar16 + 2" (identifier "puVar16") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16)" (( "(") (binary_expression "(ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16" (cast_expression "(ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16)" (( "(") (binary_expression "(long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16" (binary_expression "(long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (binary_expression "(ulong)(uVar13 - 0x16 >> 2) * 4" (call_expression "(ulong)(uVar13 - 0x16 >> 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar13 - 0x16 >> 2)" (( "(") (binary_expression "uVar13 - 0x16 >> 2" (binary_expression "uVar13 - 0x16" (identifier "uVar13") (- "-") (number_literal "0x16")) (>> ">>") (number_literal "2")) () ")"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x16")) () ")"))) (!= "!=") (identifier "puVar16")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";"))) (case_statement "case 0xc:\n        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);\n        if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }\n        goto LAB_0013f3aa;" (case "case") (number_literal "0xc") (: ":") (expression_statement "pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);" (assignment_expression "pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr)" (identifier "pvVar10") (= "=") (cast_expression "(void *)FUN_00141bc1(param_1,uVar13,__ptr)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00141bc1(param_1,uVar13,__ptr)" (identifier "FUN_00141bc1") (argument_list "(param_1,uVar13,__ptr)" (( "(") (identifier "param_1") (, ",") (identifier "uVar13") (, ",") (identifier "__ptr") () ")"))))) (; ";")) (if_statement "if (pvVar10 != (void *)0x0) {\n          free(__ptr);\n          __ptr = pvVar10;\n        }" (if "if") (parenthesized_expression "(pvVar10 != (void *)0x0)" (( "(") (binary_expression "pvVar10 != (void *)0x0" (identifier "pvVar10") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          free(__ptr);\n          __ptr = pvVar10;\n        }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__ptr = pvVar10;" (assignment_expression "__ptr = pvVar10" (identifier "__ptr") (= "=") (identifier "pvVar10")) (; ";")) (} "}"))) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";"))) (case_statement "case 0xd:\n        pbVar17 = (byte *)((long)param_1 + 1);\n        if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }\n        goto LAB_0013f3aa;" (case "case") (number_literal "0xd") (: ":") (expression_statement "pbVar17 = (byte *)((long)param_1 + 1);" (assignment_expression "pbVar17 = (byte *)((long)param_1 + 1)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((long)param_1 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 1)" (( "(") (binary_expression "(long)param_1 + 1" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((byte)*param_1 == 0) {\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }\n        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" (if "if") (parenthesized_expression "((byte)*param_1 == 0)" (( "(") (binary_expression "(byte)*param_1 == 0" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);\n          if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }\n        }" ({ "{") (expression_statement "pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);" (assignment_expression "pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" (identifier "pvVar10") (= "=") (cast_expression "(void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00141bc1(pbVar17,uVar13 - 1,__ptr)" (identifier "FUN_00141bc1") (argument_list "(pbVar17,uVar13 - 1,__ptr)" (( "(") (identifier "pbVar17") (, ",") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) (, ",") (identifier "__ptr") () ")"))))) (; ";")) (if_statement "if (pvVar10 != (void *)0x0) {\n            free(__ptr);\n            __ptr = pvVar10;\n          }" (if "if") (parenthesized_expression "(pvVar10 != (void *)0x0)" (( "(") (binary_expression "pvVar10 != (void *)0x0" (identifier "pvVar10") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            free(__ptr);\n            __ptr = pvVar10;\n          }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__ptr = pvVar10;" (assignment_expression "__ptr = pvVar10" (identifier "__ptr") (= "=") (identifier "pvVar10")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" (else "else") (if_statement "if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" (if "if") (parenthesized_expression "(((byte)*param_1 == 1) && (4 < (int)uVar13))" (( "(") (binary_expression "((byte)*param_1 == 1) && (4 < (int)uVar13)" (parenthesized_expression "((byte)*param_1 == 1)" (( "(") (binary_expression "(byte)*param_1 == 1" (binary_expression "(byte)*param_1" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "param_1")) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(4 < (int)uVar13)" (( "(") (binary_expression "4 < (int)uVar13" (number_literal "4") (< "<") (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13"))) () ")"))) () ")")) (compound_statement "{\n          puVar14 = &DAT_001c0d09;\n          do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));\n        }" ({ "{") (expression_statement "puVar14 = &DAT_001c0d09;" (assignment_expression "puVar14 = &DAT_001c0d09" (identifier "puVar14") (= "=") (pointer_expression "&DAT_001c0d09" (& "&") (identifier "DAT_001c0d09"))) (; ";")) (do_statement "do {\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));" (do "do") (compound_statement "{\n            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);\n            pbVar12 = pbVar12 + iVar4;\n            pbVar17 = pbVar17 + 4;\n            puVar14 = &DAT_001bea5f;\n          }" ({ "{") (expression_statement "iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);" (assignment_expression "iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17)" (identifier "iVar4") (= "=") (call_expression "FUN_0013eeb3(pbVar12,puVar14,pbVar17)" (identifier "FUN_0013eeb3") (argument_list "(pbVar12,puVar14,pbVar17)" (( "(") (identifier "pbVar12") (, ",") (identifier "puVar14") (, ",") (identifier "pbVar17") () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar4;" (assignment_expression "pbVar12 = pbVar12 + iVar4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar4" (identifier "pbVar12") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + 4;" (assignment_expression "pbVar17 = pbVar17 + 4" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 4" (identifier "pbVar17") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar14 = &DAT_001bea5f;" (assignment_expression "puVar14 = &DAT_001bea5f" (identifier "puVar14") (= "=") (pointer_expression "&DAT_001bea5f" (& "&") (identifier "DAT_001bea5f"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5))" (( "(") (binary_expression "pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" (identifier "pbVar17") (!= "!=") (cast_expression "(byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5)" (( "(") (binary_expression "(long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5" (binary_expression "(long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (binary_expression "(ulong)(uVar13 - 5 >> 2) * 4" (call_expression "(ulong)(uVar13 - 5 >> 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar13 - 5 >> 2)" (( "(") (binary_expression "uVar13 - 5 >> 2" (binary_expression "uVar13 - 5" (identifier "uVar13") (- "-") (number_literal "5")) (>> ">>") (number_literal "2")) () ")"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "5")) () ")")))) () ")")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";"))) (} "}"))) (expression_statement "uVar13 = uVar13 - bVar2;" (assignment_expression "uVar13 = uVar13 - bVar2" (identifier "uVar13") (= "=") (binary_expression "uVar13 - bVar2" (identifier "uVar13") (- "-") (identifier "bVar2"))) (; ";")) (if_statement "if ((int)uVar13 < (int)(uint)bVar2) break;" (if "if") (parenthesized_expression "((int)uVar13 < (int)(uint)bVar2)" (( "(") (binary_expression "(int)uVar13 < (int)(uint)bVar2" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (cast_expression "(int)(uint)bVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_1 = (uint *)((long)param_1 + (ulong)bVar2);" (assignment_expression "param_1 = (uint *)((long)param_1 + (ulong)bVar2)" (identifier "param_1") (= "=") (cast_expression "(uint *)((long)param_1 + (ulong)bVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)bVar2)" (( "(") (binary_expression "(long)param_1 + (ulong)bVar2" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (cast_expression "(ulong)bVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar2"))) () ")")))) (; ";")) (expression_statement "*pbVar12 = 0x20;" (assignment_expression "*pbVar12 = 0x20" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "pbVar12[1] = 0;" (assignment_expression "pbVar12[1] = 0" (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";")) (while_statement "while( true ) {\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);\n    pbVar12 = pbVar12 + iVar6;\n    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);\n    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);\n    pbVar12 = pbVar12 + iVar6 + iVar5;\n    uVar13 = iVar4 - 4;\n    if ((int)uVar13 < 5) break;\n    pbVar17 = pbVar18 + 5;\n    uVar15 = (uint)pbVar18[4];\n    puVar14 = &DAT_001bea5f;\n    if (0x20 < pbVar18[4]) break;\nLAB_0013f14a:\n    iVar4 = uVar13 - 1;\n    local_44[0] = 0;\n    local_44[1] = 0;\n    local_44[2] = 0;\n    local_44[3] = 0;\n    uVar13 = uVar15 + 7 >> 3;\n    pbVar18 = pbVar17;\n    if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }\n    if (iVar4 < 4) break;\n  }" ({ "{") (expression_statement "iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);" (assignment_expression "iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44)" (identifier "iVar6") (= "=") (call_expression "FUN_0013eeb3(pbVar12,puVar14,local_44)" (identifier "FUN_0013eeb3") (argument_list "(pbVar12,puVar14,local_44)" (( "(") (identifier "pbVar12") (, ",") (identifier "puVar14") (, ",") (identifier "local_44") () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar6;" (assignment_expression "pbVar12 = pbVar12 + iVar6" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar6" (identifier "pbVar12") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);" (assignment_expression "iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" (identifier "iVar6") (= "=") (call_expression "__sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" (identifier "__sprintf_chk") (argument_list "(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15)" (( "(") (identifier "pbVar12") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001bab06" (& "&") (identifier "DAT_001bab06")) (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);" (assignment_expression "iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" (identifier "iVar5") (= "=") (call_expression "FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" (identifier "FUN_0013eeb3") (argument_list "(pbVar12 + iVar6,&DAT_001c0d09,pbVar18)" (( "(") (binary_expression "pbVar12 + iVar6" (identifier "pbVar12") (+ "+") (identifier "iVar6")) (, ",") (pointer_expression "&DAT_001c0d09" (& "&") (identifier "DAT_001c0d09")) (, ",") (identifier "pbVar18") () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + iVar6 + iVar5;" (assignment_expression "pbVar12 = pbVar12 + iVar6 + iVar5" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + iVar6 + iVar5" (binary_expression "pbVar12 + iVar6" (identifier "pbVar12") (+ "+") (identifier "iVar6")) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "uVar13 = iVar4 - 4;" (assignment_expression "uVar13 = iVar4 - 4" (identifier "uVar13") (= "=") (binary_expression "iVar4 - 4" (identifier "iVar4") (- "-") (number_literal "4"))) (; ";")) (if_statement "if ((int)uVar13 < 5) break;" (if "if") (parenthesized_expression "((int)uVar13 < 5)" (( "(") (binary_expression "(int)uVar13 < 5" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (number_literal "5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar17 = pbVar18 + 5;" (assignment_expression "pbVar17 = pbVar18 + 5" (identifier "pbVar17") (= "=") (binary_expression "pbVar18 + 5" (identifier "pbVar18") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "uVar15 = (uint)pbVar18[4];" (assignment_expression "uVar15 = (uint)pbVar18[4]" (identifier "uVar15") (= "=") (cast_expression "(uint)pbVar18[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar18[4]" (identifier "pbVar18") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "puVar14 = &DAT_001bea5f;" (assignment_expression "puVar14 = &DAT_001bea5f" (identifier "puVar14") (= "=") (pointer_expression "&DAT_001bea5f" (& "&") (identifier "DAT_001bea5f"))) (; ";")) (if_statement "if (0x20 < pbVar18[4]) break;" (if "if") (parenthesized_expression "(0x20 < pbVar18[4])" (( "(") (binary_expression "0x20 < pbVar18[4]" (number_literal "0x20") (< "<") (subscript_expression "pbVar18[4]" (identifier "pbVar18") ([ "[") (number_literal "4") (] "]"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0013f14a:\n    iVar4 = uVar13 - 1;" (statement_identifier "LAB_0013f14a") (: ":") (expression_statement "iVar4 = uVar13 - 1;" (assignment_expression "iVar4 = uVar13 - 1" (identifier "iVar4") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";"))) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[1] = 0;" (assignment_expression "local_44[1] = 0" (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[2] = 0;" (assignment_expression "local_44[2] = 0" (subscript_expression "local_44[2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[3] = 0;" (assignment_expression "local_44[3] = 0" (subscript_expression "local_44[3]" (identifier "local_44") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = uVar15 + 7 >> 3;" (assignment_expression "uVar13 = uVar15 + 7 >> 3" (identifier "uVar13") (= "=") (binary_expression "uVar15 + 7 >> 3" (binary_expression "uVar15 + 7" (identifier "uVar15") (+ "+") (number_literal "7")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" (identifier "pbVar18") (= "=") (identifier "pbVar17")) (; ";")) (if_statement "if (uVar13 != 0) {\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;\n      pbVar11 = local_44;\n      do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);\n      iVar4 = iVar4 - uVar13;\n    }" ({ "{") (expression_statement "pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;" (assignment_expression "pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar17 + (ulong)(uVar13 - 1) + 1" (binary_expression "pbVar17 + (ulong)(uVar13 - 1)" (identifier "pbVar17") (+ "+") (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = local_44;" (assignment_expression "pbVar11 = local_44" (identifier "pbVar11") (= "=") (identifier "local_44")) (; ";")) (do_statement "do {\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      } while (pbVar18 != pbVar9);" (do "do") (compound_statement "{\n        pbVar9 = pbVar17 + 1;\n        *pbVar11 = *pbVar17;\n        pbVar17 = pbVar9;\n        pbVar11 = pbVar11 + 1;\n      }" ({ "{") (expression_statement "pbVar9 = pbVar17 + 1;" (assignment_expression "pbVar9 = pbVar17 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar11 = *pbVar17;" (assignment_expression "*pbVar11 = *pbVar17" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (expression_statement "pbVar17 = pbVar9;" (assignment_expression "pbVar17 = pbVar9" (identifier "pbVar17") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar18 != pbVar9)" (( "(") (binary_expression "pbVar18 != pbVar9" (identifier "pbVar18") (!= "!=") (identifier "pbVar9")) () ")")) (; ";")) (expression_statement "iVar4 = iVar4 - uVar13;" (assignment_expression "iVar4 = iVar4 - uVar13" (identifier "iVar4") (= "=") (binary_expression "iVar4 - uVar13" (identifier "iVar4") (- "-") (identifier "uVar13"))) (; ";")) (} "}"))) (if_statement "if (iVar4 < 4) break;" (if "if") (parenthesized_expression "(iVar4 < 4)" (( "(") (binary_expression "iVar4 < 4" (identifier "iVar4") (< "<") (number_literal "4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";")) (labeled_statement "LAB_0013f397:\n  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;" (statement_identifier "LAB_0013f397") (: ":") (if_statement "if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))\n  goto LAB_0013f3aa;" (if "if") (parenthesized_expression "((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))" (( "(") (binary_expression "(*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0)" (parenthesized_expression "(*pbVar17 == 0)" (( "(") (binary_expression "*pbVar17 == 0" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0)" (( "(") (comma_expression "pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0" (assignment_expression "pbVar18 = pbVar17 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (, ",") (comma_expression "pbVar17 = pbVar17 + 1, *pbVar18 == 0" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (, ",") (binary_expression "*pbVar18 == 0" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_0013f3aa;" (goto "goto") (statement_identifier "LAB_0013f3aa") (; ";")))) (goto_statement "goto LAB_0013f0e7;" (goto "goto") (statement_identifier "LAB_0013f0e7") (; ";")) (labeled_statement "switchD_0013efd8_caseD_3:\n  sVar7 = (size_t)(int)uVar13;" (statement_identifier "switchD_0013efd8_caseD_3") (: ":") (expression_statement "sVar7 = (size_t)(int)uVar13;" (assignment_expression "sVar7 = (size_t)(int)uVar13" (identifier "sVar7") (= "=") (cast_expression "(size_t)(int)uVar13" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")))) (; ";"))) (expression_statement "memcpy(pbVar12,param_1,sVar7);" (call_expression "memcpy(pbVar12,param_1,sVar7)" (identifier "memcpy") (argument_list "(pbVar12,param_1,sVar7)" (( "(") (identifier "pbVar12") (, ",") (identifier "param_1") (, ",") (identifier "sVar7") () ")"))) (; ";")) (expression_statement "pbVar12[sVar7] = 0;" (assignment_expression "pbVar12[sVar7] = 0" (subscript_expression "pbVar12[sVar7]" (identifier "pbVar12") ([ "[") (identifier "sVar7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar17 = pbVar12;" (assignment_expression "pbVar17 = pbVar12" (identifier "pbVar17") (= "=") (identifier "pbVar12")) (; ";")) (if_statement "if (bVar3 == 4) {\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }" (if "if") (parenthesized_expression "(bVar3 == 4)" (( "(") (binary_expression "bVar3 == 4" (identifier "bVar3") (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }\n    FUN_001a49d0(pbVar12,"bad",sVar7);\n  }" ({ "{") (labeled_statement "LAB_0013f0e7:\n    if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" (statement_identifier "LAB_0013f0e7") (: ":") (if_statement "if (*pbVar17 != 0x2d) {\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(*pbVar17 != 0x2d)" (( "(") (binary_expression "*pbVar17 != 0x2d" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (!= "!=") (number_literal "0x2d")) () ")")) (compound_statement "{\n      do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      } while( true );" (do "do") (compound_statement "{\n        bVar1 = *pbVar17;\n        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }\n        pbVar17 = pbVar17 + 1;\n      }" ({ "{") (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" (identifier "bVar1") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (if_statement "if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" (if "if") (parenthesized_expression "((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30)))" (( "(") (binary_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))" (parenthesized_expression "(0x19 < (byte)((bVar1 | 0x20) + 0x9f))" (( "(") (binary_expression "0x19 < (byte)((bVar1 | 0x20) + 0x9f)" (number_literal "0x19") (< "<") (call_expression "(byte)((bVar1 | 0x20) + 0x9f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((bVar1 | 0x20) + 0x9f)" (( "(") (binary_expression "(bVar1 | 0x20) + 0x9f" (parenthesized_expression "(bVar1 | 0x20)" (( "(") (binary_expression "bVar1 | 0x20" (identifier "bVar1") (| "|") (number_literal "0x20")) () ")")) (+ "+") (number_literal "0x9f")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(9 < (byte)(bVar1 - 0x30))" (( "(") (binary_expression "9 < (byte)(bVar1 - 0x30)" (number_literal "9") (< "<") (call_expression "(byte)(bVar1 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 - 0x30)" (( "(") (binary_expression "bVar1 - 0x30" (identifier "bVar1") (- "-") (number_literal "0x30")) () ")")))) () ")"))) () ")")) (compound_statement "{\n          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;\n          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;\n        }" ({ "{") (if_statement "if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;" (if "if") (parenthesized_expression "((bVar1 == 0) || (bVar1 == 0x2e))" (( "(") (binary_expression "(bVar1 == 0) || (bVar1 == 0x2e)" (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar1 == 0x2e)" (( "(") (binary_expression "bVar1 == 0x2e" (identifier "bVar1") (== "==") (number_literal "0x2e")) () ")"))) () ")")) (goto_statement "goto LAB_0013f397;" (goto "goto") (statement_identifier "LAB_0013f397") (; ";"))) (if_statement "if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;" (if "if") (parenthesized_expression "((bVar1 != 0x2d) && (bVar1 != 0x5f))" (( "(") (binary_expression "(bVar1 != 0x2d) && (bVar1 != 0x5f)" (parenthesized_expression "(bVar1 != 0x2d)" (( "(") (binary_expression "bVar1 != 0x2d" (identifier "bVar1") (!= "!=") (number_literal "0x2d")) () ")")) (&& "&&") (parenthesized_expression "(bVar1 != 0x5f)" (( "(") (binary_expression "bVar1 != 0x5f" (identifier "bVar1") (!= "!=") (number_literal "0x5f")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (expression_statement "FUN_001a49d0(pbVar12,"bad",sVar7);" (call_expression "FUN_001a49d0(pbVar12,"bad",sVar7)" (identifier "FUN_001a49d0") (argument_list "(pbVar12,"bad",sVar7)" (( "(") (identifier "pbVar12") (, ",") (string_literal ""bad"" (" """) (string_content "bad") (" """)) (, ",") (identifier "sVar7") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0013f3aa:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_0013f3aa") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return __ptr;" (return "return") (identifier "__ptr") (; ";")) (} "}")))

char * function_1(uint8_t *option,type_1 *optflag,char *opt_name)

{
  type_2 var_7;
  type_2 var_6;
  type_2 var_13;
  int var_9;
  int var_22;
  int var_15;
  size_t var_4;
  char *var_8;
  char *var_19;
  type_2 *var_24;
  uint32_t *puVar10;
  type_2 *var_12;
  type_3 var_17;
  type_3 var_10;
  type_4 *var_16;
  type_2 *var_21;
  type_2 *var_23;
  long var_1;
  uint32_t nip;
  long var_27;
  
  var_27 = *(long *)(var_1 + 0x28);
  var_7 = option[-1];
  var_17 = (type_3)var_7;
  var_13 = optflag->flags & 0xf;
  var_10 = (type_3)var_13;
  var_6 = dhcp_option_lengths[(int)var_10];
  var_4 = var_2(opt_name);
  var_8 = (char *)var_3(var_4 + 2 +
                        (type_5)((((type_3)var_7 + (type_3)var_6) / (type_3)var_6) * (type_3)""[(int)var_10])
                       );
  var_9 = var_5(var_8,1,0xffffffffffffffff,&DAT_001bb34d,opt_name);
  if (var_6 <= var_7) {
    var_12 = (type_2 *)(var_8 + var_9);
    var_19 = "%ld";
    if (var_10 == 7) {
      var_19 = "%lu";
    }
    do {
      switch(var_13) {
      case 1:
      case 2:
        var_9 = var_11((char *)var_12,"",option);
        var_12 = var_12 + var_9;
        if (var_13 != 1) {
          var_9 = var_11((char *)var_12,"/",(uint8_t *)((long)option + 4));
          var_12 = var_12 + var_9;
        }
        break;
      case 3:
      case 4:
        goto switchD_0013efd8_caseD_3;
      case 5:
        var_9 = var_5(var_12,1,0xffffffffffffffff,&DAT_001bd262,(type_2)*(type_3 *)option);
        var_12 = var_12 + var_9;
        break;
      case 6:
        var_9 = var_5(var_12,1,0xffffffffffffffff,&DAT_001bd262,
                              (type_4)*(type_3 *)option << 8 | (type_4)*(type_3 *)option >> 8);
        var_12 = var_12 + var_9;
        break;
      case 7:
      case 8:
        var_10 = *(type_3 *)option;
        var_9 = var_5(var_12,1,0xffffffffffffffff,var_19,
                              var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 |
                              var_10 << 0x18);
        var_12 = var_12 + var_9;
        break;
      case 10:
        if ((int)var_17 < 5) goto LAB_0013f3aa;
        var_10 = (type_3)(type_2)*(type_3 *)option;
        var_21 = (type_2 *)((long)option + 1);
        var_19 = "";
        if (0x20 < var_10) goto LAB_0013f3aa;
        goto LAB_0013f14a;
      case 0xb:
        if (((0x15 < (int)var_17) && ((type_2)*(type_3 *)option < 0x21)) &&
           ((int)((*(type_2 *)((long)option + 1) + 0x20) - (type_3)(type_2)*(type_3 *)option) < 0x81)) {
          var_9 = var_5(var_12,1,0xffffffffffffffff,&DAT_001ba61a);
          var_12 = var_12 + var_9;
          var_9 = var_5(var_12,1,0xffffffffffffffff,&DAT_001ba61a,
                                *(type_2 *)((long)option + 1));
          var_15 = var_14((char *)(var_12 + var_9),(uint8_t *)((long)option + 2));
          var_12 = var_12 + var_9 + var_15;
          var_16 = (type_4 *)((long)option + 0x12);
          do {
            var_9 = var_11((char *)var_12," ",(uint8_t *)var_16);
            var_12 = var_12 + var_9;
            var_16 = var_16 + 2;
          } while ((type_4 *)((long)option + (type_5)(var_17 - 0x16 >> 2) * 4 + 0x16) != var_16);
        }
        goto LAB_0013f3aa;
      case 0xc:
        var_19 = var_18(option,var_17,var_8);
        if (var_19 != (char *)0x0) {
          var_20(var_8);
          var_8 = var_19;
        }
        goto LAB_0013f3aa;
      case 0xd:
        var_21 = (type_2 *)((long)option + 1);
        if ((type_2)*(type_3 *)option == 0) {
          var_19 = var_18(var_21,var_17 - 1,var_8);
          if (var_19 != (char *)0x0) {
            var_20(var_8);
            var_8 = var_19;
          }
        }
        else if (((type_2)*(type_3 *)option == 1) && (4 < (int)var_17)) {
          var_19 = "";
          do {
            var_9 = var_11((char *)var_12,var_19,var_21);
            var_12 = var_12 + var_9;
            var_21 = var_21 + 4;
            var_19 = " ";
          } while (var_21 != (type_2 *)((long)option + (type_5)(var_17 - 5 >> 2) * 4 + 5));
        }
        goto LAB_0013f3aa;
      }
      var_17 = var_17 - var_6;
      if ((int)var_17 < (int)(type_3)var_6) break;
      option = (uint8_t *)((long)option + (type_5)var_6);
      *var_12 = 0x20;
      var_12[1] = 0;
      var_12 = var_12 + 1;
    } while( true );
  }
  goto LAB_0013f3aa;
  while( true ) {
    var_15 = var_11((char *)var_12,var_19,(uint8_t *)&nip);
    var_12 = var_12 + var_15;
    var_15 = var_5(var_12,1,0xffffffffffffffff,&DAT_001bab06,var_10);
    var_22 = var_11((char *)(var_12 + var_15),"",var_23);
    var_12 = var_12 + var_15 + var_22;
    var_17 = var_9 - 4;
    if ((int)var_17 < 5) break;
    var_21 = var_23 + 5;
    var_10 = (type_3)var_23[4];
    var_19 = " ";
    if (0x20 < var_23[4]) break;
LAB_0013f14a:
    var_9 = var_17 - 1;
    nip = 0;
    var_17 = var_10 + 7 >> 3;
    var_23 = var_21;
    if (var_17 != 0) {
      var_23 = var_21 + (type_5)(var_17 - 1) + 1;
      puVar10 = &nip;
      do {
        var_24 = var_21 + 1;
        *(type_2 *)puVar10 = *var_21;
        var_21 = var_24;
        puVar10 = (uint32_t *)((long)puVar10 + 1);
      } while (var_23 != var_24);
      var_9 = var_9 - var_17;
    }
    if (var_9 < 4) break;
  }
  goto LAB_0013f3aa;
LAB_0013f397:
  if ((*var_21 == 0) || (var_23 = var_21 + 1, var_21 = var_21 + 1, *var_23 == 0))
  goto LAB_0013f3aa;
  goto LAB_0013f0e7;
switchD_0013efd8_caseD_3:
  var_4 = (size_t)(int)var_17;
  var_25(var_12,option,var_4);
  var_12[var_4] = 0;
  var_21 = var_12;
  if (var_13 == 4) {
LAB_0013f0e7:
    if (*var_21 != 0x2d) {
      do {
        var_7 = *var_21;
        if ((0x19 < (type_2)((var_7 | 0x20) + 0x9f)) && (9 < (type_2)(var_7 - 0x30))) {
          if ((var_7 == 0) || (var_7 == 0x2e)) goto LAB_0013f397;
          if ((var_7 != 0x2d) && (var_7 != 0x5f)) break;
        }
        var_21 = var_21 + 1;
      } while( true );
    }
    var_26((char *)var_12,"bad",var_4);
  }
LAB_0013f3aa:
  if (var_27 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_28();
  }
  return var_8;
}


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

void * MASKED(uint *param_1,byte *param_2,char *param_3)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  size_t sVar7;
  void *__ptr;
  char *pcVar8;
  byte *pbVar9;
  void *pvVar10;
  byte *pbVar11;
  byte *pbVar12;
  uint uVar13;
  undefined *puVar14;
  uint uVar15;
  ushort *puVar16;
  byte *pbVar17;
  byte *pbVar18;
  long in_FS_OFFSET;
  byte local_44 [4];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  bVar1 = *(byte *)((long)param_1 + -1);
  uVar13 = (uint)bVar1;
  bVar3 = *param_2 & 0xf;
  uVar15 = (uint)bVar3;
  bVar2 = (&DAT_001bb7c1)[(int)uVar15];
  sVar7 = strlen(param_3);
  __ptr = (void *)FUN_0010e5ce(sVar7 + 2 +
                               (ulong)((((uint)bVar1 + (uint)bVar2) / (uint)bVar2) *
                                      (uint)(byte)(&DAT_001bb46e)[(int)uVar15]));
  iVar4 = __sprintf_chk(__ptr,1,0xffffffffffffffff,&DAT_001bb34d,param_3);
  if (bVar2 <= bVar1) {
    pbVar12 = (byte *)((long)iVar4 + (long)__ptr);
    pcVar8 = "%ld";
    if (uVar15 == 7) {
      pcVar8 = "%lu";
    }
    do {
      switch(bVar3) {
      case 1:
      case 2:
        iVar4 = FUN_0013eeb3(pbVar12,&DAT_001c0d09,param_1);
        pbVar12 = pbVar12 + iVar4;
        if (bVar3 != 1) {
          iVar4 = FUN_0013eeb3(pbVar12,&DAT_001be5e2,param_1 + 1);
          pbVar12 = pbVar12 + iVar4;
        }
        break;
      case 3:
      case 4:
        goto switchD_0013efd8_caseD_3;
      case 5:
        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,(byte)*param_1);
        pbVar12 = pbVar12 + iVar4;
        break;
      case 6:
        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bd262,
                              (ushort)*param_1 << 8 | (ushort)*param_1 >> 8);
        pbVar12 = pbVar12 + iVar4;
        break;
      case 7:
      case 8:
        uVar15 = *param_1;
        iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,pcVar8,
                              uVar15 >> 0x18 | (uVar15 & 0xff0000) >> 8 | (uVar15 & 0xff00) << 8 |
                              uVar15 << 0x18);
        pbVar12 = pbVar12 + iVar4;
        break;
      case 10:
        if ((int)uVar13 < 5) goto LAB_0013f3aa;
        uVar15 = (uint)(byte)*param_1;
        pbVar17 = (byte *)((long)param_1 + 1);
        puVar14 = &DAT_001c0d09;
        if (0x20 < uVar15) goto LAB_0013f3aa;
        goto LAB_0013f14a;
      case 0xb:
        if (((0x15 < (int)uVar13) && ((byte)*param_1 < 0x21)) &&
           ((int)((*(byte *)((long)param_1 + 1) + 0x20) - (uint)(byte)*param_1) < 0x81)) {
          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a);
          pbVar12 = pbVar12 + iVar4;
          iVar4 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001ba61a,
                                *(byte *)((long)param_1 + 1));
          iVar6 = FUN_0014357f(pbVar12 + iVar4,(ushort *)((long)param_1 + 2));
          pbVar12 = pbVar12 + iVar4 + iVar6;
          puVar16 = (ushort *)((long)param_1 + 0x12);
          do {
            iVar4 = FUN_0013eeb3(pbVar12,&DAT_001bea5f,puVar16);
            pbVar12 = pbVar12 + iVar4;
            puVar16 = puVar16 + 2;
          } while ((ushort *)((long)param_1 + (ulong)(uVar13 - 0x16 >> 2) * 4 + 0x16) != puVar16);
        }
        goto LAB_0013f3aa;
      case 0xc:
        pvVar10 = (void *)FUN_00141bc1(param_1,uVar13,__ptr);
        if (pvVar10 != (void *)0x0) {
          free(__ptr);
          __ptr = pvVar10;
        }
        goto LAB_0013f3aa;
      case 0xd:
        pbVar17 = (byte *)((long)param_1 + 1);
        if ((byte)*param_1 == 0) {
          pvVar10 = (void *)FUN_00141bc1(pbVar17,uVar13 - 1,__ptr);
          if (pvVar10 != (void *)0x0) {
            free(__ptr);
            __ptr = pvVar10;
          }
        }
        else if (((byte)*param_1 == 1) && (4 < (int)uVar13)) {
          puVar14 = &DAT_001c0d09;
          do {
            iVar4 = FUN_0013eeb3(pbVar12,puVar14,pbVar17);
            pbVar12 = pbVar12 + iVar4;
            pbVar17 = pbVar17 + 4;
            puVar14 = &DAT_001bea5f;
          } while (pbVar17 != (byte *)((long)param_1 + (ulong)(uVar13 - 5 >> 2) * 4 + 5));
        }
        goto LAB_0013f3aa;
      }
      uVar13 = uVar13 - bVar2;
      if ((int)uVar13 < (int)(uint)bVar2) break;
      param_1 = (uint *)((long)param_1 + (ulong)bVar2);
      *pbVar12 = 0x20;
      pbVar12[1] = 0;
      pbVar12 = pbVar12 + 1;
    } while( true );
  }
  goto LAB_0013f3aa;
  while( true ) {
    iVar6 = FUN_0013eeb3(pbVar12,puVar14,local_44);
    pbVar12 = pbVar12 + iVar6;
    iVar6 = __sprintf_chk(pbVar12,1,0xffffffffffffffff,&DAT_001bab06,uVar15);
    iVar5 = FUN_0013eeb3(pbVar12 + iVar6,&DAT_001c0d09,pbVar18);
    pbVar12 = pbVar12 + iVar6 + iVar5;
    uVar13 = iVar4 - 4;
    if ((int)uVar13 < 5) break;
    pbVar17 = pbVar18 + 5;
    uVar15 = (uint)pbVar18[4];
    puVar14 = &DAT_001bea5f;
    if (0x20 < pbVar18[4]) break;
LAB_0013f14a:
    iVar4 = uVar13 - 1;
    local_44[0] = 0;
    local_44[1] = 0;
    local_44[2] = 0;
    local_44[3] = 0;
    uVar13 = uVar15 + 7 >> 3;
    pbVar18 = pbVar17;
    if (uVar13 != 0) {
      pbVar18 = pbVar17 + (ulong)(uVar13 - 1) + 1;
      pbVar11 = local_44;
      do {
        pbVar9 = pbVar17 + 1;
        *pbVar11 = *pbVar17;
        pbVar17 = pbVar9;
        pbVar11 = pbVar11 + 1;
      } while (pbVar18 != pbVar9);
      iVar4 = iVar4 - uVar13;
    }
    if (iVar4 < 4) break;
  }
  goto LAB_0013f3aa;
LAB_0013f397:
  if ((*pbVar17 == 0) || (pbVar18 = pbVar17 + 1, pbVar17 = pbVar17 + 1, *pbVar18 == 0))
  goto LAB_0013f3aa;
  goto LAB_0013f0e7;
switchD_0013efd8_caseD_3:
  sVar7 = (size_t)(int)uVar13;
  memcpy(pbVar12,param_1,sVar7);
  pbVar12[sVar7] = 0;
  pbVar17 = pbVar12;
  if (bVar3 == 4) {
LAB_0013f0e7:
    if (*pbVar17 != 0x2d) {
      do {
        bVar1 = *pbVar17;
        if ((0x19 < (byte)((bVar1 | 0x20) + 0x9f)) && (9 < (byte)(bVar1 - 0x30))) {
          if ((bVar1 == 0) || (bVar1 == 0x2e)) goto LAB_0013f397;
          if ((bVar1 != 0x2d) && (bVar1 != 0x5f)) break;
        }
        pbVar17 = pbVar17 + 1;
      } while( true );
    }
    FUN_001a49d0(pbVar12,"bad",sVar7);
  }
LAB_0013f3aa:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return __ptr;
}

