
agent_pending_query *
agent_query(void *in,int inlen,void **out,int *outlen,_func_void_void_ptr_void_ptr_int *callback,
           void *callback_ctx)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  int fd;
  int iVar5;
  agent_pending_query *conn;
  agent_pending_query *paVar6;
  tree234 *t;
  undefined4 uVar7;
  sockaddr_un *psVar8;
  void **callback_00;
  sockaddr_un *psVar9;
  undefined *puVar10;
  sockaddr_un addr;
  
  puVar10 = PTR___stack_chk_guard_000adcd4;
  iVar2 = *(int *)PTR___stack_chk_guard_000adcd4;
  psVar8 = (sockaddr_un *)inlen;
  callback_00 = out;
  iVar3 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);
  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)) {
LAB_00079c64:
    paVar6 = (agent_pending_query *)0x0;
    *out = (void *)0x0;
    *outlen = 0;
  }
  else {
    callback_00 = (void **)0x0;
    psVar8 = (sockaddr_un *)0x2;
    fd = (*(code *)PTR_socket_000adb5c)(1);
    if (fd < 0) goto LAB_00079da4;
    cloexec(fd);
    addr.sun_family = 1;
    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);
    callback_00 = (void **)0x6e;
    psVar8 = &addr;
    iVar3 = (*(code *)PTR_connect_000adb20)(fd);
    if (iVar3 < 0) {
LAB_00079c54:
      (*(code *)PTR_close_000adb18)(fd);
      goto LAB_00079c64;
    }
    iVar3 = 0;
    if (0 < inlen) {
      do {
        callback_00 = (void **)(inlen - iVar3);
        psVar8 = (sockaddr_un *)((int)in + iVar3);
        iVar5 = (*(code *)PTR_write_000adc20)(fd);
        if (iVar5 < 1) goto LAB_00079c54;
        iVar3 = iVar3 + iVar5;
      } while (iVar3 < inlen);
    }
    psVar8 = (sockaddr_un *)0x1c;
    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);
    conn->fd = fd;
    conn->retbuf = conn->sizebuf;
    conn->retlen = 0;
    conn->retsize = 4;
    conn->callback = callback;
    conn->callback_ctx = callback_ctx;
    puVar1 = PTR_DAT_000ad2b8;
    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {
      no_nonblock(fd);
      do {
        iVar3 = agent_try_read(conn);
        puVar1 = PTR_safefree_000ad380;
      } while (iVar3 == 0);
      iVar3 = conn->retlen;
      paVar6 = (agent_pending_query *)0x0;
      *out = conn->retbuf;
      *outlen = iVar3;
      (*(code *)puVar1)(conn);
    }
    else {
      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);
      if (t == (tree234 *)0x0) {
        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));
        *(tree234 **)(puVar1 + -0x1bc0) = t;
      }
      add234(t,conn);
      psVar8 = (sockaddr_un *)0x1;
      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);
      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);
      paVar6 = conn;
    }
  }
  if (iVar2 == *(int *)puVar10) {
    return paVar6;
  }
  (*(code *)PTR___stack_chk_fail_000adca4)();
LAB_00079da4:
  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);
  uVar7 = 1;
  puVar10 = PTR_exit_000adc48;
  (*(code *)PTR_exit_000adc48)(1);
  if (callback_00 != (void **)0x0) {
    psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));
    do {
      while( true ) {
        uVar4 = (uint)*(char *)&psVar8->sun_family;
        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);
        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;
        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);
        if (psVar9 == psVar8) goto LAB_00079e4c;
      }
    } while (psVar9 != psVar8);
  }
LAB_00079e4c:
                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7);
  return paVar6;
}



int * agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  undefined4 uVar7;
  char *pcVar8;
  int *piVar9;
  int *piVar10;
  char *pcVar11;
  undefined *puVar12;
  char local_9c [112];
  int local_2c;
  
  puVar12 = PTR___stack_chk_guard_000adcd4;
  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;
  pcVar8 = param_2;
  piVar9 = param_3;
  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);
  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {
LAB_00079c64:
    piVar10 = (int *)0x0;
    *param_3 = 0;
    *param_4 = 0;
  }
  else {
    piVar9 = (int *)0x0;
    pcVar8 = (char *)0x2;
    iVar4 = (*(code *)PTR_socket_000adb5c)(1);
    if (iVar4 < 0) goto LAB_00079da4;
    cloexec(iVar4);
    local_9c[0] = '\0';
    local_9c[1] = '\x01';
    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);
    piVar9 = (int *)0x6e;
    pcVar8 = local_9c;
    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);
    if (iVar2 < 0) {
LAB_00079c54:
      (*(code *)PTR_close_000adb18)(iVar4);
      goto LAB_00079c64;
    }
    iVar2 = 0;
    if (0 < (int)param_2) {
      do {
        piVar9 = (int *)(param_2 + -iVar2);
        pcVar8 = (char *)(param_1 + iVar2);
        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);
        if (iVar5 < 1) goto LAB_00079c54;
        iVar2 = iVar2 + iVar5;
      } while (iVar2 < (int)param_2);
    }
    pcVar8 = (char *)0x1c;
    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);
    *piVar6 = iVar4;
    piVar6[1] = (int)(piVar6 + 2);
    piVar6[4] = 0;
    piVar6[3] = 4;
    piVar6[5] = param_5;
    piVar6[6] = param_6;
    puVar1 = PTR_DAT_000ad2b8;
    if (param_5 == 0) {
      no_nonblock(iVar4);
      do {
        iVar2 = FUN_00079828(piVar6);
        puVar1 = PTR_safefree_000ad380;
      } while (iVar2 == 0);
      iVar2 = piVar6[4];
      piVar10 = (int *)0x0;
      *param_3 = piVar6[1];
      *param_4 = iVar2;
      (*(code *)puVar1)(piVar6);
    }
    else {
      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);
      if (iVar2 == 0) {
        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);
        *(int *)(puVar1 + -0x1bc0) = iVar2;
      }
      add234(iVar2,piVar6);
      pcVar8 = (char *)0x1;
      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);
      uxsel_set(iVar4);
      piVar10 = piVar6;
    }
  }
  if (local_2c == *(int *)puVar12) {
    return piVar10;
  }
  (*(code *)PTR___stack_chk_fail_000adca4)();
LAB_00079da4:
  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);
  uVar7 = 1;
  puVar12 = PTR_exit_000adc48;
  (*(code *)PTR_exit_000adc48)(1);
  if (piVar9 != (int *)0x0) {
    pcVar11 = pcVar8 + (int)piVar9;
    do {
      while( true ) {
        uVar3 = (uint)*pcVar8;
        pcVar8 = pcVar8 + 1;
        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;
        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);
        if (pcVar11 == pcVar8) goto LAB_00079e4c;
      }
    } while (pcVar11 != pcVar8);
  }
LAB_00079e4c:
                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);
  return piVar9;
}


lui gp,0x4
addiu gp,gp,-0x4884
addu gp,gp,t9
addiu sp,sp,-0xb8
lw t9,-0x762c(gp)
sw s4,0xa0(sp)
sw s3,0x9c(sp)
or s3,a0,zero
lw s4,-0x75bc(gp)
lw a0,-0x7fc0(gp)
sw gp,0x10(sp)
sw s8,0xb0(sp)
sw s7,0xac(sp)
addiu a0,a0,-0x7d80
sw s6,0xa8(sp)
or s6,a2,zero
sw s5,0xa4(sp)
or s5,a3,zero
sw s1,0x94(sp)
or s1,a1,zero
sw ra,0xb4(sp)
sw s2,0x98(sp)
sw s0,0x90(sp)
lw v0,0x0(s4)
lw s7,0xc8(sp)
lw s8,0xcc(sp)
sw v0,0x8c(sp)
jalr t9
_nop
beq v0,zero,0x00079c64
_lw gp,0x10(sp)
lw t9,-0x7668(gp)
or a0,v0,zero
jalr t9
_or s0,v0,zero
sltiu v0,v0,0x6c
beq v0,zero,0x00079c64
_lw gp,0x10(sp)
lw t9,-0x7734(gp)
or a2,zero,zero
li a1,0x2
jalr t9
_li a0,0x1
lw gp,0x10(sp)
bltz v0,0x00079da4
_or s2,v0,zero
lw t9,-0x7f00(gp)
bal 0x0007b9f0
_or a0,v0,zero
li v0,0x1
lw gp,0x10(sp)
li a2,0x6c
addiu a0,sp,0x1e
sh v0,0x1c(sp)
lw t9,-0x76d8(gp)
jalr t9
_or a1,s0,zero
li a2,0x6e
lw gp,0x10(sp)
addiu a1,sp,0x1c
lw t9,-0x7770(gp)
jalr t9
_or a0,s2,zero
bltz v0,0x00079c54
_lw gp,0x10(sp)
bgtz s1,0x00079c38
_or s0,zero,zero
b 0x00079cb0
_lw t9,-0x7e7c(gp)
addu s0,s0,v0
slt v0,s0,s1
beq v0,zero,0x00079cb0
_lw t9,-0x7e7c(gp)
lw t9,-0x7670(gp)
subu a2,s1,s0
addu a1,s3,s0
jalr t9
_or a0,s2,zero
bgtz v0,0x00079c28
_lw gp,0x10(sp)
lw t9,-0x7778(gp)
jalr t9
_or a0,s2,zero
lw gp,0x10(sp)
or s0,zero,zero
sw zero,0x0(s6)
sw zero,0x0(s5)
lw a0,0x8c(sp)
or v0,s0,zero
lw v1,0x0(s4)
bne a0,v1,0x00079d98
_lw ra,0xb4(sp)
lw s8,0xb0(sp)
lw s7,0xac(sp)
lw s6,0xa8(sp)
lw s5,0xa4(sp)
lw s4,0xa0(sp)
lw s3,0x9c(sp)
lw s2,0x98(sp)
lw s1,0x94(sp)
lw s0,0x90(sp)
jr ra
_addiu sp,sp,0xb8
li a1,0x1c
jalr t9
_li a0,0x1
or s0,v0,zero
lw gp,0x10(sp)
addiu v0,v0,0x8
sw s2,0x0(s0)
sw v0,0x4(s0)
li v0,0x4
sw zero,0x10(s0)
sw v0,0xc(s0)
sw s7,0x14(s0)
beq s7,zero,0x00079d44
_sw s8,0x18(s0)
lw s1,-0x7fd8(gp)
lw a0,-0x1bc0(s1)
beq a0,zero,0x00079d28
_lw t9,-0x7e2c(gp)
lw t9,-0x7e34(gp)
bal 0x00079168
_or a1,s0,zero
li a1,0x1
lw gp,0x10(sp)
or a0,s2,zero
lw a2,-0x7f98(gp)
lw t9,-0x786c(gp)
bal 0x000823e0
_addiu a2,a2,-0x65c8
b 0x00079c70
_lw gp,0x10(sp)
lw a0,-0x7f98(gp)
bal 0x000790a8
_addiu a0,a0,-0x6820
lw gp,0x10(sp)
or a0,v0,zero
b 0x00079cf8
_sw v0,-0x1bc0(s1)
lw t9,-0x7f78(gp)
bal 0x0007bd08
_or a0,s2,zero
lw gp,0x10(sp)
lw s1,-0x7f98(gp)
addiu s1,s1,-0x67d8
or t9,s1,zero
bal 0x00079828
_or a0,s0,zero
beq v0,zero,0x00079d5c
_lw gp,0x10(sp)
lw v1,0x4(s0)
or a0,s0,zero
lw v0,0x10(s0)
or s0,zero,zero
lw t9,-0x7f10(gp)
sw v1,0x0(s6)
jalr t9
_sw v0,0x0(s5)
b 0x00079c70
_lw gp,0x10(sp)
lw t9,-0x75ec(gp)
jalr t9
_nop
lw a0,-0x7fc0(gp)
lw t9,-0x7608(gp)
jalr t9
_addiu a0,a0,-0x7d5c
lw gp,0x10(sp)
lw t9,-0x7648(gp)
jalr t9
_li a0,0x1
nop
nop
nop
(translation_unit "int * agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}\n\n" (function_definition "int * agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}" primitive_type (pointer_declarator "* agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" * (function_declarator "agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char local_9c [112];" primitive_type (array_declarator "local_9c [112]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar12 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (expression_statement "piVar9 = param_3;" (assignment_expression "piVar9 = param_3" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);" (assignment_expression "iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" identifier = (call_expression "(*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" (parenthesized_expression "(*(code *)PTR_getenv_000adc64)" ( (pointer_expression "*(code *)PTR_getenv_000adc64" * (cast_expression "(code *)PTR_getenv_000adc64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7d80)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7d80" identifier + number_literal) )))) ;) (if_statement "if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" if (parenthesized_expression "((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3))" ( (binary_expression "(iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)" ( (comma_expression "uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3" (assignment_expression "uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(iVar2)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "0x6b < uVar3" number_literal < identifier)) ))) )) (compound_statement "{\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }" { (labeled_statement "LAB_00079c64:\n    piVar10 = (int *)0x0;" statement_identifier : (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) }) (else_clause "else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" else (compound_statement "{\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" { (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = (char *)0x2;" (assignment_expression "pcVar8 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = (*(code *)PTR_socket_000adb5c)(1);" (assignment_expression "iVar4 = (*(code *)PTR_socket_000adb5c)(1)" identifier = (call_expression "(*(code *)PTR_socket_000adb5c)(1)" (parenthesized_expression "(*(code *)PTR_socket_000adb5c)" ( (pointer_expression "*(code *)PTR_socket_000adb5c" * (cast_expression "(code *)PTR_socket_000adb5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00079da4;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00079da4;" goto statement_identifier ;)) (expression_statement "cloexec(iVar4);" (call_expression "cloexec(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "local_9c[0] = '\0';" (assignment_expression "local_9c[0] = '\0'" (subscript_expression "local_9c[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_9c[1] = '\x01';" (assignment_expression "local_9c[1] = '\x01'" (subscript_expression "local_9c[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000adbb8)" ( (pointer_expression "*(code *)PTR___strcpy_chk_000adbb8" * (cast_expression "(code *)PTR___strcpy_chk_000adbb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_9c + 2,iVar2,0x6c)" ( (binary_expression "local_9c + 2" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "piVar9 = (int *)0x6e;" (assignment_expression "piVar9 = (int *)0x6e" identifier = (cast_expression "(int *)0x6e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = local_9c;" (assignment_expression "pcVar8 = local_9c" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);" (assignment_expression "iVar2 = (*(code *)PTR_connect_000adb20)(iVar4)" identifier = (call_expression "(*(code *)PTR_connect_000adb20)(iVar4)" (parenthesized_expression "(*(code *)PTR_connect_000adb20)" ( (pointer_expression "*(code *)PTR_connect_000adb20" * (cast_expression "(code *)PTR_connect_000adb20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }" { (labeled_statement "LAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);" statement_identifier : (expression_statement "(*(code *)PTR_close_000adb18)(iVar4);" (call_expression "(*(code *)PTR_close_000adb18)(iVar4)" (parenthesized_expression "(*(code *)PTR_close_000adb18)" ( (pointer_expression "*(code *)PTR_close_000adb18" * (cast_expression "(code *)PTR_close_000adb18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier ))) ;)) (goto_statement "goto LAB_00079c64;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }" if (parenthesized_expression "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }" { (do_statement "do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);" do (compound_statement "{\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      }" { (expression_statement "piVar9 = (int *)(param_2 + -iVar2);" (assignment_expression "piVar9 = (int *)(param_2 + -iVar2)" identifier = (cast_expression "(int *)(param_2 + -iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + -iVar2)" ( (binary_expression "param_2 + -iVar2" identifier + (unary_expression "-iVar2" - identifier)) )))) ;) (expression_statement "pcVar8 = (char *)(param_1 + iVar2);" (assignment_expression "pcVar8 = (char *)(param_1 + iVar2)" identifier = (cast_expression "(char *)(param_1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar2)" ( (binary_expression "param_1 + iVar2" identifier + identifier) )))) ;) (expression_statement "iVar5 = (*(code *)PTR_write_000adc20)(iVar4);" (assignment_expression "iVar5 = (*(code *)PTR_write_000adc20)(iVar4)" identifier = (call_expression "(*(code *)PTR_write_000adc20)(iVar4)" (parenthesized_expression "(*(code *)PTR_write_000adc20)" ( (pointer_expression "*(code *)PTR_write_000adc20" * (cast_expression "(code *)PTR_write_000adc20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar5 < 1) goto LAB_00079c54;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_00079c54;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 + iVar5;" (assignment_expression "iVar2 = iVar2 + iVar5" identifier = (binary_expression "iVar2 + iVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar2 < (int)param_2)" ( (binary_expression "iVar2 < (int)param_2" identifier < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pcVar8 = (char *)0x1c;" (assignment_expression "pcVar8 = (char *)0x1c" identifier = (cast_expression "(char *)0x1c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);" (assignment_expression "piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1)" identifier = (cast_expression "(int *)(*(code *)PTR_safemalloc_000ad414)(1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000ad414)(1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000ad414)" ( (pointer_expression "*(code *)PTR_safemalloc_000ad414" * (cast_expression "(code *)PTR_safemalloc_000ad414" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "*piVar6 = iVar4;" (assignment_expression "*piVar6 = iVar4" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "piVar6[1] = (int)(piVar6 + 2);" (assignment_expression "piVar6[1] = (int)(piVar6 + 2)" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 2)" ( (binary_expression "piVar6 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = 4;" (assignment_expression "piVar6[3] = 4" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[5] = param_5;" (assignment_expression "piVar6[5] = param_5" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[6] = param_6;" (assignment_expression "piVar6[6] = param_6" (subscript_expression "piVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000ad2b8;" (assignment_expression "puVar1 = PTR_DAT_000ad2b8" identifier = identifier) ;) (if_statement "if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }" { (expression_statement "no_nonblock(iVar4);" (call_expression "no_nonblock(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (do_statement "do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);" do (compound_statement "{\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      }" { (expression_statement "iVar2 = FUN_00079828(piVar6);" (assignment_expression "iVar2 = FUN_00079828(piVar6)" identifier = (call_expression "FUN_00079828(piVar6)" identifier (argument_list "(piVar6)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_safefree_000ad380;" (assignment_expression "puVar1 = PTR_safefree_000ad380" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) ;) (expression_statement "iVar2 = piVar6[4];" (assignment_expression "iVar2 = piVar6[4]" identifier = (subscript_expression "piVar6[4]" identifier [ number_literal ])) ;) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = piVar6[1];" (assignment_expression "*param_3 = piVar6[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "piVar6[1]" identifier [ number_literal ])) ;) (expression_statement "*param_4 = iVar2;" (assignment_expression "*param_4 = iVar2" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(piVar6);" (call_expression "(*(code *)puVar1)(piVar6)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar6)" ( identifier ))) ;) }) (else_clause "else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" else (compound_statement "{\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" { (expression_statement "iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);" (assignment_expression "iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" identifier = (pointer_expression "*(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" * (cast_expression "(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000ad2b8 + -0x1bc0)" ( (binary_expression "PTR_DAT_000ad2b8 + -0x1bc0" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }" { (expression_statement "iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);" (assignment_expression "iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820)" identifier = (call_expression "newtree234(PTR_LAB_000ad2f8 + -0x6820)" identifier (argument_list "(PTR_LAB_000ad2f8 + -0x6820)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6820" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar1 + -0x1bc0) = iVar2;" (assignment_expression "*(int *)(puVar1 + -0x1bc0) = iVar2" (pointer_expression "*(int *)(puVar1 + -0x1bc0)" * (cast_expression "(int *)(puVar1 + -0x1bc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1bc0)" ( (binary_expression "puVar1 + -0x1bc0" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "add234(iVar2,piVar6);" (call_expression "add234(iVar2,piVar6)" identifier (argument_list "(iVar2,piVar6)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)0x1;" (assignment_expression "pcVar8 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);" (assignment_expression "piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8)" identifier = (cast_expression "(int *)(PTR_LAB_000ad2f8 + -0x65c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x65c8)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x65c8" identifier + number_literal) )))) ;) (expression_statement "uxsel_set(iVar4);" (call_expression "uxsel_set(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "piVar10 = piVar6;" (assignment_expression "piVar10 = piVar6" identifier = identifier) ;) }))) }))) (if_statement "if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar12)" ( (binary_expression "local_2c == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar10;\n  }" { (return_statement "return piVar10;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" statement_identifier : (expression_statement "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" (call_expression "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c)" (parenthesized_expression "(*(code *)PTR_perror_000adc88)" ( (pointer_expression "*(code *)PTR_perror_000adc88" * (cast_expression "(code *)PTR_perror_000adc88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7d5c)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7d5c" identifier + number_literal) ))) ;)) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "puVar12 = PTR_exit_000adc48;" (assignment_expression "puVar12 = PTR_exit_000adc48" identifier = identifier) ;) (expression_statement "(*(code *)PTR_exit_000adc48)(1);" (call_expression "(*(code *)PTR_exit_000adc48)(1)" (parenthesized_expression "(*(code *)PTR_exit_000adc48)" ( (pointer_expression "*(code *)PTR_exit_000adc48" * (cast_expression "(code *)PTR_exit_000adc48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }" { (expression_statement "pcVar11 = pcVar8 + (int)piVar9;" (assignment_expression "pcVar11 = pcVar8 + (int)piVar9" identifier = (binary_expression "pcVar8 + (int)piVar9" identifier + (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);" do (compound_statement "{\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    }" { (while_statement "while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }" { (expression_statement "uVar3 = (uint)*pcVar8;" (assignment_expression "uVar3 = (uint)*pcVar8" identifier = (binary_expression "(uint)*pcVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (if_statement "if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;" if (parenthesized_expression "(((uVar3 & 0x60) == 0) && (uVar3 != 10))" ( (binary_expression "((uVar3 & 0x60) == 0) && (uVar3 != 10)" (parenthesized_expression "((uVar3 & 0x60) == 0)" ( (binary_expression "(uVar3 & 0x60) == 0" (parenthesized_expression "(uVar3 & 0x60)" ( (binary_expression "uVar3 & 0x60" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar3 != 10)" ( (binary_expression "uVar3 != 10" identifier != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);" (call_expression "(**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0x33dbc))" ( (pointer_expression "**(code **)(puVar12 + 0x33dbc)" * (pointer_expression "*(code **)(puVar12 + 0x33dbc)" * (cast_expression "(code **)(puVar12 + 0x33dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x33dbc)" ( (binary_expression "puVar12 + 0x33dbc" identifier + number_literal) ))))) )) (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;) (if_statement "if (pcVar11 == pcVar8) goto LAB_00079e4c;" if (parenthesized_expression "(pcVar11 == pcVar8)" ( (binary_expression "pcVar11 == pcVar8" identifier == identifier) )) (goto_statement "goto LAB_00079e4c;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(pcVar11 != pcVar8)" ( (binary_expression "pcVar11 != pcVar8" identifier != identifier) )) ;) })) (labeled_statement "LAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);" statement_identifier : comment comment (expression_statement "piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);" (assignment_expression "piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7)" identifier = (cast_expression "(int *)(**(code **)(puVar12 + 0x33f24))(uVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x33f24))(uVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0x33f24))" ( (pointer_expression "**(code **)(puVar12 + 0x33f24)" * (pointer_expression "*(code **)(puVar12 + 0x33f24)" * (cast_expression "(code **)(puVar12 + 0x33f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x33f24)" ( (binary_expression "puVar12 + 0x33f24" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))))) ;)) (return_statement "return piVar9;" return identifier ;) })))
(translation_unit "agent_pending_query *\nagent_query(void *in,int inlen,void **out,int *outlen,_func_void_void_ptr_void_ptr_int *callback,\n           void *callback_ctx)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int fd;\n  int iVar5;\n  agent_pending_query *conn;\n  agent_pending_query *paVar6;\n  tree234 *t;\n  undefined4 uVar7;\n  sockaddr_un *psVar8;\n  void **callback_00;\n  sockaddr_un *psVar9;\n  undefined *puVar10;\n  sockaddr_un addr;\n  \n  puVar10 = PTR___stack_chk_guard_000adcd4;\n  iVar2 = *(int *)PTR___stack_chk_guard_000adcd4;\n  psVar8 = (sockaddr_un *)inlen;\n  callback_00 = out;\n  iVar3 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)) {\nLAB_00079c64:\n    paVar6 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    callback_00 = (void **)0x0;\n    psVar8 = (sockaddr_un *)0x2;\n    fd = (*(code *)PTR_socket_000adb5c)(1);\n    if (fd < 0) goto LAB_00079da4;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);\n    callback_00 = (void **)0x6e;\n    psVar8 = &addr;\n    iVar3 = (*(code *)PTR_connect_000adb20)(fd);\n    if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }\n    iVar3 = 0;\n    if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }\n    psVar8 = (sockaddr_un *)0x1c;\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);\n    conn->fd = fd;\n    conn->retbuf = conn->sizebuf;\n    conn->retlen = 0;\n    conn->retsize = 4;\n    conn->callback = callback;\n    conn->callback_ctx = callback_ctx;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }\n  }\n  if (iVar2 == *(int *)puVar10) {\n    return paVar6;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar10 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (callback_00 != (void **)0x0) {\n    psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));\n    do {\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    } while (psVar9 != psVar8);\n  }\nLAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7);\n  return paVar6;\n}\n\n" (function_definition "agent_pending_query *\nagent_query(void *in,int inlen,void **out,int *outlen,_func_void_void_ptr_void_ptr_int *callback,\n           void *callback_ctx)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int fd;\n  int iVar5;\n  agent_pending_query *conn;\n  agent_pending_query *paVar6;\n  tree234 *t;\n  undefined4 uVar7;\n  sockaddr_un *psVar8;\n  void **callback_00;\n  sockaddr_un *psVar9;\n  undefined *puVar10;\n  sockaddr_un addr;\n  \n  puVar10 = PTR___stack_chk_guard_000adcd4;\n  iVar2 = *(int *)PTR___stack_chk_guard_000adcd4;\n  psVar8 = (sockaddr_un *)inlen;\n  callback_00 = out;\n  iVar3 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)) {\nLAB_00079c64:\n    paVar6 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    callback_00 = (void **)0x0;\n    psVar8 = (sockaddr_un *)0x2;\n    fd = (*(code *)PTR_socket_000adb5c)(1);\n    if (fd < 0) goto LAB_00079da4;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);\n    callback_00 = (void **)0x6e;\n    psVar8 = &addr;\n    iVar3 = (*(code *)PTR_connect_000adb20)(fd);\n    if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }\n    iVar3 = 0;\n    if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }\n    psVar8 = (sockaddr_un *)0x1c;\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);\n    conn->fd = fd;\n    conn->retbuf = conn->sizebuf;\n    conn->retlen = 0;\n    conn->retsize = 4;\n    conn->callback = callback;\n    conn->callback_ctx = callback_ctx;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }\n  }\n  if (iVar2 == *(int *)puVar10) {\n    return paVar6;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar10 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (callback_00 != (void **)0x0) {\n    psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));\n    do {\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    } while (psVar9 != psVar8);\n  }\nLAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7);\n  return paVar6;\n}" type_identifier (pointer_declarator "*\nagent_query(void *in,int inlen,void **out,int *outlen,_func_void_void_ptr_void_ptr_int *callback,\n           void *callback_ctx)" * (function_declarator "agent_query(void *in,int inlen,void **out,int *outlen,_func_void_void_ptr_void_ptr_int *callback,\n           void *callback_ctx)" identifier (parameter_list "(void *in,int inlen,void **out,int *outlen,_func_void_void_ptr_void_ptr_int *callback,\n           void *callback_ctx)" ( (parameter_declaration "void *in" primitive_type (pointer_declarator "*in" * identifier)) , (parameter_declaration "int inlen" primitive_type identifier) , (parameter_declaration "void **out" primitive_type (pointer_declarator "**out" * (pointer_declarator "*out" * identifier))) , (parameter_declaration "int *outlen" primitive_type (pointer_declarator "*outlen" * identifier)) , (parameter_declaration "_func_void_void_ptr_void_ptr_int *callback" type_identifier (pointer_declarator "*callback" * identifier)) , (parameter_declaration "void *callback_ctx" primitive_type (pointer_declarator "*callback_ctx" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  int fd;\n  int iVar5;\n  agent_pending_query *conn;\n  agent_pending_query *paVar6;\n  tree234 *t;\n  undefined4 uVar7;\n  sockaddr_un *psVar8;\n  void **callback_00;\n  sockaddr_un *psVar9;\n  undefined *puVar10;\n  sockaddr_un addr;\n  \n  puVar10 = PTR___stack_chk_guard_000adcd4;\n  iVar2 = *(int *)PTR___stack_chk_guard_000adcd4;\n  psVar8 = (sockaddr_un *)inlen;\n  callback_00 = out;\n  iVar3 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)) {\nLAB_00079c64:\n    paVar6 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    callback_00 = (void **)0x0;\n    psVar8 = (sockaddr_un *)0x2;\n    fd = (*(code *)PTR_socket_000adb5c)(1);\n    if (fd < 0) goto LAB_00079da4;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);\n    callback_00 = (void **)0x6e;\n    psVar8 = &addr;\n    iVar3 = (*(code *)PTR_connect_000adb20)(fd);\n    if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }\n    iVar3 = 0;\n    if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }\n    psVar8 = (sockaddr_un *)0x1c;\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);\n    conn->fd = fd;\n    conn->retbuf = conn->sizebuf;\n    conn->retlen = 0;\n    conn->retsize = 4;\n    conn->callback = callback;\n    conn->callback_ctx = callback_ctx;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }\n  }\n  if (iVar2 == *(int *)puVar10) {\n    return paVar6;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar10 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (callback_00 != (void **)0x0) {\n    psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));\n    do {\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    } while (psVar9 != psVar8);\n  }\nLAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7);\n  return paVar6;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int fd;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "agent_pending_query *conn;" type_identifier (pointer_declarator "*conn" * identifier) ;) (declaration "agent_pending_query *paVar6;" type_identifier (pointer_declarator "*paVar6" * identifier) ;) (declaration "tree234 *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "sockaddr_un *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "void **callback_00;" primitive_type (pointer_declarator "**callback_00" * (pointer_declarator "*callback_00" * identifier)) ;) (declaration "sockaddr_un *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "sockaddr_un addr;" type_identifier identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar10 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "iVar2 = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "psVar8 = (sockaddr_un *)inlen;" (assignment_expression "psVar8 = (sockaddr_un *)inlen" identifier = (cast_expression "(sockaddr_un *)inlen" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "callback_00 = out;" (assignment_expression "callback_00 = out" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" identifier = (call_expression "(*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" (parenthesized_expression "(*(code *)PTR_getenv_000adc64)" ( (pointer_expression "*(code *)PTR_getenv_000adc64" * (cast_expression "(code *)PTR_getenv_000adc64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7d80)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7d80" identifier + number_literal) )))) ;) (if_statement "if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)) {\nLAB_00079c64:\n    paVar6 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    callback_00 = (void **)0x0;\n    psVar8 = (sockaddr_un *)0x2;\n    fd = (*(code *)PTR_socket_000adb5c)(1);\n    if (fd < 0) goto LAB_00079da4;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);\n    callback_00 = (void **)0x6e;\n    psVar8 = &addr;\n    iVar3 = (*(code *)PTR_connect_000adb20)(fd);\n    if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }\n    iVar3 = 0;\n    if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }\n    psVar8 = (sockaddr_un *)0x1c;\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);\n    conn->fd = fd;\n    conn->retbuf = conn->sizebuf;\n    conn->retlen = 0;\n    conn->retsize = 4;\n    conn->callback = callback;\n    conn->callback_ctx = callback_ctx;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }\n  }" if (parenthesized_expression "((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4))" ( (binary_expression "(iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4)" ( (comma_expression "uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3), 0x6b < uVar4" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000adc28)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "0x6b < uVar4" number_literal < identifier)) ))) )) (compound_statement "{\nLAB_00079c64:\n    paVar6 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }" { (labeled_statement "LAB_00079c64:\n    paVar6 = (agent_pending_query *)0x0;" statement_identifier : (expression_statement "paVar6 = (agent_pending_query *)0x0;" (assignment_expression "paVar6 = (agent_pending_query *)0x0" identifier = (cast_expression "(agent_pending_query *)0x0" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*out = (void *)0x0;" (assignment_expression "*out = (void *)0x0" (pointer_expression "*out" * identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*outlen = 0;" (assignment_expression "*outlen = 0" (pointer_expression "*outlen" * identifier) = number_literal) ;) }) (else_clause "else {\n    callback_00 = (void **)0x0;\n    psVar8 = (sockaddr_un *)0x2;\n    fd = (*(code *)PTR_socket_000adb5c)(1);\n    if (fd < 0) goto LAB_00079da4;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);\n    callback_00 = (void **)0x6e;\n    psVar8 = &addr;\n    iVar3 = (*(code *)PTR_connect_000adb20)(fd);\n    if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }\n    iVar3 = 0;\n    if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }\n    psVar8 = (sockaddr_un *)0x1c;\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);\n    conn->fd = fd;\n    conn->retbuf = conn->sizebuf;\n    conn->retlen = 0;\n    conn->retsize = 4;\n    conn->callback = callback;\n    conn->callback_ctx = callback_ctx;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }\n  }" else (compound_statement "{\n    callback_00 = (void **)0x0;\n    psVar8 = (sockaddr_un *)0x2;\n    fd = (*(code *)PTR_socket_000adb5c)(1);\n    if (fd < 0) goto LAB_00079da4;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);\n    callback_00 = (void **)0x6e;\n    psVar8 = &addr;\n    iVar3 = (*(code *)PTR_connect_000adb20)(fd);\n    if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }\n    iVar3 = 0;\n    if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }\n    psVar8 = (sockaddr_un *)0x1c;\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);\n    conn->fd = fd;\n    conn->retbuf = conn->sizebuf;\n    conn->retlen = 0;\n    conn->retsize = 4;\n    conn->callback = callback;\n    conn->callback_ctx = callback_ctx;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }\n  }" { (expression_statement "callback_00 = (void **)0x0;" (assignment_expression "callback_00 = (void **)0x0" identifier = (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "psVar8 = (sockaddr_un *)0x2;" (assignment_expression "psVar8 = (sockaddr_un *)0x2" identifier = (cast_expression "(sockaddr_un *)0x2" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "fd = (*(code *)PTR_socket_000adb5c)(1);" (assignment_expression "fd = (*(code *)PTR_socket_000adb5c)(1)" identifier = (call_expression "(*(code *)PTR_socket_000adb5c)(1)" (parenthesized_expression "(*(code *)PTR_socket_000adb5c)" ( (pointer_expression "*(code *)PTR_socket_000adb5c" * (cast_expression "(code *)PTR_socket_000adb5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal )))) ;) (if_statement "if (fd < 0) goto LAB_00079da4;" if (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) (goto_statement "goto LAB_00079da4;" goto statement_identifier ;)) (expression_statement "cloexec(fd);" (call_expression "cloexec(fd)" identifier (argument_list "(fd)" ( identifier ))) ;) (expression_statement "addr.sun_family = 1;" (assignment_expression "addr.sun_family = 1" (field_expression "addr.sun_family" identifier . field_identifier) = number_literal) ;) (expression_statement "(*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000adbb8)(addr.sun_path,iVar3,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000adbb8)" ( (pointer_expression "*(code *)PTR___strcpy_chk_000adbb8" * (cast_expression "(code *)PTR___strcpy_chk_000adbb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(addr.sun_path,iVar3,0x6c)" ( (field_expression "addr.sun_path" identifier . field_identifier) , identifier , number_literal ))) ;) (expression_statement "callback_00 = (void **)0x6e;" (assignment_expression "callback_00 = (void **)0x6e" identifier = (cast_expression "(void **)0x6e" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "psVar8 = &addr;" (assignment_expression "psVar8 = &addr" identifier = (pointer_expression "&addr" & identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_connect_000adb20)(fd);" (assignment_expression "iVar3 = (*(code *)PTR_connect_000adb20)(fd)" identifier = (call_expression "(*(code *)PTR_connect_000adb20)(fd)" (parenthesized_expression "(*(code *)PTR_connect_000adb20)" ( (pointer_expression "*(code *)PTR_connect_000adb20" * (cast_expression "(code *)PTR_connect_000adb20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);\n      goto LAB_00079c64;\n    }" { (labeled_statement "LAB_00079c54:\n      (*(code *)PTR_close_000adb18)(fd);" statement_identifier : (expression_statement "(*(code *)PTR_close_000adb18)(fd);" (call_expression "(*(code *)PTR_close_000adb18)(fd)" (parenthesized_expression "(*(code *)PTR_close_000adb18)" ( (pointer_expression "*(code *)PTR_close_000adb18" * (cast_expression "(code *)PTR_close_000adb18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd)" ( identifier ))) ;)) (goto_statement "goto LAB_00079c64;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < inlen) {\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }" if (parenthesized_expression "(0 < inlen)" ( (binary_expression "0 < inlen" number_literal < identifier) )) (compound_statement "{\n      do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);\n    }" { (do_statement "do {\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      } while (iVar3 < inlen);" do (compound_statement "{\n        callback_00 = (void **)(inlen - iVar3);\n        psVar8 = (sockaddr_un *)((int)in + iVar3);\n        iVar5 = (*(code *)PTR_write_000adc20)(fd);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar3 = iVar3 + iVar5;\n      }" { (expression_statement "callback_00 = (void **)(inlen - iVar3);" (assignment_expression "callback_00 = (void **)(inlen - iVar3)" identifier = (cast_expression "(void **)(inlen - iVar3)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(inlen - iVar3)" ( (binary_expression "inlen - iVar3" identifier - identifier) )))) ;) (expression_statement "psVar8 = (sockaddr_un *)((int)in + iVar3);" (assignment_expression "psVar8 = (sockaddr_un *)((int)in + iVar3)" identifier = (cast_expression "(sockaddr_un *)((int)in + iVar3)" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in + iVar3)" ( (binary_expression "(int)in + iVar3" (cast_expression "(int)in" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar5 = (*(code *)PTR_write_000adc20)(fd);" (assignment_expression "iVar5 = (*(code *)PTR_write_000adc20)(fd)" identifier = (call_expression "(*(code *)PTR_write_000adc20)(fd)" (parenthesized_expression "(*(code *)PTR_write_000adc20)" ( (pointer_expression "*(code *)PTR_write_000adc20" * (cast_expression "(code *)PTR_write_000adc20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd)" ( identifier )))) ;) (if_statement "if (iVar5 < 1) goto LAB_00079c54;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_00079c54;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + iVar5;" (assignment_expression "iVar3 = iVar3 + iVar5" identifier = (binary_expression "iVar3 + iVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar3 < inlen)" ( (binary_expression "iVar3 < inlen" identifier < identifier) )) ;) })) (expression_statement "psVar8 = (sockaddr_un *)0x1c;" (assignment_expression "psVar8 = (sockaddr_un *)0x1c" identifier = (cast_expression "(sockaddr_un *)0x1c" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1);" (assignment_expression "conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1)" identifier = (cast_expression "(agent_pending_query *)(*(code *)PTR_safemalloc_000ad414)(1)" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000ad414)(1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000ad414)" ( (pointer_expression "*(code *)PTR_safemalloc_000ad414" * (cast_expression "(code *)PTR_safemalloc_000ad414" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "conn->fd = fd;" (assignment_expression "conn->fd = fd" (field_expression "conn->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "conn->retbuf = conn->sizebuf;" (assignment_expression "conn->retbuf = conn->sizebuf" (field_expression "conn->retbuf" identifier -> field_identifier) = (field_expression "conn->sizebuf" identifier -> field_identifier)) ;) (expression_statement "conn->retlen = 0;" (assignment_expression "conn->retlen = 0" (field_expression "conn->retlen" identifier -> field_identifier) = number_literal) ;) (expression_statement "conn->retsize = 4;" (assignment_expression "conn->retsize = 4" (field_expression "conn->retsize" identifier -> field_identifier) = number_literal) ;) (expression_statement "conn->callback = callback;" (assignment_expression "conn->callback = callback" (field_expression "conn->callback" identifier -> field_identifier) = identifier) ;) (expression_statement "conn->callback_ctx = callback_ctx;" (assignment_expression "conn->callback_ctx = callback_ctx" (field_expression "conn->callback_ctx" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000ad2b8;" (assignment_expression "puVar1 = PTR_DAT_000ad2b8" identifier = identifier) ;) (if_statement "if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }" if (parenthesized_expression "(callback == (_func_void_void_ptr_void_ptr_int *)0x0)" ( (binary_expression "callback == (_func_void_void_ptr_void_ptr_int *)0x0" identifier == (cast_expression "(_func_void_void_ptr_void_ptr_int *)0x0" ( (type_descriptor "_func_void_void_ptr_void_ptr_int *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      no_nonblock(fd);\n      do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);\n      iVar3 = conn->retlen;\n      paVar6 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar3;\n      (*(code *)puVar1)(conn);\n    }" { (expression_statement "no_nonblock(fd);" (call_expression "no_nonblock(fd)" identifier (argument_list "(fd)" ( identifier ))) ;) (do_statement "do {\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar3 == 0);" do (compound_statement "{\n        iVar3 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000ad380;\n      }" { (expression_statement "iVar3 = agent_try_read(conn);" (assignment_expression "iVar3 = agent_try_read(conn)" identifier = (call_expression "agent_try_read(conn)" identifier (argument_list "(conn)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_safefree_000ad380;" (assignment_expression "puVar1 = PTR_safefree_000ad380" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (expression_statement "iVar3 = conn->retlen;" (assignment_expression "iVar3 = conn->retlen" identifier = (field_expression "conn->retlen" identifier -> field_identifier)) ;) (expression_statement "paVar6 = (agent_pending_query *)0x0;" (assignment_expression "paVar6 = (agent_pending_query *)0x0" identifier = (cast_expression "(agent_pending_query *)0x0" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*out = conn->retbuf;" (assignment_expression "*out = conn->retbuf" (pointer_expression "*out" * identifier) = (field_expression "conn->retbuf" identifier -> field_identifier)) ;) (expression_statement "*outlen = iVar3;" (assignment_expression "*outlen = iVar3" (pointer_expression "*outlen" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(conn);" (call_expression "(*(code *)puVar1)(conn)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(conn)" ( identifier ))) ;) }) (else_clause "else {\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }" else (compound_statement "{\n      t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }\n      add234(t,conn);\n      psVar8 = (sockaddr_un *)0x1;\n      callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(fd,1,(uxsel_callback_fn)callback_00);\n      paVar6 = conn;\n    }" { (expression_statement "t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0);" (assignment_expression "t = *(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0)" identifier = (pointer_expression "*(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0)" * (cast_expression "(tree234 **)(PTR_DAT_000ad2b8 + -0x1bc0)" ( (type_descriptor "tree234 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000ad2b8 + -0x1bc0)" ( (binary_expression "PTR_DAT_000ad2b8 + -0x1bc0" identifier + number_literal) ))))) ;) (if_statement "if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }" if (parenthesized_expression "(t == (tree234 *)0x0)" ( (binary_expression "t == (tree234 *)0x0" identifier == (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));\n        *(tree234 **)(puVar1 + -0x1bc0) = t;\n      }" { (expression_statement "t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820));" (assignment_expression "t = newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820))" identifier = (call_expression "newtree234((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820))" identifier (argument_list "((cmpfn234)(PTR_LAB_000ad2f8 + -0x6820))" ( (call_expression "(cmpfn234)(PTR_LAB_000ad2f8 + -0x6820)" (parenthesized_expression "(cmpfn234)" ( identifier )) (argument_list "(PTR_LAB_000ad2f8 + -0x6820)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6820" identifier + number_literal) ))) )))) ;) (expression_statement "*(tree234 **)(puVar1 + -0x1bc0) = t;" (assignment_expression "*(tree234 **)(puVar1 + -0x1bc0) = t" (pointer_expression "*(tree234 **)(puVar1 + -0x1bc0)" * (cast_expression "(tree234 **)(puVar1 + -0x1bc0)" ( (type_descriptor "tree234 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x1bc0)" ( (binary_expression "puVar1 + -0x1bc0" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "add234(t,conn);" (call_expression "add234(t,conn)" identifier (argument_list "(t,conn)" ( identifier , identifier ))) ;) (expression_statement "psVar8 = (sockaddr_un *)0x1;" (assignment_expression "psVar8 = (sockaddr_un *)0x1" identifier = (cast_expression "(sockaddr_un *)0x1" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8);" (assignment_expression "callback_00 = (void **)(PTR_LAB_000ad2f8 + -0x65c8)" identifier = (cast_expression "(void **)(PTR_LAB_000ad2f8 + -0x65c8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x65c8)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x65c8" identifier + number_literal) )))) ;) (expression_statement "uxsel_set(fd,1,(uxsel_callback_fn)callback_00);" (call_expression "uxsel_set(fd,1,(uxsel_callback_fn)callback_00)" identifier (argument_list "(fd,1,(uxsel_callback_fn)callback_00)" ( identifier , number_literal , (cast_expression "(uxsel_callback_fn)callback_00" ( (type_descriptor "uxsel_callback_fn" type_identifier) ) identifier) ))) ;) (expression_statement "paVar6 = conn;" (assignment_expression "paVar6 = conn" identifier = identifier) ;) }))) }))) (if_statement "if (iVar2 == *(int *)puVar10) {\n    return paVar6;\n  }" if (parenthesized_expression "(iVar2 == *(int *)puVar10)" ( (binary_expression "iVar2 == *(int *)puVar10" identifier == (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return paVar6;\n  }" { (return_statement "return paVar6;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" statement_identifier : (expression_statement "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" (call_expression "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c)" (parenthesized_expression "(*(code *)PTR_perror_000adc88)" ( (pointer_expression "*(code *)PTR_perror_000adc88" * (cast_expression "(code *)PTR_perror_000adc88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7d5c)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7d5c" identifier + number_literal) ))) ;)) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_exit_000adc48;" (assignment_expression "puVar10 = PTR_exit_000adc48" identifier = identifier) ;) (expression_statement "(*(code *)PTR_exit_000adc48)(1);" (call_expression "(*(code *)PTR_exit_000adc48)(1)" (parenthesized_expression "(*(code *)PTR_exit_000adc48)" ( (pointer_expression "*(code *)PTR_exit_000adc48" * (cast_expression "(code *)PTR_exit_000adc48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (callback_00 != (void **)0x0) {\n    psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));\n    do {\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    } while (psVar9 != psVar8);\n  }" if (parenthesized_expression "(callback_00 != (void **)0x0)" ( (binary_expression "callback_00 != (void **)0x0" identifier != (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));\n    do {\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    } while (psVar9 != psVar8);\n  }" { (expression_statement "psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2));" (assignment_expression "psVar9 = (sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2))" identifier = (cast_expression "(sockaddr_un *)((int)callback_00 + (int)(psVar8->sun_path + -2))" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)callback_00 + (int)(psVar8->sun_path + -2))" ( (binary_expression "(int)callback_00 + (int)(psVar8->sun_path + -2)" (cast_expression "(int)callback_00" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(psVar8->sun_path + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar8->sun_path + -2)" ( (binary_expression "psVar8->sun_path + -2" (field_expression "psVar8->sun_path" identifier -> field_identifier) + number_literal) )))) )))) ;) (do_statement "do {\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    } while (psVar9 != psVar8);" do (compound_statement "{\n      while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }\n    }" { (while_statement "while( true ) {\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar4 = (uint)*(char *)&psVar8->sun_family;\n        psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);\n        if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;\n        (**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);\n        if (psVar9 == psVar8) goto LAB_00079e4c;\n      }" { (expression_statement "uVar4 = (uint)*(char *)&psVar8->sun_family;" (assignment_expression "uVar4 = (uint)*(char *)&psVar8->sun_family" identifier = (binary_expression "(uint)*(char *)&psVar8->sun_family" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)&psVar8->sun_family" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar8->sun_family" & (field_expression "psVar8->sun_family" identifier -> field_identifier))))) ;) (expression_statement "psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1);" (assignment_expression "psVar8 = (sockaddr_un *)((int)&psVar8->sun_family + 1)" identifier = (cast_expression "(sockaddr_un *)((int)&psVar8->sun_family + 1)" ( (type_descriptor "sockaddr_un *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar8->sun_family + 1)" ( (binary_expression "(int)&psVar8->sun_family + 1" (cast_expression "(int)&psVar8->sun_family" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar8->sun_family" & (field_expression "psVar8->sun_family" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (((uVar4 & 0x60) == 0) && (uVar4 != 10)) break;" if (parenthesized_expression "(((uVar4 & 0x60) == 0) && (uVar4 != 10))" ( (binary_expression "((uVar4 & 0x60) == 0) && (uVar4 != 10)" (parenthesized_expression "((uVar4 & 0x60) == 0)" ( (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" ( (binary_expression "uVar4 & 0x60" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7);" (call_expression "(**(code **)(puVar10 + 0x33dbc))(uVar4,uVar7)" (parenthesized_expression "(**(code **)(puVar10 + 0x33dbc))" ( (pointer_expression "**(code **)(puVar10 + 0x33dbc)" * (pointer_expression "*(code **)(puVar10 + 0x33dbc)" * (cast_expression "(code **)(puVar10 + 0x33dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x33dbc)" ( (binary_expression "puVar10 + 0x33dbc" identifier + number_literal) ))))) )) (argument_list "(uVar4,uVar7)" ( identifier , identifier ))) ;) (if_statement "if (psVar9 == psVar8) goto LAB_00079e4c;" if (parenthesized_expression "(psVar9 == psVar8)" ( (binary_expression "psVar9 == psVar8" identifier == identifier) )) (goto_statement "goto LAB_00079e4c;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(psVar9 != psVar8)" ( (binary_expression "psVar9 != psVar8" identifier != identifier) )) ;) })) (labeled_statement "LAB_00079e4c:\n                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7);" statement_identifier : comment comment (expression_statement "paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7);" (assignment_expression "paVar6 = (agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7)" identifier = (cast_expression "(agent_pending_query *)(**(code **)(puVar10 + 0x33f24))(uVar7)" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar10 + 0x33f24))(uVar7)" (parenthesized_expression "(**(code **)(puVar10 + 0x33f24))" ( (pointer_expression "**(code **)(puVar10 + 0x33f24)" * (pointer_expression "*(code **)(puVar10 + 0x33f24)" * (cast_expression "(code **)(puVar10 + 0x33f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x33f24)" ( (binary_expression "puVar10 + 0x33f24" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))))) ;)) (return_statement "return paVar6;" return identifier ;) })))
(translation_unit "int * agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}\n\n" (function_definition "int * agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}" primitive_type (pointer_declarator "* agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" * (function_declarator "agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char local_9c [112];" primitive_type (array_declarator "local_9c [112]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar12 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (expression_statement "piVar9 = param_3;" (assignment_expression "piVar9 = param_3" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);" (assignment_expression "iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" identifier = (call_expression "(*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" (parenthesized_expression "(*(code *)PTR_getenv_000adc64)" ( (pointer_expression "*(code *)PTR_getenv_000adc64" * (cast_expression "(code *)PTR_getenv_000adc64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7d80)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7d80" identifier + number_literal) )))) ;) (if_statement "if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" if (parenthesized_expression "((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3))" ( (binary_expression "(iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)" ( (comma_expression "uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3" (assignment_expression "uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(iVar2)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "0x6b < uVar3" number_literal < identifier)) ))) )) (compound_statement "{\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }" { (labeled_statement "LAB_00079c64:\n    piVar10 = (int *)0x0;" statement_identifier : (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) }) (else_clause "else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" else (compound_statement "{\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" { (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = (char *)0x2;" (assignment_expression "pcVar8 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = (*(code *)PTR_socket_000adb5c)(1);" (assignment_expression "iVar4 = (*(code *)PTR_socket_000adb5c)(1)" identifier = (call_expression "(*(code *)PTR_socket_000adb5c)(1)" (parenthesized_expression "(*(code *)PTR_socket_000adb5c)" ( (pointer_expression "*(code *)PTR_socket_000adb5c" * (cast_expression "(code *)PTR_socket_000adb5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00079da4;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00079da4;" goto statement_identifier ;)) (expression_statement "cloexec(iVar4);" (call_expression "cloexec(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "local_9c[0] = '\0';" (assignment_expression "local_9c[0] = '\0'" (subscript_expression "local_9c[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_9c[1] = '\x01';" (assignment_expression "local_9c[1] = '\x01'" (subscript_expression "local_9c[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000adbb8)" ( (pointer_expression "*(code *)PTR___strcpy_chk_000adbb8" * (cast_expression "(code *)PTR___strcpy_chk_000adbb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_9c + 2,iVar2,0x6c)" ( (binary_expression "local_9c + 2" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "piVar9 = (int *)0x6e;" (assignment_expression "piVar9 = (int *)0x6e" identifier = (cast_expression "(int *)0x6e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = local_9c;" (assignment_expression "pcVar8 = local_9c" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);" (assignment_expression "iVar2 = (*(code *)PTR_connect_000adb20)(iVar4)" identifier = (call_expression "(*(code *)PTR_connect_000adb20)(iVar4)" (parenthesized_expression "(*(code *)PTR_connect_000adb20)" ( (pointer_expression "*(code *)PTR_connect_000adb20" * (cast_expression "(code *)PTR_connect_000adb20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }" { (labeled_statement "LAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);" statement_identifier : (expression_statement "(*(code *)PTR_close_000adb18)(iVar4);" (call_expression "(*(code *)PTR_close_000adb18)(iVar4)" (parenthesized_expression "(*(code *)PTR_close_000adb18)" ( (pointer_expression "*(code *)PTR_close_000adb18" * (cast_expression "(code *)PTR_close_000adb18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier ))) ;)) (goto_statement "goto LAB_00079c64;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }" if (parenthesized_expression "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }" { (do_statement "do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);" do (compound_statement "{\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      }" { (expression_statement "piVar9 = (int *)(param_2 + -iVar2);" (assignment_expression "piVar9 = (int *)(param_2 + -iVar2)" identifier = (cast_expression "(int *)(param_2 + -iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + -iVar2)" ( (binary_expression "param_2 + -iVar2" identifier + (unary_expression "-iVar2" - identifier)) )))) ;) (expression_statement "pcVar8 = (char *)(param_1 + iVar2);" (assignment_expression "pcVar8 = (char *)(param_1 + iVar2)" identifier = (cast_expression "(char *)(param_1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar2)" ( (binary_expression "param_1 + iVar2" identifier + identifier) )))) ;) (expression_statement "iVar5 = (*(code *)PTR_write_000adc20)(iVar4);" (assignment_expression "iVar5 = (*(code *)PTR_write_000adc20)(iVar4)" identifier = (call_expression "(*(code *)PTR_write_000adc20)(iVar4)" (parenthesized_expression "(*(code *)PTR_write_000adc20)" ( (pointer_expression "*(code *)PTR_write_000adc20" * (cast_expression "(code *)PTR_write_000adc20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar5 < 1) goto LAB_00079c54;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_00079c54;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 + iVar5;" (assignment_expression "iVar2 = iVar2 + iVar5" identifier = (binary_expression "iVar2 + iVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar2 < (int)param_2)" ( (binary_expression "iVar2 < (int)param_2" identifier < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pcVar8 = (char *)0x1c;" (assignment_expression "pcVar8 = (char *)0x1c" identifier = (cast_expression "(char *)0x1c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);" (assignment_expression "piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1)" identifier = (cast_expression "(int *)(*(code *)PTR_safemalloc_000ad414)(1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000ad414)(1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000ad414)" ( (pointer_expression "*(code *)PTR_safemalloc_000ad414" * (cast_expression "(code *)PTR_safemalloc_000ad414" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "*piVar6 = iVar4;" (assignment_expression "*piVar6 = iVar4" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "piVar6[1] = (int)(piVar6 + 2);" (assignment_expression "piVar6[1] = (int)(piVar6 + 2)" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 2)" ( (binary_expression "piVar6 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = 4;" (assignment_expression "piVar6[3] = 4" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[5] = param_5;" (assignment_expression "piVar6[5] = param_5" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[6] = param_6;" (assignment_expression "piVar6[6] = param_6" (subscript_expression "piVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000ad2b8;" (assignment_expression "puVar1 = PTR_DAT_000ad2b8" identifier = identifier) ;) (if_statement "if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }" { (expression_statement "no_nonblock(iVar4);" (call_expression "no_nonblock(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (do_statement "do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);" do (compound_statement "{\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      }" { (expression_statement "iVar2 = FUN_00079828(piVar6);" (assignment_expression "iVar2 = FUN_00079828(piVar6)" identifier = (call_expression "FUN_00079828(piVar6)" identifier (argument_list "(piVar6)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_safefree_000ad380;" (assignment_expression "puVar1 = PTR_safefree_000ad380" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) ;) (expression_statement "iVar2 = piVar6[4];" (assignment_expression "iVar2 = piVar6[4]" identifier = (subscript_expression "piVar6[4]" identifier [ number_literal ])) ;) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = piVar6[1];" (assignment_expression "*param_3 = piVar6[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "piVar6[1]" identifier [ number_literal ])) ;) (expression_statement "*param_4 = iVar2;" (assignment_expression "*param_4 = iVar2" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(piVar6);" (call_expression "(*(code *)puVar1)(piVar6)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar6)" ( identifier ))) ;) }) (else_clause "else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" else (compound_statement "{\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" { (expression_statement "iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);" (assignment_expression "iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" identifier = (pointer_expression "*(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" * (cast_expression "(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000ad2b8 + -0x1bc0)" ( (binary_expression "PTR_DAT_000ad2b8 + -0x1bc0" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }" { (expression_statement "iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);" (assignment_expression "iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820)" identifier = (call_expression "newtree234(PTR_LAB_000ad2f8 + -0x6820)" identifier (argument_list "(PTR_LAB_000ad2f8 + -0x6820)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6820" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar1 + -0x1bc0) = iVar2;" (assignment_expression "*(int *)(puVar1 + -0x1bc0) = iVar2" (pointer_expression "*(int *)(puVar1 + -0x1bc0)" * (cast_expression "(int *)(puVar1 + -0x1bc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1bc0)" ( (binary_expression "puVar1 + -0x1bc0" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "add234(iVar2,piVar6);" (call_expression "add234(iVar2,piVar6)" identifier (argument_list "(iVar2,piVar6)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)0x1;" (assignment_expression "pcVar8 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);" (assignment_expression "piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8)" identifier = (cast_expression "(int *)(PTR_LAB_000ad2f8 + -0x65c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x65c8)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x65c8" identifier + number_literal) )))) ;) (expression_statement "uxsel_set(iVar4);" (call_expression "uxsel_set(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "piVar10 = piVar6;" (assignment_expression "piVar10 = piVar6" identifier = identifier) ;) }))) }))) (if_statement "if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar12)" ( (binary_expression "local_2c == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar10;\n  }" { (return_statement "return piVar10;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" statement_identifier : (expression_statement "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" (call_expression "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c)" (parenthesized_expression "(*(code *)PTR_perror_000adc88)" ( (pointer_expression "*(code *)PTR_perror_000adc88" * (cast_expression "(code *)PTR_perror_000adc88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7d5c)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7d5c" identifier + number_literal) ))) ;)) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "puVar12 = PTR_exit_000adc48;" (assignment_expression "puVar12 = PTR_exit_000adc48" identifier = identifier) ;) (expression_statement "(*(code *)PTR_exit_000adc48)(1);" (call_expression "(*(code *)PTR_exit_000adc48)(1)" (parenthesized_expression "(*(code *)PTR_exit_000adc48)" ( (pointer_expression "*(code *)PTR_exit_000adc48" * (cast_expression "(code *)PTR_exit_000adc48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }" { (expression_statement "pcVar11 = pcVar8 + (int)piVar9;" (assignment_expression "pcVar11 = pcVar8 + (int)piVar9" identifier = (binary_expression "pcVar8 + (int)piVar9" identifier + (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);" do (compound_statement "{\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    }" { (while_statement "while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }" { (expression_statement "uVar3 = (uint)*pcVar8;" (assignment_expression "uVar3 = (uint)*pcVar8" identifier = (binary_expression "(uint)*pcVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (if_statement "if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;" if (parenthesized_expression "(((uVar3 & 0x60) == 0) && (uVar3 != 10))" ( (binary_expression "((uVar3 & 0x60) == 0) && (uVar3 != 10)" (parenthesized_expression "((uVar3 & 0x60) == 0)" ( (binary_expression "(uVar3 & 0x60) == 0" (parenthesized_expression "(uVar3 & 0x60)" ( (binary_expression "uVar3 & 0x60" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar3 != 10)" ( (binary_expression "uVar3 != 10" identifier != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);" (call_expression "(**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0x33dbc))" ( (pointer_expression "**(code **)(puVar12 + 0x33dbc)" * (pointer_expression "*(code **)(puVar12 + 0x33dbc)" * (cast_expression "(code **)(puVar12 + 0x33dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x33dbc)" ( (binary_expression "puVar12 + 0x33dbc" identifier + number_literal) ))))) )) (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;) (if_statement "if (pcVar11 == pcVar8) goto LAB_00079e4c;" if (parenthesized_expression "(pcVar11 == pcVar8)" ( (binary_expression "pcVar11 == pcVar8" identifier == identifier) )) (goto_statement "goto LAB_00079e4c;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(pcVar11 != pcVar8)" ( (binary_expression "pcVar11 != pcVar8" identifier != identifier) )) ;) })) (labeled_statement "LAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);" statement_identifier : (expression_statement "piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);" (assignment_expression "piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7)" identifier = (cast_expression "(int *)(**(code **)(puVar12 + 0x33f24))(uVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar12 + 0x33f24))(uVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0x33f24))" ( (pointer_expression "**(code **)(puVar12 + 0x33f24)" * (pointer_expression "*(code **)(puVar12 + 0x33f24)" * (cast_expression "(code **)(puVar12 + 0x33f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x33f24)" ( (binary_expression "puVar12 + 0x33f24" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))))) ;)) (return_statement "return piVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (break_statement break ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;)) (return_statement return IDENT ;) })))
(function_definition "int * agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}" (primitive_type "int") (pointer_declarator "* agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" (* "*") (function_declarator "agent_query(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" (identifier "agent_query") (parameter_list "(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  char local_9c [112];\n  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  pcVar8 = param_2;\n  piVar9 = param_3;\n  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);\n  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }\n  if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\nLAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);\n  uVar7 = 1;\n  puVar12 = PTR_exit_000adc48;\n  (*(code *)PTR_exit_000adc48)(1);\n  if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }\nLAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);\n  return piVar9;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "char local_9c [112];" (primitive_type "char") (array_declarator "local_9c [112]" (identifier "local_9c") ([ "[") (number_literal "112") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar12 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar12 = PTR___stack_chk_guard_000adcd4" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_guard_000adcd4")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000adcd4")))) (; ";")) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" (identifier "pcVar8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar9 = param_3;" (assignment_expression "piVar9 = param_3" (identifier "piVar9") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);" (assignment_expression "iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80)" (parenthesized_expression "(*(code *)PTR_getenv_000adc64)" (( "(") (pointer_expression "*(code *)PTR_getenv_000adc64" (* "*") (cast_expression "(code *)PTR_getenv_000adc64" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_000adc64"))) () ")")) (argument_list "(PTR_DAT_000ad2d0 + -0x7d80)" (( "(") (binary_expression "PTR_DAT_000ad2d0 + -0x7d80" (identifier "PTR_DAT_000ad2d0") (+ "+") (number_literal "-0x7d80")) () ")")))) (; ";")) (if_statement "if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" (if "if") (parenthesized_expression "((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3))" (( "(") (binary_expression "(iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)" (( "(") (comma_expression "uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3" (assignment_expression "uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_strlen_000adc28)(iVar2)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" (( "(") (pointer_expression "*(code *)PTR_strlen_000adc28" (* "*") (cast_expression "(code *)PTR_strlen_000adc28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000adc28"))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "0x6b < uVar3" (number_literal "0x6b") (< "<") (identifier "uVar3"))) () ")"))) () ")")) (compound_statement "{\nLAB_00079c64:\n    piVar10 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }" ({ "{") (labeled_statement "LAB_00079c64:\n    piVar10 = (int *)0x0;" (statement_identifier "LAB_00079c64") (: ":") (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" (identifier "piVar10") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" (else "else") (compound_statement "{\n    piVar9 = (int *)0x0;\n    pcVar8 = (char *)0x2;\n    iVar4 = (*(code *)PTR_socket_000adb5c)(1);\n    if (iVar4 < 0) goto LAB_00079da4;\n    cloexec(iVar4);\n    local_9c[0] = '\0';\n    local_9c[1] = '\x01';\n    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);\n    piVar9 = (int *)0x6e;\n    pcVar8 = local_9c;\n    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);\n    if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }\n    iVar2 = 0;\n    if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }\n    pcVar8 = (char *)0x1c;\n    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);\n    *piVar6 = iVar4;\n    piVar6[1] = (int)(piVar6 + 2);\n    piVar6[4] = 0;\n    piVar6[3] = 4;\n    piVar6[5] = param_5;\n    piVar6[6] = param_6;\n    puVar1 = PTR_DAT_000ad2b8;\n    if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }\n  }" ({ "{") (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" (identifier "piVar9") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar8 = (char *)0x2;" (assignment_expression "pcVar8 = (char *)0x2" (identifier "pcVar8") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_socket_000adb5c)(1);" (assignment_expression "iVar4 = (*(code *)PTR_socket_000adb5c)(1)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_socket_000adb5c)(1)" (parenthesized_expression "(*(code *)PTR_socket_000adb5c)" (( "(") (pointer_expression "*(code *)PTR_socket_000adb5c" (* "*") (cast_expression "(code *)PTR_socket_000adb5c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_socket_000adb5c"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) goto LAB_00079da4;" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00079da4;" (goto "goto") (statement_identifier "LAB_00079da4") (; ";"))) (expression_statement "cloexec(iVar4);" (call_expression "cloexec(iVar4)" (identifier "cloexec") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "local_9c[0] = '\0';" (assignment_expression "local_9c[0] = '\0'" (subscript_expression "local_9c[0]" (identifier "local_9c") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_9c[1] = '\x01';" (assignment_expression "local_9c[1] = '\x01'" (subscript_expression "local_9c[1]" (identifier "local_9c") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "(*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000adbb8)" (( "(") (pointer_expression "*(code *)PTR___strcpy_chk_000adbb8" (* "*") (cast_expression "(code *)PTR___strcpy_chk_000adbb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___strcpy_chk_000adbb8"))) () ")")) (argument_list "(local_9c + 2,iVar2,0x6c)" (( "(") (binary_expression "local_9c + 2" (identifier "local_9c") (+ "+") (number_literal "2")) (, ",") (identifier "iVar2") (, ",") (number_literal "0x6c") () ")"))) (; ";")) (expression_statement "piVar9 = (int *)0x6e;" (assignment_expression "piVar9 = (int *)0x6e" (identifier "piVar9") (= "=") (cast_expression "(int *)0x6e" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6e"))) (; ";")) (expression_statement "pcVar8 = local_9c;" (assignment_expression "pcVar8 = local_9c" (identifier "pcVar8") (= "=") (identifier "local_9c")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);" (assignment_expression "iVar2 = (*(code *)PTR_connect_000adb20)(iVar4)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_connect_000adb20)(iVar4)" (parenthesized_expression "(*(code *)PTR_connect_000adb20)" (( "(") (pointer_expression "*(code *)PTR_connect_000adb20" (* "*") (cast_expression "(code *)PTR_connect_000adb20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_connect_000adb20"))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);\n      goto LAB_00079c64;\n    }" ({ "{") (labeled_statement "LAB_00079c54:\n      (*(code *)PTR_close_000adb18)(iVar4);" (statement_identifier "LAB_00079c54") (: ":") (expression_statement "(*(code *)PTR_close_000adb18)(iVar4);" (call_expression "(*(code *)PTR_close_000adb18)(iVar4)" (parenthesized_expression "(*(code *)PTR_close_000adb18)" (( "(") (pointer_expression "*(code *)PTR_close_000adb18" (* "*") (cast_expression "(code *)PTR_close_000adb18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000adb18"))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";"))) (goto_statement "goto LAB_00079c64;" (goto "goto") (statement_identifier "LAB_00079c64") (; ";")) (} "}"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)param_2) {\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }" (if "if") (parenthesized_expression "(0 < (int)param_2)" (( "(") (binary_expression "0 < (int)param_2" (number_literal "0") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n      do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);\n    }" ({ "{") (do_statement "do {\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      } while (iVar2 < (int)param_2);" (do "do") (compound_statement "{\n        piVar9 = (int *)(param_2 + -iVar2);\n        pcVar8 = (char *)(param_1 + iVar2);\n        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);\n        if (iVar5 < 1) goto LAB_00079c54;\n        iVar2 = iVar2 + iVar5;\n      }" ({ "{") (expression_statement "piVar9 = (int *)(param_2 + -iVar2);" (assignment_expression "piVar9 = (int *)(param_2 + -iVar2)" (identifier "piVar9") (= "=") (cast_expression "(int *)(param_2 + -iVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + -iVar2)" (( "(") (binary_expression "param_2 + -iVar2" (identifier "param_2") (+ "+") (unary_expression "-iVar2" (- "-") (identifier "iVar2"))) () ")")))) (; ";")) (expression_statement "pcVar8 = (char *)(param_1 + iVar2);" (assignment_expression "pcVar8 = (char *)(param_1 + iVar2)" (identifier "pcVar8") (= "=") (cast_expression "(char *)(param_1 + iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar2)" (( "(") (binary_expression "param_1 + iVar2" (identifier "param_1") (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_write_000adc20)(iVar4);" (assignment_expression "iVar5 = (*(code *)PTR_write_000adc20)(iVar4)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_write_000adc20)(iVar4)" (parenthesized_expression "(*(code *)PTR_write_000adc20)" (( "(") (pointer_expression "*(code *)PTR_write_000adc20" (* "*") (cast_expression "(code *)PTR_write_000adc20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_write_000adc20"))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (iVar5 < 1) goto LAB_00079c54;" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00079c54;" (goto "goto") (statement_identifier "LAB_00079c54") (; ";"))) (expression_statement "iVar2 = iVar2 + iVar5;" (assignment_expression "iVar2 = iVar2 + iVar5" (identifier "iVar2") (= "=") (binary_expression "iVar2 + iVar5" (identifier "iVar2") (+ "+") (identifier "iVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < (int)param_2)" (( "(") (binary_expression "iVar2 < (int)param_2" (identifier "iVar2") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar8 = (char *)0x1c;" (assignment_expression "pcVar8 = (char *)0x1c" (identifier "pcVar8") (= "=") (cast_expression "(char *)0x1c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1c"))) (; ";")) (expression_statement "piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);" (assignment_expression "piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*(code *)PTR_safemalloc_000ad414)(1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_safemalloc_000ad414)(1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000ad414)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000ad414" (* "*") (cast_expression "(code *)PTR_safemalloc_000ad414" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000ad414"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";")) (expression_statement "*piVar6 = iVar4;" (assignment_expression "*piVar6 = iVar4" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar6[1] = (int)(piVar6 + 2);" (assignment_expression "piVar6[1] = (int)(piVar6 + 2)" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)(piVar6 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar6 + 2)" (( "(") (binary_expression "piVar6 + 2" (identifier "piVar6") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" (identifier "piVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[3] = 4;" (assignment_expression "piVar6[3] = 4" (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "piVar6[5] = param_5;" (assignment_expression "piVar6[5] = param_5" (subscript_expression "piVar6[5]" (identifier "piVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "piVar6[6] = param_6;" (assignment_expression "piVar6[6] = param_6" (subscript_expression "piVar6[6]" (identifier "piVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar1 = PTR_DAT_000ad2b8;" (assignment_expression "puVar1 = PTR_DAT_000ad2b8" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000ad2b8")) (; ";")) (if_statement "if (param_5 == 0) {\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }\n    else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      no_nonblock(iVar4);\n      do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);\n      iVar2 = piVar6[4];\n      piVar10 = (int *)0x0;\n      *param_3 = piVar6[1];\n      *param_4 = iVar2;\n      (*(code *)puVar1)(piVar6);\n    }" ({ "{") (expression_statement "no_nonblock(iVar4);" (call_expression "no_nonblock(iVar4)" (identifier "no_nonblock") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (do_statement "do {\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      } while (iVar2 == 0);" (do "do") (compound_statement "{\n        iVar2 = FUN_00079828(piVar6);\n        puVar1 = PTR_safefree_000ad380;\n      }" ({ "{") (expression_statement "iVar2 = FUN_00079828(piVar6);" (assignment_expression "iVar2 = FUN_00079828(piVar6)" (identifier "iVar2") (= "=") (call_expression "FUN_00079828(piVar6)" (identifier "FUN_00079828") (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_safefree_000ad380;" (assignment_expression "puVar1 = PTR_safefree_000ad380" (identifier "puVar1") (= "=") (identifier "PTR_safefree_000ad380")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar2 = piVar6[4];" (assignment_expression "iVar2 = piVar6[4]" (identifier "iVar2") (= "=") (subscript_expression "piVar6[4]" (identifier "piVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" (identifier "piVar10") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*param_3 = piVar6[1];" (assignment_expression "*param_3 = piVar6[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*param_4 = iVar2;" (assignment_expression "*param_4 = iVar2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "(*(code *)puVar1)(piVar6);" (call_expression "(*(code *)puVar1)(piVar6)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" (else "else") (compound_statement "{\n      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);\n      if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }\n      add234(iVar2,piVar6);\n      pcVar8 = (char *)0x1;\n      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);\n      uxsel_set(iVar4);\n      piVar10 = piVar6;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);" (assignment_expression "iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" (* "*") (cast_expression "(int *)(PTR_DAT_000ad2b8 + -0x1bc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000ad2b8 + -0x1bc0)" (( "(") (binary_expression "PTR_DAT_000ad2b8 + -0x1bc0" (identifier "PTR_DAT_000ad2b8") (+ "+") (number_literal "-0x1bc0")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);\n        *(int *)(puVar1 + -0x1bc0) = iVar2;\n      }" ({ "{") (expression_statement "iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);" (assignment_expression "iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820)" (identifier "iVar2") (= "=") (call_expression "newtree234(PTR_LAB_000ad2f8 + -0x6820)" (identifier "newtree234") (argument_list "(PTR_LAB_000ad2f8 + -0x6820)" (( "(") (binary_expression "PTR_LAB_000ad2f8 + -0x6820" (identifier "PTR_LAB_000ad2f8") (+ "+") (number_literal "-0x6820")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar1 + -0x1bc0) = iVar2;" (assignment_expression "*(int *)(puVar1 + -0x1bc0) = iVar2" (pointer_expression "*(int *)(puVar1 + -0x1bc0)" (* "*") (cast_expression "(int *)(puVar1 + -0x1bc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x1bc0)" (( "(") (binary_expression "puVar1 + -0x1bc0" (identifier "puVar1") (+ "+") (number_literal "-0x1bc0")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (} "}"))) (expression_statement "add234(iVar2,piVar6);" (call_expression "add234(iVar2,piVar6)" (identifier "add234") (argument_list "(iVar2,piVar6)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar6") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)0x1;" (assignment_expression "pcVar8 = (char *)0x1" (identifier "pcVar8") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);" (assignment_expression "piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8)" (identifier "piVar9") (= "=") (cast_expression "(int *)(PTR_LAB_000ad2f8 + -0x65c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x65c8)" (( "(") (binary_expression "PTR_LAB_000ad2f8 + -0x65c8" (identifier "PTR_LAB_000ad2f8") (+ "+") (number_literal "-0x65c8")) () ")")))) (; ";")) (expression_statement "uxsel_set(iVar4);" (call_expression "uxsel_set(iVar4)" (identifier "uxsel_set") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "piVar10 = piVar6;" (assignment_expression "piVar10 = piVar6" (identifier "piVar10") (= "=") (identifier "piVar6")) (; ";")) (} "}")))) (} "}")))) (if_statement "if (local_2c == *(int *)puVar12) {\n    return piVar10;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar12)" (( "(") (binary_expression "local_2c == *(int *)puVar12" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")))) () ")")) (compound_statement "{\n    return piVar10;\n  }" ({ "{") (return_statement "return piVar10;" (return "return") (identifier "piVar10") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000adca4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000adca4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00079da4:\n  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" (statement_identifier "LAB_00079da4") (: ":") (expression_statement "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);" (call_expression "(*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c)" (parenthesized_expression "(*(code *)PTR_perror_000adc88)" (( "(") (pointer_expression "*(code *)PTR_perror_000adc88" (* "*") (cast_expression "(code *)PTR_perror_000adc88" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_perror_000adc88"))) () ")")) (argument_list "(PTR_DAT_000ad2d0 + -0x7d5c)" (( "(") (binary_expression "PTR_DAT_000ad2d0 + -0x7d5c" (identifier "PTR_DAT_000ad2d0") (+ "+") (number_literal "-0x7d5c")) () ")"))) (; ";"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar12 = PTR_exit_000adc48;" (assignment_expression "puVar12 = PTR_exit_000adc48" (identifier "puVar12") (= "=") (identifier "PTR_exit_000adc48")) (; ";")) (expression_statement "(*(code *)PTR_exit_000adc48)(1);" (call_expression "(*(code *)PTR_exit_000adc48)(1)" (parenthesized_expression "(*(code *)PTR_exit_000adc48)" (( "(") (pointer_expression "*(code *)PTR_exit_000adc48" (* "*") (cast_expression "(code *)PTR_exit_000adc48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_exit_000adc48"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (if_statement "if (piVar9 != (int *)0x0) {\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }" (if "if") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar11 = pcVar8 + (int)piVar9;\n    do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);\n  }" ({ "{") (expression_statement "pcVar11 = pcVar8 + (int)piVar9;" (assignment_expression "pcVar11 = pcVar8 + (int)piVar9" (identifier "pcVar11") (= "=") (binary_expression "pcVar8 + (int)piVar9" (identifier "pcVar8") (+ "+") (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")))) (; ";")) (do_statement "do {\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    } while (pcVar11 != pcVar8);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar3 = (uint)*pcVar8;\n        pcVar8 = pcVar8 + 1;\n        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;\n        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);\n        if (pcVar11 == pcVar8) goto LAB_00079e4c;\n      }" ({ "{") (expression_statement "uVar3 = (uint)*pcVar8;" (assignment_expression "uVar3 = (uint)*pcVar8" (identifier "uVar3") (= "=") (binary_expression "(uint)*pcVar8" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;" (if "if") (parenthesized_expression "(((uVar3 & 0x60) == 0) && (uVar3 != 10))" (( "(") (binary_expression "((uVar3 & 0x60) == 0) && (uVar3 != 10)" (parenthesized_expression "((uVar3 & 0x60) == 0)" (( "(") (binary_expression "(uVar3 & 0x60) == 0" (parenthesized_expression "(uVar3 & 0x60)" (( "(") (binary_expression "uVar3 & 0x60" (identifier "uVar3") (& "&") (number_literal "0x60")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar3 != 10)" (( "(") (binary_expression "uVar3 != 10" (identifier "uVar3") (!= "!=") (number_literal "10")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "(**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);" (call_expression "(**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0x33dbc))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x33dbc)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x33dbc)" (* "*") (cast_expression "(code **)(puVar12 + 0x33dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x33dbc)" (( "(") (binary_expression "puVar12 + 0x33dbc" (identifier "puVar12") (+ "+") (number_literal "0x33dbc")) () ")"))))) () ")")) (argument_list "(uVar3,uVar7)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar7") () ")"))) (; ";")) (if_statement "if (pcVar11 == pcVar8) goto LAB_00079e4c;" (if "if") (parenthesized_expression "(pcVar11 == pcVar8)" (( "(") (binary_expression "pcVar11 == pcVar8" (identifier "pcVar11") (== "==") (identifier "pcVar8")) () ")")) (goto_statement "goto LAB_00079e4c;" (goto "goto") (statement_identifier "LAB_00079e4c") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(pcVar11 != pcVar8)" (( "(") (binary_expression "pcVar11 != pcVar8" (identifier "pcVar11") (!= "!=") (identifier "pcVar8")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00079e4c:\n                    \n                    \n  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);" (statement_identifier "LAB_00079e4c") (: ":") (expression_statement "piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);" (assignment_expression "piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7)" (identifier "piVar9") (= "=") (cast_expression "(int *)(**(code **)(puVar12 + 0x33f24))(uVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar12 + 0x33f24))(uVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0x33f24))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x33f24)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x33f24)" (* "*") (cast_expression "(code **)(puVar12 + 0x33f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x33f24)" (( "(") (binary_expression "puVar12 + 0x33f24" (identifier "puVar12") (+ "+") (number_literal "0x33f24")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))))) (; ";"))) (return_statement "return piVar9;" (return "return") (identifier "piVar9") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) 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 (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) 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 (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (break_statement)) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (return_statement (identifier)))))

int * MASKED(int param_1,char *param_2,int *param_3,int *param_4,int param_5,int param_6)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  undefined4 uVar7;
  char *pcVar8;
  int *piVar9;
  int *piVar10;
  char *pcVar11;
  undefined *puVar12;
  char local_9c [112];
  int local_2c;
  
  puVar12 = PTR___stack_chk_guard_000adcd4;
  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;
  pcVar8 = param_2;
  piVar9 = param_3;
  iVar2 = (*(code *)PTR_getenv_000adc64)(PTR_DAT_000ad2d0 + -0x7d80);
  if ((iVar2 == 0) || (uVar3 = (*(code *)PTR_strlen_000adc28)(iVar2), 0x6b < uVar3)) {
LAB_00079c64:
    piVar10 = (int *)0x0;
    *param_3 = 0;
    *param_4 = 0;
  }
  else {
    piVar9 = (int *)0x0;
    pcVar8 = (char *)0x2;
    iVar4 = (*(code *)PTR_socket_000adb5c)(1);
    if (iVar4 < 0) goto LAB_00079da4;
    cloexec(iVar4);
    local_9c[0] = '\0';
    local_9c[1] = '\x01';
    (*(code *)PTR___strcpy_chk_000adbb8)(local_9c + 2,iVar2,0x6c);
    piVar9 = (int *)0x6e;
    pcVar8 = local_9c;
    iVar2 = (*(code *)PTR_connect_000adb20)(iVar4);
    if (iVar2 < 0) {
LAB_00079c54:
      (*(code *)PTR_close_000adb18)(iVar4);
      goto LAB_00079c64;
    }
    iVar2 = 0;
    if (0 < (int)param_2) {
      do {
        piVar9 = (int *)(param_2 + -iVar2);
        pcVar8 = (char *)(param_1 + iVar2);
        iVar5 = (*(code *)PTR_write_000adc20)(iVar4);
        if (iVar5 < 1) goto LAB_00079c54;
        iVar2 = iVar2 + iVar5;
      } while (iVar2 < (int)param_2);
    }
    pcVar8 = (char *)0x1c;
    piVar6 = (int *)(*(code *)PTR_safemalloc_000ad414)(1);
    *piVar6 = iVar4;
    piVar6[1] = (int)(piVar6 + 2);
    piVar6[4] = 0;
    piVar6[3] = 4;
    piVar6[5] = param_5;
    piVar6[6] = param_6;
    puVar1 = PTR_DAT_000ad2b8;
    if (param_5 == 0) {
      no_nonblock(iVar4);
      do {
        iVar2 = FUN_00079828(piVar6);
        puVar1 = PTR_safefree_000ad380;
      } while (iVar2 == 0);
      iVar2 = piVar6[4];
      piVar10 = (int *)0x0;
      *param_3 = piVar6[1];
      *param_4 = iVar2;
      (*(code *)puVar1)(piVar6);
    }
    else {
      iVar2 = *(int *)(PTR_DAT_000ad2b8 + -0x1bc0);
      if (iVar2 == 0) {
        iVar2 = newtree234(PTR_LAB_000ad2f8 + -0x6820);
        *(int *)(puVar1 + -0x1bc0) = iVar2;
      }
      add234(iVar2,piVar6);
      pcVar8 = (char *)0x1;
      piVar9 = (int *)(PTR_LAB_000ad2f8 + -0x65c8);
      uxsel_set(iVar4);
      piVar10 = piVar6;
    }
  }
  if (local_2c == *(int *)puVar12) {
    return piVar10;
  }
  (*(code *)PTR___stack_chk_fail_000adca4)();
LAB_00079da4:
  (*(code *)PTR_perror_000adc88)(PTR_DAT_000ad2d0 + -0x7d5c);
  uVar7 = 1;
  puVar12 = PTR_exit_000adc48;
  (*(code *)PTR_exit_000adc48)(1);
  if (piVar9 != (int *)0x0) {
    pcVar11 = pcVar8 + (int)piVar9;
    do {
      while( true ) {
        uVar3 = (uint)*pcVar8;
        pcVar8 = pcVar8 + 1;
        if (((uVar3 & 0x60) == 0) && (uVar3 != 10)) break;
        (**(code **)(puVar12 + 0x33dbc))(uVar3,uVar7);
        if (pcVar11 == pcVar8) goto LAB_00079e4c;
      }
    } while (pcVar11 != pcVar8);
  }
LAB_00079e4c:
                    /* WARNING: Could not recover jumptable at 0x00079e64. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  piVar9 = (int *)(**(code **)(puVar12 + 0x33f24))(uVar7);
  return piVar9;
}

