
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

X11FakeAuth * x11_invent_fake_auth(tree234 *authtree,int authtype)

{
  X11FakeAuth *pXVar1;
  uchar *puVar2;
  uchar *puVar3;
  X11FakeAuth *pXVar4;
  tree234 *ptVar5;
  char *pcVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  undefined *puVar10;
  
  pXVar1 = (X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);
  puVar10 = PTR_safemalloc_000b2408;
  if (authtype == 1) {
    pXVar1->proto = 1;
    pXVar1->datalen = 0x10;
    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);
    pXVar1->data = puVar2;
    pXVar1->xa1_firstblock = (uchar *)0x0;
    do {
      iVar9 = 0;
      if (0 < pXVar1->datalen) {
        do {
          iVar8 = random_byte();
          puVar2 = pXVar1->data + iVar9;
          iVar9 = iVar9 + 1;
          *puVar2 = (uchar)iVar8;
        } while (iVar9 < pXVar1->datalen);
      }
      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);
    } while (pXVar1 != pXVar4);
    pXVar1->xdmseen = (tree234 *)0x0;
  }
  else {
    if (authtype != 2) {
      pXVar1 = (X11FakeAuth *)
               (*(code *)PTR___assert_fail_000b2d2c)
                         (PTR_s_entropy_source_000b23f0 + 0x84c,
                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,
                          PTR_s_entropy_source_000b23f0 + 0xa34);
      return pXVar1;
    }
    pXVar1->proto = 2;
    pXVar1->datalen = 0x10;
    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);
    puVar10 = PTR_safemalloc_000b2408;
    pXVar1->data = puVar2;
    puVar2 = (uchar *)(*(code *)puVar10)(8,1);
    pXVar1->xa1_firstblock = puVar2;
    *puVar2 = '\0';
    puVar2[1] = '\0';
    puVar2[2] = '\0';
    puVar2[3] = '\0';
    puVar2[4] = '\0';
    puVar2[5] = '\0';
    puVar2[6] = '\0';
    puVar2[7] = '\0';
    do {
      iVar9 = 0;
      if (pXVar1->datalen < 1) {
        puVar2 = pXVar1->data;
      }
      else {
        do {
          while (iVar9 != 8) {
            iVar8 = random_byte();
            puVar2 = pXVar1->data + iVar9;
            iVar9 = iVar9 + 1;
            *puVar2 = (uchar)iVar8;
            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;
          }
          iVar9 = 9;
          pXVar1->data[8] = '\0';
        } while (9 < pXVar1->datalen);
LAB_0008b5b4:
        puVar2 = pXVar1->data;
      }
      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;
      puVar3 = pXVar1->xa1_firstblock;
      uVar7 = *(undefined4 *)(puVar2 + 4);
      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;
      *(undefined4 *)(puVar3 + 4) = uVar7;
      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);
      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);
    } while (pXVar1 != pXVar4);
    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));
    pXVar1->xdmseen = ptVar5;
  }
  pcVar6 = (char *)(*(code *)PTR_dupstr_000b2410)
                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4));
  pXVar1->protoname = pcVar6;
  pcVar6 = (char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1);
  pXVar1->datastring = pcVar6;
  if (0 < pXVar1->datalen) {
    iVar9 = 0;
    puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;
    while( true ) {
      iVar8 = iVar9 * 2;
      puVar2 = pXVar1->data + iVar9;
      iVar9 = iVar9 + 1;
      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);
      if (pXVar1->datalen <= iVar9) break;
      pcVar6 = pXVar1->datastring;
    }
  }
  pXVar1->disp = (X11Display *)0x0;
  pXVar1->share_chan = (void *)0x0;
  pXVar1->share_cs = (void *)0x0;
  return pXVar1;
}



int * x11_invent_fake_auth(undefined4 param_1,int param_2)

{
  int *piVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 uVar6;
  undefined4 *puVar4;
  int *piVar5;
  undefined4 *puVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  undefined *puVar11;
  
  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);
  puVar11 = PTR_safemalloc_000b2408;
  if (param_2 == 1) {
    *piVar1 = 1;
    piVar1[2] = 0x10;
    iVar2 = (*(code *)puVar11)(0x10,1);
    piVar1[1] = iVar2;
    piVar1[5] = 0;
    do {
      iVar2 = 0;
      if (0 < piVar1[2]) {
        do {
          uVar6 = random_byte();
          puVar3 = (undefined1 *)(piVar1[1] + iVar2);
          iVar2 = iVar2 + 1;
          *puVar3 = uVar6;
        } while (iVar2 < piVar1[2]);
      }
      piVar5 = (int *)add234(param_1,piVar1);
    } while (piVar1 != piVar5);
    piVar1[6] = 0;
  }
  else {
    if (param_2 != 2) {
      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)
                                (PTR_s_entropy_source_000b23f0 + 0x84c,
                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,
                                 PTR_s_entropy_source_000b23f0 + 0xa34);
      return piVar1;
    }
    *piVar1 = 2;
    piVar1[2] = 0x10;
    iVar2 = (*(code *)puVar11)(0x10,1);
    puVar11 = PTR_safemalloc_000b2408;
    piVar1[1] = iVar2;
    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);
    piVar1[5] = (int)puVar3;
    *puVar3 = 0;
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[3] = 0;
    puVar3[4] = 0;
    puVar3[5] = 0;
    puVar3[6] = 0;
    puVar3[7] = 0;
    do {
      iVar2 = 0;
      if (piVar1[2] < 1) {
        puVar7 = (undefined4 *)piVar1[1];
      }
      else {
        do {
          while (iVar2 != 8) {
            uVar6 = random_byte();
            puVar3 = (undefined1 *)(piVar1[1] + iVar2);
            iVar2 = iVar2 + 1;
            *puVar3 = uVar6;
            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;
          }
          iVar2 = 9;
          *(undefined1 *)(piVar1[1] + 8) = 0;
        } while (9 < piVar1[2]);
LAB_0008b5b4:
        puVar7 = (undefined4 *)piVar1[1];
      }
      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;
      puVar4 = (undefined4 *)piVar1[5];
      uVar8 = puVar7[1];
      *puVar4 = *puVar7;
      puVar4[1] = uVar8;
      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);
      piVar5 = (int *)add234(param_1,piVar1);
    } while (piVar1 != piVar5);
    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);
    piVar1[6] = iVar2;
  }
  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));
  piVar1[3] = iVar2;
  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);
  piVar1[4] = iVar2;
  if (0 < piVar1[2]) {
    iVar10 = 0;
    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;
    while( true ) {
      iVar9 = iVar10 * 2;
      puVar3 = (undefined1 *)(piVar1[1] + iVar10);
      iVar10 = iVar10 + 1;
      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);
      if (piVar1[2] <= iVar10) break;
      iVar2 = piVar1[4];
    }
  }
  piVar1[7] = 0;
  piVar1[9] = 0;
  piVar1[8] = 0;
  return piVar1;
}


lui gp,0x3
addiu gp,gp,-0x111c
addu gp,gp,t9
addiu sp,sp,-0x38
lw t9,-0x7f68(gp)
sw s3,0x30(sp)
or s3,a0,zero
sw s0,0x24(sp)
li a0,0x1
or s0,a1,zero
sw gp,0x18(sp)
li a1,0x28
sw s1,0x28(sp)
sw ra,0x34(sp)
jalr t9
_sw s2,0x2c(sp)
li v1,0x1
lw gp,0x18(sp)
beq s0,v1,0x0008b6f4
_or s1,v0,zero
li v0,0x2
bne s0,v0,0x0008b778
_lw t9,-0x7f68(gp)
li v0,0x10
li a1,0x1
sw s0,0x0(s1)
li a0,0x10
sw v0,0x8(s1)
jalr t9
_li s2,0x8
li a1,0x1
lw gp,0x18(sp)
li a0,0x8
lw t9,-0x7f68(gp)
jalr t9
_sw v0,0x4(s1)
lw gp,0x18(sp)
sw v0,0x14(s1)
sb zero,0x0(v0)
sb zero,0x1(v0)
sb zero,0x2(v0)
sb zero,0x3(v0)
sb zero,0x4(v0)
sb zero,0x5(v0)
sb zero,0x6(v0)
sb zero,0x7(v0)
lw v0,0x8(s1)
bgtz v0,0x0008b58c
_or s0,zero,zero
b 0x0008b5b8
_lw v1,0x4(s1)
lw t9,-0x7a9c(gp)
bal 0x0006fc40
_nop
lw v1,0x4(s1)
andi v0,v0,0xff
lw gp,0x18(sp)
addu v1,v1,s0
addiu s0,s0,0x1
sb v0,0x0(v1)
lw v0,0x8(s1)
slt v0,s0,v0
beq v0,zero,0x0008b5b4
_nop
bne s0,s2,0x0008b558
_or v0,zero,zero
lw v1,0x4(s1)
addu v1,v1,s0
addiu s0,s0,0x1
sb v0,0x0(v1)
lw v0,0x8(s1)
slt v0,s0,v0
bne v0,zero,0x0008b58c
_nop
lw v1,0x4(s1)
li a2,0x8
lw v0,0x14(s1)
lw t9,-0x76a4(gp)
lwl a1,0x0(v1)
lwl a0,0x4(v1)
lwr a1,0x3(v1)
lwr a0,0x7(v1)
swl a1,0x0(v0)
swr a1,0x3(v0)
swl a0,0x4(v0)
swr a0,0x7(v0)
lw a0,0x4(s1)
lw a1,0x14(s1)
jalr t9
_addiu a0,a0,0x9
or a1,s1,zero
lw gp,0x18(sp)
lw t9,-0x7ebc(gp)
bal 0x0007ea18
_or a0,s3,zero
bne s1,v0,0x0008b544
_lw gp,0x18(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7eb4(gp)
bal 0x0007e958
_addiu a0,a0,-0x4e04
lw gp,0x18(sp)
sw v0,0x18(s1)
lw v0,0x0(s1)
lw t9,-0x7f60(gp)
sll v1,v0,0x2
lw v0,-0x76a0(gp)
addu v0,v0,v1
jalr t9
_lw a0,0x0(v0)
li a1,0x1
lw gp,0x18(sp)
lw v1,0x8(s1)
sw v0,0xc(s1)
sll v1,v1,0x1
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,v1,0x1
lw v1,0x8(s1)
lw gp,0x18(sp)
blez v1,0x0008b6c8
_sw v0,0x10(s1)
lw s2,-0x7fc8(gp)
or s0,zero,zero
b 0x0008b688
_addiu s2,s2,-0x115c
lw v0,0x10(s1)
lw v1,0x4(s1)
sll a0,s0,0x1
lw t9,-0x7654(gp)
li a2,-0x1
addu a0,v0,a0
addu v1,v1,s0
li a1,0x1
or a3,s2,zero
lbu v0,0x0(v1)
addiu s0,s0,0x1
jalr t9
_sw v0,0x10(sp)
lw v0,0x8(s1)
slt v0,s0,v0
bne v0,zero,0x0008b684
_lw gp,0x18(sp)
lw ra,0x34(sp)
or v0,s1,zero
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s0,0x24(sp)
sw zero,0x1c(s1)
sw zero,0x24(s1)
sw zero,0x20(s1)
lw s1,0x28(sp)
jr ra
_addiu sp,sp,0x38
lw t9,-0x7f68(gp)
li a1,0x1
sw s0,0x0(v0)
li v0,0x10
li a0,0x10
jalr t9
_sw v0,0x8(s1)
lw gp,0x18(sp)
sw v0,0x4(s1)
sw zero,0x14(s1)
lw v0,0x8(s1)
blez v0,0x0008b758
_or s0,zero,zero
lw t9,-0x7a9c(gp)
bal 0x0006fc40
_nop
lw v1,0x4(s1)
lw gp,0x18(sp)
addu v1,v1,s0
addiu s0,s0,0x1
sb v0,0x0(v1)
lw v0,0x8(s1)
slt v0,s0,v0
bne v0,zero,0x0008b72c
_lw t9,-0x7a9c(gp)
lw t9,-0x7ebc(gp)
or a1,s1,zero
bal 0x0007ea18
_or a0,s3,zero
bne s1,v0,0x0008b71c
_lw gp,0x18(sp)
b 0x0008b628
_sw zero,0x18(s1)
lw a3,-0x7f80(gp)
li a2,0x76
lw a1,-0x7f80(gp)
lw a0,-0x7f80(gp)
lw t9,-0x7644(gp)
addiu a3,a3,0xa34
addiu a1,a1,0x840
jalr t9
_addiu a0,a0,0x84c
(translation_unit "int * x11_invent_fake_auth(undefined4 param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}\n\n" (function_definition "int * x11_invent_fake_auth(undefined4 param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}" primitive_type (pointer_declarator "* x11_invent_fake_auth(undefined4 param_1,int param_2)" * (function_declarator "x11_invent_fake_auth(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);" (assignment_expression "piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" identifier = (cast_expression "(int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b2408)(1,0x28)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" ( (pointer_expression "*(code *)PTR_safemalloc_000b2408" * (cast_expression "(code *)PTR_safemalloc_000b2408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x28)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar11 = PTR_safemalloc_000b2408;" (assignment_expression "puVar11 = PTR_safemalloc_000b2408" identifier = identifier) ;) (if_statement "if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }" { (expression_statement "*piVar1 = 1;" (assignment_expression "*piVar1 = 1" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "piVar1[2] = 0x10;" (assignment_expression "piVar1[2] = 0x10" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar11)(0x10,1);" (assignment_expression "iVar2 = (*(code *)puVar11)(0x10,1)" identifier = (call_expression "(*(code *)puVar11)(0x10,1)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,1)" ( number_literal , number_literal )))) ;) (expression_statement "piVar1[1] = iVar2;" (assignment_expression "piVar1[1] = iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[5] = 0;" (assignment_expression "piVar1[5] = 0" (subscript_expression "piVar1[5]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);" do (compound_statement "{\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }" if (parenthesized_expression "(0 < piVar1[2])" ( (binary_expression "0 < piVar1[2]" number_literal < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) (compound_statement "{\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }" { (do_statement "do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);" do (compound_statement "{\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        }" { (expression_statement "uVar6 = random_byte();" (assignment_expression "uVar6 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar2);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar2)" identifier = (cast_expression "(undefined1 *)(piVar1[1] + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + iVar2)" ( (binary_expression "piVar1[1] + iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar6;" (assignment_expression "*puVar3 = uVar6" (pointer_expression "*puVar3" * identifier) = identifier) ;) }) while (parenthesized_expression "(iVar2 < piVar1[2])" ( (binary_expression "iVar2 < piVar1[2]" identifier < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) ;) })) (expression_statement "piVar5 = (int *)add234(param_1,piVar1);" (assignment_expression "piVar5 = (int *)add234(param_1,piVar1)" identifier = (cast_expression "(int *)add234(param_1,piVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "add234(param_1,piVar1)" identifier (argument_list "(param_1,piVar1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(piVar1 != piVar5)" ( (binary_expression "piVar1 != piVar5" identifier != identifier) )) ;) (expression_statement "piVar1[6] = 0;" (assignment_expression "piVar1[6] = 0" (subscript_expression "piVar1[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" else (compound_statement "{\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" { (if_statement "if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }" if (parenthesized_expression "(param_2 != 2)" ( (binary_expression "param_2 != 2" identifier != number_literal) )) (compound_statement "{\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }" { (expression_statement "piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);" (assignment_expression "piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" identifier = (cast_expression "(int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" ( (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" * (cast_expression "(code *)PTR___assert_fail_000b2d2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + 0x84c" identifier + number_literal) , (binary_expression "PTR_s_entropy_source_000b23f0 + 0x840" identifier + number_literal) , number_literal , (binary_expression "PTR_s_entropy_source_000b23f0 + 0xa34" identifier + number_literal) ))))) ;) (return_statement "return piVar1;" return identifier ;) })) (expression_statement "*piVar1 = 2;" (assignment_expression "*piVar1 = 2" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "piVar1[2] = 0x10;" (assignment_expression "piVar1[2] = 0x10" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar11)(0x10,1);" (assignment_expression "iVar2 = (*(code *)puVar11)(0x10,1)" identifier = (call_expression "(*(code *)puVar11)(0x10,1)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,1)" ( number_literal , number_literal )))) ;) (expression_statement "puVar11 = PTR_safemalloc_000b2408;" (assignment_expression "puVar11 = PTR_safemalloc_000b2408" identifier = identifier) ;) (expression_statement "piVar1[1] = iVar2;" (assignment_expression "piVar1[1] = iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)puVar11)(8,1)" identifier = (cast_expression "(undefined1 *)(*(code *)puVar11)(8,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar11)(8,1)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8,1)" ( number_literal , number_literal ))))) ;) (expression_statement "piVar1[5] = (int)puVar3;" (assignment_expression "piVar1[5] = (int)puVar3" (subscript_expression "piVar1[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0;" (assignment_expression "puVar3[5] = 0" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0;" (assignment_expression "puVar3[6] = 0" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);" do (compound_statement "{\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" if (parenthesized_expression "(piVar1[2] < 1)" ( (binary_expression "piVar1[2] < 1" (subscript_expression "piVar1[2]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        puVar7 = (undefined4 *)piVar1[1];\n      }" { (expression_statement "puVar7 = (undefined4 *)piVar1[1];" (assignment_expression "puVar7 = (undefined4 *)piVar1[1]" identifier = (cast_expression "(undefined4 *)piVar1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" else (compound_statement "{\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" { (do_statement "do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);" do (compound_statement "{\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        }" { (while_statement "while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }" while (parenthesized_expression "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )) (compound_statement "{\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }" { (expression_statement "uVar6 = random_byte();" (assignment_expression "uVar6 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar2);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar2)" identifier = (cast_expression "(undefined1 *)(piVar1[1] + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + iVar2)" ( (binary_expression "piVar1[1] + iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar6;" (assignment_expression "*puVar3 = uVar6" (pointer_expression "*puVar3" * identifier) = identifier) ;) (if_statement "if (piVar1[2] <= iVar2) goto LAB_0008b5b4;" if (parenthesized_expression "(piVar1[2] <= iVar2)" ( (binary_expression "piVar1[2] <= iVar2" (subscript_expression "piVar1[2]" identifier [ number_literal ]) <= identifier) )) (goto_statement "goto LAB_0008b5b4;" goto statement_identifier ;)) })) (expression_statement "iVar2 = 9;" (assignment_expression "iVar2 = 9" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(piVar1[1] + 8) = 0;" (assignment_expression "*(undefined1 *)(piVar1[1] + 8) = 0" (pointer_expression "*(undefined1 *)(piVar1[1] + 8)" * (cast_expression "(undefined1 *)(piVar1[1] + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + 8)" ( (binary_expression "piVar1[1] + 8" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) }) while (parenthesized_expression "(9 < piVar1[2])" ( (binary_expression "9 < piVar1[2]" number_literal < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) ;) (labeled_statement "LAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];" statement_identifier : (expression_statement "puVar7 = (undefined4 *)piVar1[1];" (assignment_expression "puVar7 = (undefined4 *)piVar1[1]" identifier = (cast_expression "(undefined4 *)piVar1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[1]" identifier [ number_literal ]))) ;)) }))) (expression_statement "puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;" (assignment_expression "puVar11 = PTR_des_encrypt_xdmauth_000b2ccc" identifier = identifier) ;) (expression_statement "puVar4 = (undefined4 *)piVar1[5];" (assignment_expression "puVar4 = (undefined4 *)piVar1[5]" identifier = (cast_expression "(undefined4 *)piVar1[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = puVar7[1];" (assignment_expression "uVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar7;" (assignment_expression "*puVar4 = *puVar7" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar4[1] = uVar8;" (assignment_expression "puVar4[1] = uVar8" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);" (call_expression "(*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar1[1] + 9,piVar1[5],8)" ( (binary_expression "piVar1[1] + 9" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal) , (subscript_expression "piVar1[5]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "piVar5 = (int *)add234(param_1,piVar1);" (assignment_expression "piVar5 = (int *)add234(param_1,piVar1)" identifier = (cast_expression "(int *)add234(param_1,piVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "add234(param_1,piVar1)" identifier (argument_list "(param_1,piVar1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(piVar1 != piVar5)" ( (binary_expression "piVar1 != piVar5" identifier != identifier) )) ;) (expression_statement "iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);" (assignment_expression "iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" identifier = (call_expression "newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" identifier (argument_list "(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" ( (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x4e04" identifier + number_literal) )))) ;) (expression_statement "piVar1[6] = iVar2;" (assignment_expression "piVar1[6] = iVar2" (subscript_expression "piVar1[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));" (assignment_expression "iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" identifier = (call_expression "(*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" (parenthesized_expression "(*(code *)PTR_dupstr_000b2410)" ( (pointer_expression "*(code *)PTR_dupstr_000b2410" * (cast_expression "(code *)PTR_dupstr_000b2410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" ( (pointer_expression "*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" * (cast_expression "(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" ( (binary_expression "PTR_x11_authnames_000b2cd0 + *piVar1 * 4" identifier + (binary_expression "*piVar1 * 4" (pointer_expression "*piVar1" * identifier) * number_literal)) )))) )))) ;) (expression_statement "piVar1[3] = iVar2;" (assignment_expression "piVar1[3] = iVar2" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);" (assignment_expression "iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1)" identifier = (call_expression "(*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" ( (pointer_expression "*(code *)PTR_safemalloc_000b2408" * (cast_expression "(code *)PTR_safemalloc_000b2408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar1[2] * 2 + 1,1)" ( (binary_expression "piVar1[2] * 2 + 1" (binary_expression "piVar1[2] * 2" (subscript_expression "piVar1[2]" identifier [ number_literal ]) * number_literal) + number_literal) , number_literal )))) ;) (expression_statement "piVar1[4] = iVar2;" (assignment_expression "piVar1[4] = iVar2" (subscript_expression "piVar1[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }" if (parenthesized_expression "(0 < piVar1[2])" ( (binary_expression "0 < piVar1[2]" number_literal < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c" identifier = (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x115c" identifier + number_literal)) ;) (while_statement "while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }" { (expression_statement "iVar9 = iVar10 * 2;" (assignment_expression "iVar9 = iVar10 * 2" identifier = (binary_expression "iVar10 * 2" identifier * number_literal)) ;) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar10);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar10)" identifier = (cast_expression "(undefined1 *)(piVar1[1] + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + iVar10)" ( (binary_expression "piVar1[1] + iVar10" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" * (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3)" ( (binary_expression "iVar2 + iVar9" identifier + identifier) , number_literal , number_literal , identifier , (pointer_expression "*puVar3" * identifier) ))) ;) (if_statement "if (piVar1[2] <= iVar10) break;" if (parenthesized_expression "(piVar1[2] <= iVar10)" ( (binary_expression "piVar1[2] <= iVar10" (subscript_expression "piVar1[2]" identifier [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = piVar1[4];" (assignment_expression "iVar2 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) })) })) (expression_statement "piVar1[7] = 0;" (assignment_expression "piVar1[7] = 0" (subscript_expression "piVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[9] = 0;" (assignment_expression "piVar1[9] = 0" (subscript_expression "piVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[8] = 0;" (assignment_expression "piVar1[8] = 0" (subscript_expression "piVar1[8]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nX11FakeAuth * x11_invent_fake_auth(tree234 *authtree,int authtype)\n\n{\n  X11FakeAuth *pXVar1;\n  uchar *puVar2;\n  uchar *puVar3;\n  X11FakeAuth *pXVar4;\n  tree234 *ptVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  \n  pXVar1 = (X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar10 = PTR_safemalloc_000b2408;\n  if (authtype == 1) {\n    pXVar1->proto = 1;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    pXVar1->data = puVar2;\n    pXVar1->xa1_firstblock = (uchar *)0x0;\n    do {\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    pXVar1->xdmseen = (tree234 *)0x0;\n  }\n  else {\n    if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }\n    pXVar1->proto = 2;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    puVar10 = PTR_safemalloc_000b2408;\n    pXVar1->data = puVar2;\n    puVar2 = (uchar *)(*(code *)puVar10)(8,1);\n    pXVar1->xa1_firstblock = puVar2;\n    *puVar2 = '\0';\n    puVar2[1] = '\0';\n    puVar2[2] = '\0';\n    puVar2[3] = '\0';\n    puVar2[4] = '\0';\n    puVar2[5] = '\0';\n    puVar2[6] = '\0';\n    puVar2[7] = '\0';\n    do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));\n    pXVar1->xdmseen = ptVar5;\n  }\n  pcVar6 = (char *)(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4));\n  pXVar1->protoname = pcVar6;\n  pcVar6 = (char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1);\n  pXVar1->datastring = pcVar6;\n  if (0 < pXVar1->datalen) {\n    iVar9 = 0;\n    puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }\n  }\n  pXVar1->disp = (X11Display *)0x0;\n  pXVar1->share_chan = (void *)0x0;\n  pXVar1->share_cs = (void *)0x0;\n  return pXVar1;\n}\n\n" comment (function_definition "X11FakeAuth * x11_invent_fake_auth(tree234 *authtree,int authtype)\n\n{\n  X11FakeAuth *pXVar1;\n  uchar *puVar2;\n  uchar *puVar3;\n  X11FakeAuth *pXVar4;\n  tree234 *ptVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  \n  pXVar1 = (X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar10 = PTR_safemalloc_000b2408;\n  if (authtype == 1) {\n    pXVar1->proto = 1;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    pXVar1->data = puVar2;\n    pXVar1->xa1_firstblock = (uchar *)0x0;\n    do {\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    pXVar1->xdmseen = (tree234 *)0x0;\n  }\n  else {\n    if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }\n    pXVar1->proto = 2;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    puVar10 = PTR_safemalloc_000b2408;\n    pXVar1->data = puVar2;\n    puVar2 = (uchar *)(*(code *)puVar10)(8,1);\n    pXVar1->xa1_firstblock = puVar2;\n    *puVar2 = '\0';\n    puVar2[1] = '\0';\n    puVar2[2] = '\0';\n    puVar2[3] = '\0';\n    puVar2[4] = '\0';\n    puVar2[5] = '\0';\n    puVar2[6] = '\0';\n    puVar2[7] = '\0';\n    do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));\n    pXVar1->xdmseen = ptVar5;\n  }\n  pcVar6 = (char *)(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4));\n  pXVar1->protoname = pcVar6;\n  pcVar6 = (char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1);\n  pXVar1->datastring = pcVar6;\n  if (0 < pXVar1->datalen) {\n    iVar9 = 0;\n    puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }\n  }\n  pXVar1->disp = (X11Display *)0x0;\n  pXVar1->share_chan = (void *)0x0;\n  pXVar1->share_cs = (void *)0x0;\n  return pXVar1;\n}" type_identifier (pointer_declarator "* x11_invent_fake_auth(tree234 *authtree,int authtype)" * (function_declarator "x11_invent_fake_auth(tree234 *authtree,int authtype)" identifier (parameter_list "(tree234 *authtree,int authtype)" ( (parameter_declaration "tree234 *authtree" type_identifier (pointer_declarator "*authtree" * identifier)) , (parameter_declaration "int authtype" primitive_type identifier) )))) (compound_statement "{\n  X11FakeAuth *pXVar1;\n  uchar *puVar2;\n  uchar *puVar3;\n  X11FakeAuth *pXVar4;\n  tree234 *ptVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  \n  pXVar1 = (X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar10 = PTR_safemalloc_000b2408;\n  if (authtype == 1) {\n    pXVar1->proto = 1;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    pXVar1->data = puVar2;\n    pXVar1->xa1_firstblock = (uchar *)0x0;\n    do {\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    pXVar1->xdmseen = (tree234 *)0x0;\n  }\n  else {\n    if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }\n    pXVar1->proto = 2;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    puVar10 = PTR_safemalloc_000b2408;\n    pXVar1->data = puVar2;\n    puVar2 = (uchar *)(*(code *)puVar10)(8,1);\n    pXVar1->xa1_firstblock = puVar2;\n    *puVar2 = '\0';\n    puVar2[1] = '\0';\n    puVar2[2] = '\0';\n    puVar2[3] = '\0';\n    puVar2[4] = '\0';\n    puVar2[5] = '\0';\n    puVar2[6] = '\0';\n    puVar2[7] = '\0';\n    do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));\n    pXVar1->xdmseen = ptVar5;\n  }\n  pcVar6 = (char *)(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4));\n  pXVar1->protoname = pcVar6;\n  pcVar6 = (char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1);\n  pXVar1->datastring = pcVar6;\n  if (0 < pXVar1->datalen) {\n    iVar9 = 0;\n    puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }\n  }\n  pXVar1->disp = (X11Display *)0x0;\n  pXVar1->share_chan = (void *)0x0;\n  pXVar1->share_cs = (void *)0x0;\n  return pXVar1;\n}" { (declaration "X11FakeAuth *pXVar1;" type_identifier (pointer_declarator "*pXVar1" * identifier) ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "X11FakeAuth *pXVar4;" type_identifier (pointer_declarator "*pXVar4" * identifier) ;) (declaration "tree234 *ptVar5;" type_identifier (pointer_declarator "*ptVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (expression_statement "pXVar1 = (X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);" (assignment_expression "pXVar1 = (X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" identifier = (cast_expression "(X11FakeAuth *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" ( (type_descriptor "X11FakeAuth *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b2408)(1,0x28)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" ( (pointer_expression "*(code *)PTR_safemalloc_000b2408" * (cast_expression "(code *)PTR_safemalloc_000b2408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x28)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar10 = PTR_safemalloc_000b2408;" (assignment_expression "puVar10 = PTR_safemalloc_000b2408" identifier = identifier) ;) (if_statement "if (authtype == 1) {\n    pXVar1->proto = 1;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    pXVar1->data = puVar2;\n    pXVar1->xa1_firstblock = (uchar *)0x0;\n    do {\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    pXVar1->xdmseen = (tree234 *)0x0;\n  }\n  else {\n    if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }\n    pXVar1->proto = 2;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    puVar10 = PTR_safemalloc_000b2408;\n    pXVar1->data = puVar2;\n    puVar2 = (uchar *)(*(code *)puVar10)(8,1);\n    pXVar1->xa1_firstblock = puVar2;\n    *puVar2 = '\0';\n    puVar2[1] = '\0';\n    puVar2[2] = '\0';\n    puVar2[3] = '\0';\n    puVar2[4] = '\0';\n    puVar2[5] = '\0';\n    puVar2[6] = '\0';\n    puVar2[7] = '\0';\n    do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));\n    pXVar1->xdmseen = ptVar5;\n  }" if (parenthesized_expression "(authtype == 1)" ( (binary_expression "authtype == 1" identifier == number_literal) )) (compound_statement "{\n    pXVar1->proto = 1;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    pXVar1->data = puVar2;\n    pXVar1->xa1_firstblock = (uchar *)0x0;\n    do {\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    pXVar1->xdmseen = (tree234 *)0x0;\n  }" { (expression_statement "pXVar1->proto = 1;" (assignment_expression "pXVar1->proto = 1" (field_expression "pXVar1->proto" identifier -> field_identifier) = number_literal) ;) (expression_statement "pXVar1->datalen = 0x10;" (assignment_expression "pXVar1->datalen = 0x10" (field_expression "pXVar1->datalen" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);" (assignment_expression "puVar2 = (uchar *)(*(code *)puVar10)(0x10,1)" identifier = (cast_expression "(uchar *)(*(code *)puVar10)(0x10,1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar10)(0x10,1)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pXVar1->data = puVar2;" (assignment_expression "pXVar1->data = puVar2" (field_expression "pXVar1->data" identifier -> field_identifier) = identifier) ;) (expression_statement "pXVar1->xa1_firstblock = (uchar *)0x0;" (assignment_expression "pXVar1->xa1_firstblock = (uchar *)0x0" (field_expression "pXVar1->xa1_firstblock" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);" do (compound_statement "{\n      iVar9 = 0;\n      if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (0 < pXVar1->datalen) {\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }" if (parenthesized_expression "(0 < pXVar1->datalen)" ( (binary_expression "0 < pXVar1->datalen" number_literal < (field_expression "pXVar1->datalen" identifier -> field_identifier)) )) (compound_statement "{\n        do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);\n      }" { (do_statement "do {\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        } while (iVar9 < pXVar1->datalen);" do (compound_statement "{\n          iVar8 = random_byte();\n          puVar2 = pXVar1->data + iVar9;\n          iVar9 = iVar9 + 1;\n          *puVar2 = (uchar)iVar8;\n        }" { (expression_statement "iVar8 = random_byte();" (assignment_expression "iVar8 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = pXVar1->data + iVar9;" (assignment_expression "puVar2 = pXVar1->data + iVar9" identifier = (binary_expression "pXVar1->data + iVar9" (field_expression "pXVar1->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "*puVar2 = (uchar)iVar8;" (assignment_expression "*puVar2 = (uchar)iVar8" (pointer_expression "*puVar2" * identifier) = (cast_expression "(uchar)iVar8" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(iVar9 < pXVar1->datalen)" ( (binary_expression "iVar9 < pXVar1->datalen" identifier < (field_expression "pXVar1->datalen" identifier -> field_identifier)) )) ;) })) (expression_statement "pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);" (assignment_expression "pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1)" identifier = (cast_expression "(X11FakeAuth *)add234(authtree,pXVar1)" ( (type_descriptor "X11FakeAuth *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(authtree,pXVar1)" identifier (argument_list "(authtree,pXVar1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(pXVar1 != pXVar4)" ( (binary_expression "pXVar1 != pXVar4" identifier != identifier) )) ;) (expression_statement "pXVar1->xdmseen = (tree234 *)0x0;" (assignment_expression "pXVar1->xdmseen = (tree234 *)0x0" (field_expression "pXVar1->xdmseen" identifier -> field_identifier) = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }\n    pXVar1->proto = 2;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    puVar10 = PTR_safemalloc_000b2408;\n    pXVar1->data = puVar2;\n    puVar2 = (uchar *)(*(code *)puVar10)(8,1);\n    pXVar1->xa1_firstblock = puVar2;\n    *puVar2 = '\0';\n    puVar2[1] = '\0';\n    puVar2[2] = '\0';\n    puVar2[3] = '\0';\n    puVar2[4] = '\0';\n    puVar2[5] = '\0';\n    puVar2[6] = '\0';\n    puVar2[7] = '\0';\n    do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));\n    pXVar1->xdmseen = ptVar5;\n  }" else (compound_statement "{\n    if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }\n    pXVar1->proto = 2;\n    pXVar1->datalen = 0x10;\n    puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);\n    puVar10 = PTR_safemalloc_000b2408;\n    pXVar1->data = puVar2;\n    puVar2 = (uchar *)(*(code *)puVar10)(8,1);\n    pXVar1->xa1_firstblock = puVar2;\n    *puVar2 = '\0';\n    puVar2[1] = '\0';\n    puVar2[2] = '\0';\n    puVar2[3] = '\0';\n    puVar2[4] = '\0';\n    puVar2[5] = '\0';\n    puVar2[6] = '\0';\n    puVar2[7] = '\0';\n    do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);\n    ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));\n    pXVar1->xdmseen = ptVar5;\n  }" { (if_statement "if (authtype != 2) {\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }" if (parenthesized_expression "(authtype != 2)" ( (binary_expression "authtype != 2" identifier != number_literal) )) (compound_statement "{\n      pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);\n      return pXVar1;\n    }" { (expression_statement "pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34);" (assignment_expression "pXVar1 = (X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34)" identifier = (cast_expression "(X11FakeAuth *)\n               (*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34)" ( (type_descriptor "X11FakeAuth *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n                         (PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" ( (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" * (cast_expression "(code *)PTR___assert_fail_000b2d2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + 0x84c,\n                          PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                          PTR_s_entropy_source_000b23f0 + 0xa34)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + 0x84c" identifier + number_literal) , (binary_expression "PTR_s_entropy_source_000b23f0 + 0x840" identifier + number_literal) , number_literal , (binary_expression "PTR_s_entropy_source_000b23f0 + 0xa34" identifier + number_literal) ))))) ;) (return_statement "return pXVar1;" return identifier ;) })) (expression_statement "pXVar1->proto = 2;" (assignment_expression "pXVar1->proto = 2" (field_expression "pXVar1->proto" identifier -> field_identifier) = number_literal) ;) (expression_statement "pXVar1->datalen = 0x10;" (assignment_expression "pXVar1->datalen = 0x10" (field_expression "pXVar1->datalen" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar2 = (uchar *)(*(code *)puVar10)(0x10,1);" (assignment_expression "puVar2 = (uchar *)(*(code *)puVar10)(0x10,1)" identifier = (cast_expression "(uchar *)(*(code *)puVar10)(0x10,1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar10)(0x10,1)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,1)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar10 = PTR_safemalloc_000b2408;" (assignment_expression "puVar10 = PTR_safemalloc_000b2408" identifier = identifier) ;) (expression_statement "pXVar1->data = puVar2;" (assignment_expression "pXVar1->data = puVar2" (field_expression "pXVar1->data" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar2 = (uchar *)(*(code *)puVar10)(8,1);" (assignment_expression "puVar2 = (uchar *)(*(code *)puVar10)(8,1)" identifier = (cast_expression "(uchar *)(*(code *)puVar10)(8,1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar10)(8,1)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pXVar1->xa1_firstblock = puVar2;" (assignment_expression "pXVar1->xa1_firstblock = puVar2" (field_expression "pXVar1->xa1_firstblock" identifier -> field_identifier) = identifier) ;) (expression_statement "*puVar2 = '\0';" (assignment_expression "*puVar2 = '\0'" (pointer_expression "*puVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[1] = '\0';" (assignment_expression "puVar2[1] = '\0'" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[2] = '\0';" (assignment_expression "puVar2[2] = '\0'" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[3] = '\0';" (assignment_expression "puVar2[3] = '\0'" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[4] = '\0';" (assignment_expression "puVar2[4] = '\0'" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[5] = '\0';" (assignment_expression "puVar2[5] = '\0'" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[6] = '\0';" (assignment_expression "puVar2[6] = '\0'" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[7] = '\0';" (assignment_expression "puVar2[7] = '\0'" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    } while (pXVar1 != pXVar4);" do (compound_statement "{\n      iVar9 = 0;\n      if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }\n      puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar3 = pXVar1->xa1_firstblock;\n      uVar7 = *(undefined4 *)(puVar2 + 4);\n      *(undefined4 *)puVar3 = *(undefined4 *)puVar2;\n      *(undefined4 *)(puVar3 + 4) = uVar7;\n      (*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);\n      pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (pXVar1->datalen < 1) {\n        puVar2 = pXVar1->data;\n      }\n      else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }" if (parenthesized_expression "(pXVar1->datalen < 1)" ( (binary_expression "pXVar1->datalen < 1" (field_expression "pXVar1->datalen" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n        puVar2 = pXVar1->data;\n      }" { (expression_statement "puVar2 = pXVar1->data;" (assignment_expression "puVar2 = pXVar1->data" identifier = (field_expression "pXVar1->data" identifier -> field_identifier)) ;) }) (else_clause "else {\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }" else (compound_statement "{\n        do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);\nLAB_0008b5b4:\n        puVar2 = pXVar1->data;\n      }" { (do_statement "do {\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        } while (9 < pXVar1->datalen);" do (compound_statement "{\n          while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }\n          iVar9 = 9;\n          pXVar1->data[8] = '\0';\n        }" { (while_statement "while (iVar9 != 8) {\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }" while (parenthesized_expression "(iVar9 != 8)" ( (binary_expression "iVar9 != 8" identifier != number_literal) )) (compound_statement "{\n            iVar8 = random_byte();\n            puVar2 = pXVar1->data + iVar9;\n            iVar9 = iVar9 + 1;\n            *puVar2 = (uchar)iVar8;\n            if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;\n          }" { (expression_statement "iVar8 = random_byte();" (assignment_expression "iVar8 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = pXVar1->data + iVar9;" (assignment_expression "puVar2 = pXVar1->data + iVar9" identifier = (binary_expression "pXVar1->data + iVar9" (field_expression "pXVar1->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "*puVar2 = (uchar)iVar8;" (assignment_expression "*puVar2 = (uchar)iVar8" (pointer_expression "*puVar2" * identifier) = (cast_expression "(uchar)iVar8" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (if_statement "if (pXVar1->datalen <= iVar9) goto LAB_0008b5b4;" if (parenthesized_expression "(pXVar1->datalen <= iVar9)" ( (binary_expression "pXVar1->datalen <= iVar9" (field_expression "pXVar1->datalen" identifier -> field_identifier) <= identifier) )) (goto_statement "goto LAB_0008b5b4;" goto statement_identifier ;)) })) (expression_statement "iVar9 = 9;" (assignment_expression "iVar9 = 9" identifier = number_literal) ;) (expression_statement "pXVar1->data[8] = '\0';" (assignment_expression "pXVar1->data[8] = '\0'" (subscript_expression "pXVar1->data[8]" (field_expression "pXVar1->data" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) while (parenthesized_expression "(9 < pXVar1->datalen)" ( (binary_expression "9 < pXVar1->datalen" number_literal < (field_expression "pXVar1->datalen" identifier -> field_identifier)) )) ;) (labeled_statement "LAB_0008b5b4:\n        puVar2 = pXVar1->data;" statement_identifier : (expression_statement "puVar2 = pXVar1->data;" (assignment_expression "puVar2 = pXVar1->data" identifier = (field_expression "pXVar1->data" identifier -> field_identifier)) ;)) }))) (expression_statement "puVar10 = PTR_des_encrypt_xdmauth_000b2ccc;" (assignment_expression "puVar10 = PTR_des_encrypt_xdmauth_000b2ccc" identifier = identifier) ;) (expression_statement "puVar3 = pXVar1->xa1_firstblock;" (assignment_expression "puVar3 = pXVar1->xa1_firstblock" identifier = (field_expression "pXVar1->xa1_firstblock" identifier -> field_identifier)) ;) (expression_statement "uVar7 = *(undefined4 *)(puVar2 + 4);" (assignment_expression "uVar7 = *(undefined4 *)(puVar2 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar2 + 4)" * (cast_expression "(undefined4 *)(puVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar3 = *(undefined4 *)puVar2;" (assignment_expression "*(undefined4 *)puVar3 = *(undefined4 *)puVar2" (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined4 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined4 *)(puVar3 + 4)" * (cast_expression "(undefined4 *)(puVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8);" (call_expression "(*(code *)puVar10)(pXVar1->data + 9,pXVar1->xa1_firstblock,8)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pXVar1->data + 9,pXVar1->xa1_firstblock,8)" ( (binary_expression "pXVar1->data + 9" (field_expression "pXVar1->data" identifier -> field_identifier) + number_literal) , (field_expression "pXVar1->xa1_firstblock" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1);" (assignment_expression "pXVar4 = (X11FakeAuth *)add234(authtree,pXVar1)" identifier = (cast_expression "(X11FakeAuth *)add234(authtree,pXVar1)" ( (type_descriptor "X11FakeAuth *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(authtree,pXVar1)" identifier (argument_list "(authtree,pXVar1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(pXVar1 != pXVar4)" ( (binary_expression "pXVar1 != pXVar4" identifier != identifier) )) ;) (expression_statement "ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04));" (assignment_expression "ptVar5 = newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04))" identifier = (call_expression "newtree234((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04))" identifier (argument_list "((cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04))" ( (call_expression "(cmpfn234)(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" (parenthesized_expression "(cmpfn234)" ( identifier )) (argument_list "(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" ( (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x4e04" identifier + number_literal) ))) )))) ;) (expression_statement "pXVar1->xdmseen = ptVar5;" (assignment_expression "pXVar1->xdmseen = ptVar5" (field_expression "pXVar1->xdmseen" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pcVar6 = (char *)(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4));" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4))" identifier = (cast_expression "(char *)(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dupstr_000b2410)\n                             (*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4))" (parenthesized_expression "(*(code *)PTR_dupstr_000b2410)" ( (pointer_expression "*(code *)PTR_dupstr_000b2410" * (cast_expression "(code *)PTR_dupstr_000b2410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4))" ( (pointer_expression "*(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4)" * (cast_expression "(undefined4 *)(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4)" ( (binary_expression "PTR_x11_authnames_000b2cd0 + pXVar1->proto * 4" identifier + (binary_expression "pXVar1->proto * 4" (field_expression "pXVar1->proto" identifier -> field_identifier) * number_literal)) )))) ))))) ;) (expression_statement "pXVar1->protoname = pcVar6;" (assignment_expression "pXVar1->protoname = pcVar6" (field_expression "pXVar1->protoname" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar6 = (char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1)" identifier = (cast_expression "(char *)(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b2408)(pXVar1->datalen * 2 + 1,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" ( (pointer_expression "*(code *)PTR_safemalloc_000b2408" * (cast_expression "(code *)PTR_safemalloc_000b2408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pXVar1->datalen * 2 + 1,1)" ( (binary_expression "pXVar1->datalen * 2 + 1" (binary_expression "pXVar1->datalen * 2" (field_expression "pXVar1->datalen" identifier -> field_identifier) * number_literal) + number_literal) , number_literal ))))) ;) (expression_statement "pXVar1->datastring = pcVar6;" (assignment_expression "pXVar1->datastring = pcVar6" (field_expression "pXVar1->datastring" identifier -> field_identifier) = identifier) ;) (if_statement "if (0 < pXVar1->datalen) {\n    iVar9 = 0;\n    puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }\n  }" if (parenthesized_expression "(0 < pXVar1->datalen)" ( (binary_expression "0 < pXVar1->datalen" number_literal < (field_expression "pXVar1->datalen" identifier -> field_identifier)) )) (compound_statement "{\n    iVar9 = 0;\n    puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;" (assignment_expression "puVar10 = PTR_s_acket_from_server___s_000b23a8 + -0x115c" identifier = (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x115c" identifier + number_literal)) ;) (while_statement "while( true ) {\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar8 = iVar9 * 2;\n      puVar2 = pXVar1->data + iVar9;\n      iVar9 = iVar9 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);\n      if (pXVar1->datalen <= iVar9) break;\n      pcVar6 = pXVar1->datastring;\n    }" { (expression_statement "iVar8 = iVar9 * 2;" (assignment_expression "iVar8 = iVar9 * 2" identifier = (binary_expression "iVar9 * 2" identifier * number_literal)) ;) (expression_statement "puVar2 = pXVar1->data + iVar9;" (assignment_expression "puVar2 = pXVar1->data + iVar9" identifier = (binary_expression "pXVar1->data + iVar9" (field_expression "pXVar1->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" * (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6 + iVar8,1,0xffffffff,puVar10,*puVar2)" ( (binary_expression "pcVar6 + iVar8" identifier + identifier) , number_literal , number_literal , identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (if_statement "if (pXVar1->datalen <= iVar9) break;" if (parenthesized_expression "(pXVar1->datalen <= iVar9)" ( (binary_expression "pXVar1->datalen <= iVar9" (field_expression "pXVar1->datalen" identifier -> field_identifier) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar6 = pXVar1->datastring;" (assignment_expression "pcVar6 = pXVar1->datastring" identifier = (field_expression "pXVar1->datastring" identifier -> field_identifier)) ;) })) })) (expression_statement "pXVar1->disp = (X11Display *)0x0;" (assignment_expression "pXVar1->disp = (X11Display *)0x0" (field_expression "pXVar1->disp" identifier -> field_identifier) = (cast_expression "(X11Display *)0x0" ( (type_descriptor "X11Display *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pXVar1->share_chan = (void *)0x0;" (assignment_expression "pXVar1->share_chan = (void *)0x0" (field_expression "pXVar1->share_chan" identifier -> field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pXVar1->share_cs = (void *)0x0;" (assignment_expression "pXVar1->share_cs = (void *)0x0" (field_expression "pXVar1->share_cs" identifier -> field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return pXVar1;" return identifier ;) })))
(translation_unit "int * x11_invent_fake_auth(undefined4 param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}\n\n" (function_definition "int * x11_invent_fake_auth(undefined4 param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}" primitive_type (pointer_declarator "* x11_invent_fake_auth(undefined4 param_1,int param_2)" * (function_declarator "x11_invent_fake_auth(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);" (assignment_expression "piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" identifier = (cast_expression "(int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b2408)(1,0x28)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" ( (pointer_expression "*(code *)PTR_safemalloc_000b2408" * (cast_expression "(code *)PTR_safemalloc_000b2408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x28)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar11 = PTR_safemalloc_000b2408;" (assignment_expression "puVar11 = PTR_safemalloc_000b2408" identifier = identifier) ;) (if_statement "if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }" { (expression_statement "*piVar1 = 1;" (assignment_expression "*piVar1 = 1" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "piVar1[2] = 0x10;" (assignment_expression "piVar1[2] = 0x10" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar11)(0x10,1);" (assignment_expression "iVar2 = (*(code *)puVar11)(0x10,1)" identifier = (call_expression "(*(code *)puVar11)(0x10,1)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,1)" ( number_literal , number_literal )))) ;) (expression_statement "piVar1[1] = iVar2;" (assignment_expression "piVar1[1] = iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[5] = 0;" (assignment_expression "piVar1[5] = 0" (subscript_expression "piVar1[5]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);" do (compound_statement "{\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }" if (parenthesized_expression "(0 < piVar1[2])" ( (binary_expression "0 < piVar1[2]" number_literal < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) (compound_statement "{\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }" { (do_statement "do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);" do (compound_statement "{\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        }" { (expression_statement "uVar6 = random_byte();" (assignment_expression "uVar6 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar2);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar2)" identifier = (cast_expression "(undefined1 *)(piVar1[1] + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + iVar2)" ( (binary_expression "piVar1[1] + iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar6;" (assignment_expression "*puVar3 = uVar6" (pointer_expression "*puVar3" * identifier) = identifier) ;) }) while (parenthesized_expression "(iVar2 < piVar1[2])" ( (binary_expression "iVar2 < piVar1[2]" identifier < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) ;) })) (expression_statement "piVar5 = (int *)add234(param_1,piVar1);" (assignment_expression "piVar5 = (int *)add234(param_1,piVar1)" identifier = (cast_expression "(int *)add234(param_1,piVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "add234(param_1,piVar1)" identifier (argument_list "(param_1,piVar1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(piVar1 != piVar5)" ( (binary_expression "piVar1 != piVar5" identifier != identifier) )) ;) (expression_statement "piVar1[6] = 0;" (assignment_expression "piVar1[6] = 0" (subscript_expression "piVar1[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" else (compound_statement "{\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" { (if_statement "if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }" if (parenthesized_expression "(param_2 != 2)" ( (binary_expression "param_2 != 2" identifier != number_literal) )) (compound_statement "{\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }" { (expression_statement "piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);" (assignment_expression "piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" identifier = (cast_expression "(int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" ( (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" * (cast_expression "(code *)PTR___assert_fail_000b2d2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + 0x84c" identifier + number_literal) , (binary_expression "PTR_s_entropy_source_000b23f0 + 0x840" identifier + number_literal) , number_literal , (binary_expression "PTR_s_entropy_source_000b23f0 + 0xa34" identifier + number_literal) ))))) ;) (return_statement "return piVar1;" return identifier ;) })) (expression_statement "*piVar1 = 2;" (assignment_expression "*piVar1 = 2" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "piVar1[2] = 0x10;" (assignment_expression "piVar1[2] = 0x10" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar11)(0x10,1);" (assignment_expression "iVar2 = (*(code *)puVar11)(0x10,1)" identifier = (call_expression "(*(code *)puVar11)(0x10,1)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,1)" ( number_literal , number_literal )))) ;) (expression_statement "puVar11 = PTR_safemalloc_000b2408;" (assignment_expression "puVar11 = PTR_safemalloc_000b2408" identifier = identifier) ;) (expression_statement "piVar1[1] = iVar2;" (assignment_expression "piVar1[1] = iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)puVar11)(8,1)" identifier = (cast_expression "(undefined1 *)(*(code *)puVar11)(8,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar11)(8,1)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8,1)" ( number_literal , number_literal ))))) ;) (expression_statement "piVar1[5] = (int)puVar3;" (assignment_expression "piVar1[5] = (int)puVar3" (subscript_expression "piVar1[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0;" (assignment_expression "puVar3[5] = 0" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0;" (assignment_expression "puVar3[6] = 0" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);" do (compound_statement "{\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" if (parenthesized_expression "(piVar1[2] < 1)" ( (binary_expression "piVar1[2] < 1" (subscript_expression "piVar1[2]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        puVar7 = (undefined4 *)piVar1[1];\n      }" { (expression_statement "puVar7 = (undefined4 *)piVar1[1];" (assignment_expression "puVar7 = (undefined4 *)piVar1[1]" identifier = (cast_expression "(undefined4 *)piVar1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" else (compound_statement "{\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" { (do_statement "do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);" do (compound_statement "{\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        }" { (while_statement "while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }" while (parenthesized_expression "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )) (compound_statement "{\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }" { (expression_statement "uVar6 = random_byte();" (assignment_expression "uVar6 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar2);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar2)" identifier = (cast_expression "(undefined1 *)(piVar1[1] + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + iVar2)" ( (binary_expression "piVar1[1] + iVar2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar3 = uVar6;" (assignment_expression "*puVar3 = uVar6" (pointer_expression "*puVar3" * identifier) = identifier) ;) (if_statement "if (piVar1[2] <= iVar2) goto LAB_0008b5b4;" if (parenthesized_expression "(piVar1[2] <= iVar2)" ( (binary_expression "piVar1[2] <= iVar2" (subscript_expression "piVar1[2]" identifier [ number_literal ]) <= identifier) )) (goto_statement "goto LAB_0008b5b4;" goto statement_identifier ;)) })) (expression_statement "iVar2 = 9;" (assignment_expression "iVar2 = 9" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(piVar1[1] + 8) = 0;" (assignment_expression "*(undefined1 *)(piVar1[1] + 8) = 0" (pointer_expression "*(undefined1 *)(piVar1[1] + 8)" * (cast_expression "(undefined1 *)(piVar1[1] + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + 8)" ( (binary_expression "piVar1[1] + 8" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) }) while (parenthesized_expression "(9 < piVar1[2])" ( (binary_expression "9 < piVar1[2]" number_literal < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) ;) (labeled_statement "LAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];" statement_identifier : (expression_statement "puVar7 = (undefined4 *)piVar1[1];" (assignment_expression "puVar7 = (undefined4 *)piVar1[1]" identifier = (cast_expression "(undefined4 *)piVar1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[1]" identifier [ number_literal ]))) ;)) }))) (expression_statement "puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;" (assignment_expression "puVar11 = PTR_des_encrypt_xdmauth_000b2ccc" identifier = identifier) ;) (expression_statement "puVar4 = (undefined4 *)piVar1[5];" (assignment_expression "puVar4 = (undefined4 *)piVar1[5]" identifier = (cast_expression "(undefined4 *)piVar1[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = puVar7[1];" (assignment_expression "uVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar7;" (assignment_expression "*puVar4 = *puVar7" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar4[1] = uVar8;" (assignment_expression "puVar4[1] = uVar8" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);" (call_expression "(*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8)" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar1[1] + 9,piVar1[5],8)" ( (binary_expression "piVar1[1] + 9" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal) , (subscript_expression "piVar1[5]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "piVar5 = (int *)add234(param_1,piVar1);" (assignment_expression "piVar5 = (int *)add234(param_1,piVar1)" identifier = (cast_expression "(int *)add234(param_1,piVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "add234(param_1,piVar1)" identifier (argument_list "(param_1,piVar1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(piVar1 != piVar5)" ( (binary_expression "piVar1 != piVar5" identifier != identifier) )) ;) (expression_statement "iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);" (assignment_expression "iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" identifier = (call_expression "newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" identifier (argument_list "(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" ( (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x4e04" identifier + number_literal) )))) ;) (expression_statement "piVar1[6] = iVar2;" (assignment_expression "piVar1[6] = iVar2" (subscript_expression "piVar1[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));" (assignment_expression "iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" identifier = (call_expression "(*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" (parenthesized_expression "(*(code *)PTR_dupstr_000b2410)" ( (pointer_expression "*(code *)PTR_dupstr_000b2410" * (cast_expression "(code *)PTR_dupstr_000b2410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" ( (pointer_expression "*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" * (cast_expression "(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" ( (binary_expression "PTR_x11_authnames_000b2cd0 + *piVar1 * 4" identifier + (binary_expression "*piVar1 * 4" (pointer_expression "*piVar1" * identifier) * number_literal)) )))) )))) ;) (expression_statement "piVar1[3] = iVar2;" (assignment_expression "piVar1[3] = iVar2" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);" (assignment_expression "iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1)" identifier = (call_expression "(*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" ( (pointer_expression "*(code *)PTR_safemalloc_000b2408" * (cast_expression "(code *)PTR_safemalloc_000b2408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar1[2] * 2 + 1,1)" ( (binary_expression "piVar1[2] * 2 + 1" (binary_expression "piVar1[2] * 2" (subscript_expression "piVar1[2]" identifier [ number_literal ]) * number_literal) + number_literal) , number_literal )))) ;) (expression_statement "piVar1[4] = iVar2;" (assignment_expression "piVar1[4] = iVar2" (subscript_expression "piVar1[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }" if (parenthesized_expression "(0 < piVar1[2])" ( (binary_expression "0 < piVar1[2]" number_literal < (subscript_expression "piVar1[2]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c" identifier = (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x115c" identifier + number_literal)) ;) (while_statement "while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }" { (expression_statement "iVar9 = iVar10 * 2;" (assignment_expression "iVar9 = iVar10 * 2" identifier = (binary_expression "iVar10 * 2" identifier * number_literal)) ;) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar10);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar10)" identifier = (cast_expression "(undefined1 *)(piVar1[1] + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1[1] + iVar10)" ( (binary_expression "piVar1[1] + iVar10" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" * (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3)" ( (binary_expression "iVar2 + iVar9" identifier + identifier) , number_literal , number_literal , identifier , (pointer_expression "*puVar3" * identifier) ))) ;) (if_statement "if (piVar1[2] <= iVar10) break;" if (parenthesized_expression "(piVar1[2] <= iVar10)" ( (binary_expression "piVar1[2] <= iVar10" (subscript_expression "piVar1[2]" identifier [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = piVar1[4];" (assignment_expression "iVar2 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) })) })) (expression_statement "piVar1[7] = 0;" (assignment_expression "piVar1[7] = 0" (subscript_expression "piVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[9] = 0;" (assignment_expression "piVar1[9] = 0" (subscript_expression "piVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[8] = 0;" (assignment_expression "piVar1[8] = 0" (subscript_expression "piVar1[8]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT , LIT , IDENT , (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_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) ;) (return_statement return IDENT ;) })))
(function_definition "int * x11_invent_fake_auth(undefined4 param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}" (primitive_type "int") (pointer_declarator "* x11_invent_fake_auth(undefined4 param_1,int param_2)" (* "*") (function_declarator "x11_invent_fake_auth(undefined4 param_1,int param_2)" (identifier "x11_invent_fake_auth") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")")))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 uVar6;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  \n  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);\n  puVar11 = PTR_safemalloc_000b2408;\n  if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }\n  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));\n  piVar1[3] = iVar2;\n  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);\n  piVar1[4] = iVar2;\n  if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }\n  piVar1[7] = 0;\n  piVar1[9] = 0;\n  piVar1[8] = 0;\n  return piVar1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 uVar6;" (type_identifier "undefined1") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (expression_statement "piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);" (assignment_expression "piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_safemalloc_000b2408)(1,0x28)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000b2408" (* "*") (cast_expression "(code *)PTR_safemalloc_000b2408" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000b2408"))) () ")")) (argument_list "(1,0x28)" (( "(") (number_literal "1") (, ",") (number_literal "0x28") () ")"))))) (; ";")) (expression_statement "puVar11 = PTR_safemalloc_000b2408;" (assignment_expression "puVar11 = PTR_safemalloc_000b2408" (identifier "puVar11") (= "=") (identifier "PTR_safemalloc_000b2408")) (; ";")) (if_statement "if (param_2 == 1) {\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }\n  else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" (if "if") (parenthesized_expression "(param_2 == 1)" (( "(") (binary_expression "param_2 == 1" (identifier "param_2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    *piVar1 = 1;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    piVar1[1] = iVar2;\n    piVar1[5] = 0;\n    do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    piVar1[6] = 0;\n  }" ({ "{") (expression_statement "*piVar1 = 1;" (assignment_expression "*piVar1 = 1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar1[2] = 0x10;" (assignment_expression "piVar1[2] = 0x10" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "iVar2 = (*(code *)puVar11)(0x10,1);" (assignment_expression "iVar2 = (*(code *)puVar11)(0x10,1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)puVar11)(0x10,1)" (parenthesized_expression "(*(code *)puVar11)" (( "(") (pointer_expression "*(code *)puVar11" (* "*") (cast_expression "(code *)puVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) () ")")) (argument_list "(0x10,1)" (( "(") (number_literal "0x10") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "piVar1[1] = iVar2;" (assignment_expression "piVar1[1] = iVar2" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar1[5] = 0;" (assignment_expression "piVar1[5] = 0" (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);" (do "do") (compound_statement "{\n      iVar2 = 0;\n      if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }\n      piVar5 = (int *)add234(param_1,piVar1);\n    }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < piVar1[2]) {\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }" (if "if") (parenthesized_expression "(0 < piVar1[2])" (( "(") (binary_expression "0 < piVar1[2]" (number_literal "0") (< "<") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n        do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);\n      }" ({ "{") (do_statement "do {\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        } while (iVar2 < piVar1[2]);" (do "do") (compound_statement "{\n          uVar6 = random_byte();\n          puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n          iVar2 = iVar2 + 1;\n          *puVar3 = uVar6;\n        }" ({ "{") (expression_statement "uVar6 = random_byte();" (assignment_expression "uVar6 = random_byte()" (identifier "uVar6") (= "=") (call_expression "random_byte()" (identifier "random_byte") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar2);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar2)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(piVar1[1] + iVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar1[1] + iVar2)" (( "(") (binary_expression "piVar1[1] + iVar2" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar3 = uVar6;" (assignment_expression "*puVar3 = uVar6" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < piVar1[2])" (( "(") (binary_expression "iVar2 < piVar1[2]" (identifier "iVar2") (< "<") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "piVar5 = (int *)add234(param_1,piVar1);" (assignment_expression "piVar5 = (int *)add234(param_1,piVar1)" (identifier "piVar5") (= "=") (cast_expression "(int *)add234(param_1,piVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "add234(param_1,piVar1)" (identifier "add234") (argument_list "(param_1,piVar1)" (( "(") (identifier "param_1") (, ",") (identifier "piVar1") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != piVar5)" (( "(") (binary_expression "piVar1 != piVar5" (identifier "piVar1") (!= "!=") (identifier "piVar5")) () ")")) (; ";")) (expression_statement "piVar1[6] = 0;" (assignment_expression "piVar1[6] = 0" (subscript_expression "piVar1[6]" (identifier "piVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" (else "else") (compound_statement "{\n    if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }\n    *piVar1 = 2;\n    piVar1[2] = 0x10;\n    iVar2 = (*(code *)puVar11)(0x10,1);\n    puVar11 = PTR_safemalloc_000b2408;\n    piVar1[1] = iVar2;\n    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);\n    piVar1[5] = (int)puVar3;\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);\n    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);\n    piVar1[6] = iVar2;\n  }" ({ "{") (if_statement "if (param_2 != 2) {\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }" (if "if") (parenthesized_expression "(param_2 != 2)" (( "(") (binary_expression "param_2 != 2" (identifier "param_2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);\n      return piVar1;\n    }" ({ "{") (expression_statement "piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34);" (assignment_expression "piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n                                (PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" (* "*") (cast_expression "(code *)PTR___assert_fail_000b2d2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000b2d2c"))) () ")")) (argument_list "(PTR_s_entropy_source_000b23f0 + 0x84c,\n                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,\n                                 PTR_s_entropy_source_000b23f0 + 0xa34)" (( "(") (binary_expression "PTR_s_entropy_source_000b23f0 + 0x84c" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "0x84c")) (, ",") (binary_expression "PTR_s_entropy_source_000b23f0 + 0x840" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "0x840")) (, ",") (number_literal "0x76") (, ",") (binary_expression "PTR_s_entropy_source_000b23f0 + 0xa34" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "0xa34")) () ")"))))) (; ";")) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}"))) (expression_statement "*piVar1 = 2;" (assignment_expression "*piVar1 = 2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "2")) (; ";")) (expression_statement "piVar1[2] = 0x10;" (assignment_expression "piVar1[2] = 0x10" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "iVar2 = (*(code *)puVar11)(0x10,1);" (assignment_expression "iVar2 = (*(code *)puVar11)(0x10,1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)puVar11)(0x10,1)" (parenthesized_expression "(*(code *)puVar11)" (( "(") (pointer_expression "*(code *)puVar11" (* "*") (cast_expression "(code *)puVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) () ")")) (argument_list "(0x10,1)" (( "(") (number_literal "0x10") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "puVar11 = PTR_safemalloc_000b2408;" (assignment_expression "puVar11 = PTR_safemalloc_000b2408" (identifier "puVar11") (= "=") (identifier "PTR_safemalloc_000b2408")) (; ";")) (expression_statement "piVar1[1] = iVar2;" (assignment_expression "piVar1[1] = iVar2" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)puVar11)(8,1)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(*(code *)puVar11)(8,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar11)(8,1)" (parenthesized_expression "(*(code *)puVar11)" (( "(") (pointer_expression "*(code *)puVar11" (* "*") (cast_expression "(code *)puVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) () ")")) (argument_list "(8,1)" (( "(") (number_literal "8") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "piVar1[5] = (int)puVar3;" (assignment_expression "piVar1[5] = (int)puVar3" (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3"))) (; ";")) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[5] = 0;" (assignment_expression "puVar3[5] = 0" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[6] = 0;" (assignment_expression "puVar3[6] = 0" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    } while (piVar1 != piVar5);" (do "do") (compound_statement "{\n      iVar2 = 0;\n      if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;\n      puVar4 = (undefined4 *)piVar1[5];\n      uVar8 = puVar7[1];\n      *puVar4 = *puVar7;\n      puVar4[1] = uVar8;\n      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);\n      piVar5 = (int *)add234(param_1,piVar1);\n    }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar1[2] < 1) {\n        puVar7 = (undefined4 *)piVar1[1];\n      }\n      else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" (if "if") (parenthesized_expression "(piVar1[2] < 1)" (( "(") (binary_expression "piVar1[2] < 1" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        puVar7 = (undefined4 *)piVar1[1];\n      }" ({ "{") (expression_statement "puVar7 = (undefined4 *)piVar1[1];" (assignment_expression "puVar7 = (undefined4 *)piVar1[1]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)piVar1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" (else "else") (compound_statement "{\n        do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);\nLAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];\n      }" ({ "{") (do_statement "do {\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        } while (9 < piVar1[2]);" (do "do") (compound_statement "{\n          while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }\n          iVar2 = 9;\n          *(undefined1 *)(piVar1[1] + 8) = 0;\n        }" ({ "{") (while_statement "while (iVar2 != 8) {\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }" (while "while") (parenthesized_expression "(iVar2 != 8)" (( "(") (binary_expression "iVar2 != 8" (identifier "iVar2") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n            uVar6 = random_byte();\n            puVar3 = (undefined1 *)(piVar1[1] + iVar2);\n            iVar2 = iVar2 + 1;\n            *puVar3 = uVar6;\n            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;\n          }" ({ "{") (expression_statement "uVar6 = random_byte();" (assignment_expression "uVar6 = random_byte()" (identifier "uVar6") (= "=") (call_expression "random_byte()" (identifier "random_byte") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar2);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar2)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(piVar1[1] + iVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar1[1] + iVar2)" (( "(") (binary_expression "piVar1[1] + iVar2" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar3 = uVar6;" (assignment_expression "*puVar3 = uVar6" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (piVar1[2] <= iVar2) goto LAB_0008b5b4;" (if "if") (parenthesized_expression "(piVar1[2] <= iVar2)" (( "(") (binary_expression "piVar1[2] <= iVar2" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (<= "<=") (identifier "iVar2")) () ")")) (goto_statement "goto LAB_0008b5b4;" (goto "goto") (statement_identifier "LAB_0008b5b4") (; ";"))) (} "}"))) (expression_statement "iVar2 = 9;" (assignment_expression "iVar2 = 9" (identifier "iVar2") (= "=") (number_literal "9")) (; ";")) (expression_statement "*(undefined1 *)(piVar1[1] + 8) = 0;" (assignment_expression "*(undefined1 *)(piVar1[1] + 8) = 0" (pointer_expression "*(undefined1 *)(piVar1[1] + 8)" (* "*") (cast_expression "(undefined1 *)(piVar1[1] + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar1[1] + 8)" (( "(") (binary_expression "piVar1[1] + 8" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(9 < piVar1[2])" (( "(") (binary_expression "9 < piVar1[2]" (number_literal "9") (< "<") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) () ")")) (; ";")) (labeled_statement "LAB_0008b5b4:\n        puVar7 = (undefined4 *)piVar1[1];" (statement_identifier "LAB_0008b5b4") (: ":") (expression_statement "puVar7 = (undefined4 *)piVar1[1];" (assignment_expression "puVar7 = (undefined4 *)piVar1[1]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)piVar1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (} "}")))) (expression_statement "puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;" (assignment_expression "puVar11 = PTR_des_encrypt_xdmauth_000b2ccc" (identifier "puVar11") (= "=") (identifier "PTR_des_encrypt_xdmauth_000b2ccc")) (; ";")) (expression_statement "puVar4 = (undefined4 *)piVar1[5];" (assignment_expression "puVar4 = (undefined4 *)piVar1[5]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)piVar1[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar8 = puVar7[1];" (assignment_expression "uVar8 = puVar7[1]" (identifier "uVar8") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar4 = *puVar7;" (assignment_expression "*puVar4 = *puVar7" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar4[1] = uVar8;" (assignment_expression "puVar4[1] = uVar8" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "(*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);" (call_expression "(*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8)" (parenthesized_expression "(*(code *)puVar11)" (( "(") (pointer_expression "*(code *)puVar11" (* "*") (cast_expression "(code *)puVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) () ")")) (argument_list "(piVar1[1] + 9,piVar1[5],8)" (( "(") (binary_expression "piVar1[1] + 9" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "9")) (, ",") (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "piVar5 = (int *)add234(param_1,piVar1);" (assignment_expression "piVar5 = (int *)add234(param_1,piVar1)" (identifier "piVar5") (= "=") (cast_expression "(int *)add234(param_1,piVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "add234(param_1,piVar1)" (identifier "add234") (argument_list "(param_1,piVar1)" (( "(") (identifier "param_1") (, ",") (identifier "piVar1") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != piVar5)" (( "(") (binary_expression "piVar1 != piVar5" (identifier "piVar1") (!= "!=") (identifier "piVar5")) () ")")) (; ";")) (expression_statement "iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);" (assignment_expression "iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" (identifier "iVar2") (= "=") (call_expression "newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" (identifier "newtree234") (argument_list "(PTR_s_acket_from_server___s_000b23a8 + -0x4e04)" (( "(") (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x4e04" (identifier "PTR_s_acket_from_server___s_000b23a8") (+ "+") (number_literal "-0x4e04")) () ")")))) (; ";")) (expression_statement "piVar1[6] = iVar2;" (assignment_expression "piVar1[6] = iVar2" (subscript_expression "piVar1[6]" (identifier "piVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (} "}")))) (expression_statement "iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));" (assignment_expression "iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" (parenthesized_expression "(*(code *)PTR_dupstr_000b2410)" (( "(") (pointer_expression "*(code *)PTR_dupstr_000b2410" (* "*") (cast_expression "(code *)PTR_dupstr_000b2410" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dupstr_000b2410"))) () ")")) (argument_list "(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4))" (( "(") (pointer_expression "*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" (* "*") (cast_expression "(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_x11_authnames_000b2cd0 + *piVar1 * 4)" (( "(") (binary_expression "PTR_x11_authnames_000b2cd0 + *piVar1 * 4" (identifier "PTR_x11_authnames_000b2cd0") (+ "+") (binary_expression "*piVar1 * 4" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (* "*") (number_literal "4"))) () ")")))) () ")")))) (; ";")) (expression_statement "piVar1[3] = iVar2;" (assignment_expression "piVar1[3] = iVar2" (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);" (assignment_expression "iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b2408)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000b2408" (* "*") (cast_expression "(code *)PTR_safemalloc_000b2408" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000b2408"))) () ")")) (argument_list "(piVar1[2] * 2 + 1,1)" (( "(") (binary_expression "piVar1[2] * 2 + 1" (binary_expression "piVar1[2] * 2" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "piVar1[4] = iVar2;" (assignment_expression "piVar1[4] = iVar2" (subscript_expression "piVar1[4]" (identifier "piVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (0 < piVar1[2]) {\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }" (if "if") (parenthesized_expression "(0 < piVar1[2])" (( "(") (binary_expression "0 < piVar1[2]" (number_literal "0") (< "<") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n    iVar10 = 0;\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;\n    while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }\n  }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c" (identifier "puVar11") (= "=") (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x115c" (identifier "PTR_s_acket_from_server___s_000b23a8") (+ "+") (number_literal "-0x115c"))) (; ";")) (while_statement "while( true ) {\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar9 = iVar10 * 2;\n      puVar3 = (undefined1 *)(piVar1[1] + iVar10);\n      iVar10 = iVar10 + 1;\n      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);\n      if (piVar1[2] <= iVar10) break;\n      iVar2 = piVar1[4];\n    }" ({ "{") (expression_statement "iVar9 = iVar10 * 2;" (assignment_expression "iVar9 = iVar10 * 2" (identifier "iVar9") (= "=") (binary_expression "iVar10 * 2" (identifier "iVar10") (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar3 = (undefined1 *)(piVar1[1] + iVar10);" (assignment_expression "puVar3 = (undefined1 *)(piVar1[1] + iVar10)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(piVar1[1] + iVar10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar1[1] + iVar10)" (( "(") (binary_expression "piVar1[1] + iVar10" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar10")) () ")")))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" (* "*") (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_000b2d1c"))) () ")")) (argument_list "(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3)" (( "(") (binary_expression "iVar2 + iVar9" (identifier "iVar2") (+ "+") (identifier "iVar9")) (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (identifier "puVar11") (, ",") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) () ")"))) (; ";")) (if_statement "if (piVar1[2] <= iVar10) break;" (if "if") (parenthesized_expression "(piVar1[2] <= iVar10)" (( "(") (binary_expression "piVar1[2] <= iVar10" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (<= "<=") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar2 = piVar1[4];" (assignment_expression "iVar2 = piVar1[4]" (identifier "iVar2") (= "=") (subscript_expression "piVar1[4]" (identifier "piVar1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar1[7] = 0;" (assignment_expression "piVar1[7] = 0" (subscript_expression "piVar1[7]" (identifier "piVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[9] = 0;" (assignment_expression "piVar1[9] = 0" (subscript_expression "piVar1[9]" (identifier "piVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[8] = 0;" (assignment_expression "piVar1[8] = 0" (subscript_expression "piVar1[8]" (identifier "piVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (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: (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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (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))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_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) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (number_literal) (number_literal) (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))) (return_statement (identifier)))))

int * MASKED(undefined4 param_1,int param_2)

{
  int *piVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 uVar6;
  undefined4 *puVar4;
  int *piVar5;
  undefined4 *puVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  undefined *puVar11;
  
  piVar1 = (int *)(*(code *)PTR_safemalloc_000b2408)(1,0x28);
  puVar11 = PTR_safemalloc_000b2408;
  if (param_2 == 1) {
    *piVar1 = 1;
    piVar1[2] = 0x10;
    iVar2 = (*(code *)puVar11)(0x10,1);
    piVar1[1] = iVar2;
    piVar1[5] = 0;
    do {
      iVar2 = 0;
      if (0 < piVar1[2]) {
        do {
          uVar6 = random_byte();
          puVar3 = (undefined1 *)(piVar1[1] + iVar2);
          iVar2 = iVar2 + 1;
          *puVar3 = uVar6;
        } while (iVar2 < piVar1[2]);
      }
      piVar5 = (int *)add234(param_1,piVar1);
    } while (piVar1 != piVar5);
    piVar1[6] = 0;
  }
  else {
    if (param_2 != 2) {
      piVar1 = (int *)(*(code *)PTR___assert_fail_000b2d2c)
                                (PTR_s_entropy_source_000b23f0 + 0x84c,
                                 PTR_s_entropy_source_000b23f0 + 0x840,0x76,
                                 PTR_s_entropy_source_000b23f0 + 0xa34);
      return piVar1;
    }
    *piVar1 = 2;
    piVar1[2] = 0x10;
    iVar2 = (*(code *)puVar11)(0x10,1);
    puVar11 = PTR_safemalloc_000b2408;
    piVar1[1] = iVar2;
    puVar3 = (undefined1 *)(*(code *)puVar11)(8,1);
    piVar1[5] = (int)puVar3;
    *puVar3 = 0;
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[3] = 0;
    puVar3[4] = 0;
    puVar3[5] = 0;
    puVar3[6] = 0;
    puVar3[7] = 0;
    do {
      iVar2 = 0;
      if (piVar1[2] < 1) {
        puVar7 = (undefined4 *)piVar1[1];
      }
      else {
        do {
          while (iVar2 != 8) {
            uVar6 = random_byte();
            puVar3 = (undefined1 *)(piVar1[1] + iVar2);
            iVar2 = iVar2 + 1;
            *puVar3 = uVar6;
            if (piVar1[2] <= iVar2) goto LAB_0008b5b4;
          }
          iVar2 = 9;
          *(undefined1 *)(piVar1[1] + 8) = 0;
        } while (9 < piVar1[2]);
LAB_0008b5b4:
        puVar7 = (undefined4 *)piVar1[1];
      }
      puVar11 = PTR_des_encrypt_xdmauth_000b2ccc;
      puVar4 = (undefined4 *)piVar1[5];
      uVar8 = puVar7[1];
      *puVar4 = *puVar7;
      puVar4[1] = uVar8;
      (*(code *)puVar11)(piVar1[1] + 9,piVar1[5],8);
      piVar5 = (int *)add234(param_1,piVar1);
    } while (piVar1 != piVar5);
    iVar2 = newtree234(PTR_s_acket_from_server___s_000b23a8 + -0x4e04);
    piVar1[6] = iVar2;
  }
  iVar2 = (*(code *)PTR_dupstr_000b2410)(*(undefined4 *)(PTR_x11_authnames_000b2cd0 + *piVar1 * 4));
  piVar1[3] = iVar2;
  iVar2 = (*(code *)PTR_safemalloc_000b2408)(piVar1[2] * 2 + 1,1);
  piVar1[4] = iVar2;
  if (0 < piVar1[2]) {
    iVar10 = 0;
    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x115c;
    while( true ) {
      iVar9 = iVar10 * 2;
      puVar3 = (undefined1 *)(piVar1[1] + iVar10);
      iVar10 = iVar10 + 1;
      (*(code *)PTR___sprintf_chk_000b2d1c)(iVar2 + iVar9,1,0xffffffff,puVar11,*puVar3);
      if (piVar1[2] <= iVar10) break;
      iVar2 = piVar1[4];
    }
  }
  piVar1[7] = 0;
  piVar1[9] = 0;
  piVar1[8] = 0;
  return piVar1;
}

