
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;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  int fd;
  int iVar6;
  agent_pending_query *conn;
  agent_pending_query *paVar7;
  tree234 *t;
  sockaddr_un addr;
  
  puVar2 = PTR___stack_chk_guard_000b0c9c;
  iVar3 = *(int *)PTR___stack_chk_guard_000b0c9c;
  iVar4 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);
  if ((iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)) {
LAB_0007e9d4:
    paVar7 = (agent_pending_query *)0x0;
    *out = (void *)0x0;
    *outlen = 0;
  }
  else {
    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);
    if (fd < 0) goto LAB_0007eb14;
    cloexec(fd);
    addr.sun_family = 1;
    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);
    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);
    if (iVar4 < 0) {
LAB_0007e9c4:
      (*(code *)PTR_close_000b0ad8)(fd);
      goto LAB_0007e9d4;
    }
    iVar4 = 0;
    if (0 < inlen) {
      do {
        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);
        if (iVar6 < 1) goto LAB_0007e9c4;
        iVar4 = iVar4 + iVar6;
      } while (iVar4 < inlen);
    }
    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);
    conn->fd = fd;
    conn->retbuf = conn->sizebuf;
    conn->retlen = 0;
    conn->retsize = 4;
    conn->callback = callback;
    conn->callback_ctx = callback_ctx;
    puVar1 = PTR_data_start_000b0178;
    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {
      no_nonblock(fd);
      do {
        iVar4 = agent_try_read(conn);
        puVar1 = PTR_safefree_000b01b0;
      } while (iVar4 == 0);
      iVar4 = conn->retlen;
      paVar7 = (agent_pending_query *)0x0;
      *out = conn->retbuf;
      *outlen = iVar4;
      (*(code *)puVar1)(conn);
    }
    else {
      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);
      if (t == (tree234 *)0x0) {
        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));
        *(tree234 **)(puVar1 + 0x1490) = t;
      }
      add234(t,conn);
      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));
      paVar7 = conn;
    }
  }
  if (iVar3 == *(int *)puVar2) {
    return paVar7;
  }
  (*(code *)PTR___stack_chk_fail_000b0c70)();
LAB_0007eb14:
  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);
  paVar7 = (agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1);
  return paVar7;
}



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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int *piVar7;
  int *piVar8;
  undefined2 local_9c;
  undefined1 auStack_9a [110];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_000b0c9c;
  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;
  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);
  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {
LAB_0007e9d4:
    piVar8 = (int *)0x0;
    *param_3 = 0;
    *param_4 = 0;
  }
  else {
    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);
    if (iVar5 < 0) goto LAB_0007eb14;
    cloexec(iVar5);
    local_9c = 1;
    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);
    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);
    if (iVar3 < 0) {
LAB_0007e9c4:
      (*(code *)PTR_close_000b0ad8)(iVar5);
      goto LAB_0007e9d4;
    }
    iVar3 = 0;
    if (0 < param_2) {
      do {
        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);
        if (iVar6 < 1) goto LAB_0007e9c4;
        iVar3 = iVar3 + iVar6;
      } while (iVar3 < param_2);
    }
    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);
    *piVar7 = iVar5;
    piVar7[1] = (int)(piVar7 + 2);
    piVar7[4] = 0;
    piVar7[3] = 4;
    piVar7[5] = param_5;
    piVar7[6] = param_6;
    puVar1 = PTR_DAT_000b0178;
    if (param_5 == 0) {
      no_nonblock(iVar5);
      do {
        iVar3 = FUN_0007e598(piVar7);
        puVar1 = PTR_safefree_000b01b0;
      } while (iVar3 == 0);
      iVar3 = piVar7[4];
      piVar8 = (int *)0x0;
      *param_3 = piVar7[1];
      *param_4 = iVar3;
      (*(code *)puVar1)(piVar7);
    }
    else {
      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);
      if (iVar3 == 0) {
        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);
        *(int *)(puVar1 + 0x1490) = iVar3;
      }
      add234(iVar3,piVar7);
      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);
      piVar8 = piVar7;
    }
  }
  if (local_2c == *(int *)puVar2) {
    return piVar8;
  }
  (*(code *)PTR___stack_chk_fail_000b0c70)();
LAB_0007eb14:
  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);
  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);
  return piVar8;
}


lui gp,0x4
addiu gp,gp,-0x6734
addu gp,gp,t9
addiu sp,sp,-0xb8
lw t9,-0x7528(gp)
sw s4,0xa0(sp)
sw s3,0x9c(sp)
or s3,a0,zero
lw s4,-0x74b4(gp)
lw a0,-0x7f80(gp)
sw gp,0x10(sp)
sw s8,0xb0(sp)
sw s7,0xac(sp)
addiu a0,a0,-0x3750
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,0x0007e9d4
_lw gp,0x10(sp)
lw t9,-0x756c(gp)
or a0,v0,zero
jalr t9
_or s0,v0,zero
sltiu v0,v0,0x6c
beq v0,zero,0x0007e9d4
_lw gp,0x10(sp)
lw t9,-0x7638(gp)
or a2,zero,zero
li a1,0x2
jalr t9
_li a0,0x1
lw gp,0x10(sp)
bltz v0,0x0007eb14
_or s2,v0,zero
lw t9,-0x7770(gp)
bal 0x00080760
_or a0,v0,zero
li v0,0x1
lw gp,0x10(sp)
li a2,0x6c
addiu a0,sp,0x1e
sh v0,0x1c(sp)
lw t9,-0x75d8(gp)
jalr t9
_or a1,s0,zero
li a2,0x6e
lw gp,0x10(sp)
addiu a1,sp,0x1c
lw t9,-0x7670(gp)
jalr t9
_or a0,s2,zero
bltz v0,0x0007e9c4
_lw gp,0x10(sp)
bgtz s1,0x0007e9a8
_or s0,zero,zero
b 0x0007ea20
_lw t9,-0x7f68(gp)
addu s0,s0,v0
slt v0,s0,s1
beq v0,zero,0x0007ea20
_lw t9,-0x7f68(gp)
lw t9,-0x7574(gp)
subu a2,s1,s0
addu a1,s3,s0
jalr t9
_or a0,s2,zero
bgtz v0,0x0007e998
_lw gp,0x10(sp)
lw t9,-0x7678(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,0x0007eb08
_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,0x0007eab4
_sw s8,0x18(s0)
lw s1,-0x7fd8(gp)
lw a0,0x1490(s1)
beq a0,zero,0x0007ea98
_lw t9,-0x7eb4(gp)
lw t9,-0x7ebc(gp)
bal 0x0007dfb8
_or a1,s0,zero
li a1,0x1
lw gp,0x10(sp)
or a0,s2,zero
lw a2,-0x7f58(gp)
lw t9,-0x776c(gp)
bal 0x000859d0
_addiu a2,a2,-0x1858
b 0x0007e9e0
_lw gp,0x10(sp)
lw a0,-0x7f58(gp)
bal 0x0007def8
_addiu a0,a0,-0x1ab0
lw gp,0x10(sp)
or a0,v0,zero
b 0x0007ea68
_sw v0,0x1490(s1)
lw t9,-0x7768(gp)
bal 0x00080a78
_or a0,s2,zero
lw gp,0x10(sp)
lw s1,-0x7f58(gp)
addiu s1,s1,-0x1a68
or t9,s1,zero
bal 0x0007e598
_or a0,s0,zero
beq v0,zero,0x0007eacc
_lw gp,0x10(sp)
lw v1,0x4(s0)
or a0,s0,zero
lw v0,0x10(s0)
or s0,zero,zero
lw t9,-0x7fa0(gp)
sw v1,0x0(s6)
jalr t9
_sw v0,0x0(s5)
b 0x0007e9e0
_lw gp,0x10(sp)
lw t9,-0x74e0(gp)
jalr t9
_nop
lw a0,-0x7f80(gp)
lw t9,-0x74fc(gp)
jalr t9
_addiu a0,a0,-0x372c
lw gp,0x10(sp)
lw t9,-0x7544(gp)
jalr t9
_li a0,0x1
(translation_unit "int * agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}\n\n" (function_definition "int * agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}" primitive_type (pointer_declarator "* agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" * (function_declarator "agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type 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  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined2 local_9c;" type_identifier identifier ;) (declaration "undefined1 auStack_9a [110];" type_identifier (array_declarator "auStack_9a [110]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000b0c9c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000b0c9c" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" * (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" identifier = (call_expression "(*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" (parenthesized_expression "(*(code *)PTR_getenv_000b0c28)" ( (pointer_expression "*(code *)PTR_getenv_000b0c28" * (cast_expression "(code *)PTR_getenv_000b0c28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000b01d0 + -0x3750)" ( (binary_expression "PTR_DAT_000b01d0 + -0x3750" identifier + number_literal) )))) ;) (if_statement "if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" if (parenthesized_expression "((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4))" ( (binary_expression "(iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)" ( (comma_expression "uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000b0be4)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000b0be4)" ( (pointer_expression "*(code *)PTR_strlen_000b0be4" * (cast_expression "(code *)PTR_strlen_000b0be4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "0x6b < uVar4" number_literal < identifier)) ))) )) (compound_statement "{\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }" { (labeled_statement "LAB_0007e9d4:\n    piVar8 = (int *)0x0;" statement_identifier : (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (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    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" else (compound_statement "{\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" { (expression_statement "iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);" (assignment_expression "iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0)" identifier = (call_expression "(*(code *)PTR_socket_000b0b18)(1,2,0)" (parenthesized_expression "(*(code *)PTR_socket_000b0b18)" ( (pointer_expression "*(code *)PTR_socket_000b0b18" * (cast_expression "(code *)PTR_socket_000b0b18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,2,0)" ( number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 < 0) goto LAB_0007eb14;" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0007eb14;" goto statement_identifier ;)) (expression_statement "cloexec(iVar5);" (call_expression "cloexec(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "local_9c = 1;" (assignment_expression "local_9c = 1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000b0b78)" ( (pointer_expression "*(code *)PTR___strcpy_chk_000b0b78" * (cast_expression "(code *)PTR___strcpy_chk_000b0b78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_9a,iVar3,0x6c)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);" (assignment_expression "iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e)" identifier = (call_expression "(*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e)" (parenthesized_expression "(*(code *)PTR_connect_000b0ae0)" ( (pointer_expression "*(code *)PTR_connect_000b0ae0" * (cast_expression "(code *)PTR_connect_000b0ae0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,&local_9c,0x6e)" ( identifier , (pointer_expression "&local_9c" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }" { (labeled_statement "LAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);" statement_identifier : (expression_statement "(*(code *)PTR_close_000b0ad8)(iVar5);" (call_expression "(*(code *)PTR_close_000b0ad8)(iVar5)" (parenthesized_expression "(*(code *)PTR_close_000b0ad8)" ( (pointer_expression "*(code *)PTR_close_000b0ad8" * (cast_expression "(code *)PTR_close_000b0ad8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;)) (goto_statement "goto LAB_0007e9d4;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }" { (do_statement "do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);" do (compound_statement "{\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      }" { (expression_statement "iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);" (assignment_expression "iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3)" identifier = (call_expression "(*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3)" (parenthesized_expression "(*(code *)PTR_write_000b0bdc)" ( (pointer_expression "*(code *)PTR_write_000b0bdc" * (cast_expression "(code *)PTR_write_000b0bdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,param_1 + iVar3,param_2 - iVar3)" ( identifier , (binary_expression "param_1 + iVar3" identifier + identifier) , (binary_expression "param_2 - iVar3" identifier - identifier) )))) ;) (if_statement "if (iVar6 < 1) goto LAB_0007e9c4;" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0007e9c4;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + iVar6;" (assignment_expression "iVar3 = iVar3 + iVar6" identifier = (binary_expression "iVar3 + iVar6" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar3 < param_2)" ( (binary_expression "iVar3 < param_2" identifier < identifier) )) ;) })) (expression_statement "piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" identifier = (cast_expression "(int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b01e8)" ( (pointer_expression "*(code *)PTR_safemalloc_000b01e8" * (cast_expression "(code *)PTR_safemalloc_000b01e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x1c)" ( number_literal , number_literal ))))) ;) (expression_statement "*piVar7 = iVar5;" (assignment_expression "*piVar7 = iVar5" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar7[1] = (int)(piVar7 + 2);" (assignment_expression "piVar7[1] = (int)(piVar7 + 2)" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 2)" ( (binary_expression "piVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar7[4] = 0;" (assignment_expression "piVar7[4] = 0" (subscript_expression "piVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[3] = 4;" (assignment_expression "piVar7[3] = 4" (subscript_expression "piVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[5] = param_5;" (assignment_expression "piVar7[5] = param_5" (subscript_expression "piVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[6] = param_6;" (assignment_expression "piVar7[6] = param_6" (subscript_expression "piVar7[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000b0178;" (assignment_expression "puVar1 = PTR_DAT_000b0178" identifier = identifier) ;) (if_statement "if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }" { (expression_statement "no_nonblock(iVar5);" (call_expression "no_nonblock(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (do_statement "do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);" do (compound_statement "{\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      }" { (expression_statement "iVar3 = FUN_0007e598(piVar7);" (assignment_expression "iVar3 = FUN_0007e598(piVar7)" identifier = (call_expression "FUN_0007e598(piVar7)" identifier (argument_list "(piVar7)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_safefree_000b01b0;" (assignment_expression "puVar1 = PTR_safefree_000b01b0" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (expression_statement "iVar3 = piVar7[4];" (assignment_expression "iVar3 = piVar7[4]" identifier = (subscript_expression "piVar7[4]" identifier [ number_literal ])) ;) (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = piVar7[1];" (assignment_expression "*param_3 = piVar7[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "*param_4 = iVar3;" (assignment_expression "*param_4 = iVar3" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(piVar7);" (call_expression "(*(code *)puVar1)(piVar7)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) }) (else_clause "else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" else (compound_statement "{\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" { (expression_statement "iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);" (assignment_expression "iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490)" identifier = (pointer_expression "*(int *)(PTR_DAT_000b0178 + 0x1490)" * (cast_expression "(int *)(PTR_DAT_000b0178 + 0x1490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b0178 + 0x1490)" ( (binary_expression "PTR_DAT_000b0178 + 0x1490" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }" { (expression_statement "iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);" (assignment_expression "iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0)" identifier = (call_expression "newtree234(PTR_LAB_000b01f8 + -0x1ab0)" identifier (argument_list "(PTR_LAB_000b01f8 + -0x1ab0)" ( (binary_expression "PTR_LAB_000b01f8 + -0x1ab0" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar1 + 0x1490) = iVar3;" (assignment_expression "*(int *)(puVar1 + 0x1490) = iVar3" (pointer_expression "*(int *)(puVar1 + 0x1490)" * (cast_expression "(int *)(puVar1 + 0x1490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1490)" ( (binary_expression "puVar1 + 0x1490" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "add234(iVar3,piVar7);" (call_expression "add234(iVar3,piVar7)" identifier (argument_list "(iVar3,piVar7)" ( identifier , identifier ))) ;) (expression_statement "uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);" (call_expression "uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858)" identifier (argument_list "(iVar5,1,PTR_LAB_000b01f8 + -0x1858)" ( identifier , number_literal , (binary_expression "PTR_LAB_000b01f8 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "piVar8 = piVar7;" (assignment_expression "piVar8 = piVar7" identifier = identifier) ;) }))) }))) (if_statement "if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar8;\n  }" { (return_statement "return piVar8;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" * (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" statement_identifier : (expression_statement "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" (call_expression "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c)" (parenthesized_expression "(*(code *)PTR_perror_000b0c54)" ( (pointer_expression "*(code *)PTR_perror_000b0c54" * (cast_expression "(code *)PTR_perror_000b0c54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000b01d0 + -0x372c)" ( (binary_expression "PTR_DAT_000b01d0 + -0x372c" identifier + number_literal) ))) ;)) (expression_statement "piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);" (assignment_expression "piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1)" identifier = (cast_expression "(int *)(*(code *)PTR_exit_000b0c0c)(1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_exit_000b0c0c)(1)" (parenthesized_expression "(*(code *)PTR_exit_000b0c0c)" ( (pointer_expression "*(code *)PTR_exit_000b0c0c" * (cast_expression "(code *)PTR_exit_000b0c0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (return_statement "return piVar8;" 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  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int fd;\n  int iVar6;\n  agent_pending_query *conn;\n  agent_pending_query *paVar7;\n  tree234 *t;\n  sockaddr_un addr;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  iVar3 = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar4 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)) {\nLAB_0007e9d4:\n    paVar7 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (fd < 0) goto LAB_0007eb14;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);\n    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);\n    if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }\n    iVar4 = 0;\n    if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\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_data_start_000b0178;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }\n  }\n  if (iVar3 == *(int *)puVar2) {\n    return paVar7;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  paVar7 = (agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1);\n  return paVar7;\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  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int fd;\n  int iVar6;\n  agent_pending_query *conn;\n  agent_pending_query *paVar7;\n  tree234 *t;\n  sockaddr_un addr;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  iVar3 = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar4 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)) {\nLAB_0007e9d4:\n    paVar7 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (fd < 0) goto LAB_0007eb14;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);\n    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);\n    if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }\n    iVar4 = 0;\n    if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\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_data_start_000b0178;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }\n  }\n  if (iVar3 == *(int *)puVar2) {\n    return paVar7;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  paVar7 = (agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1);\n  return paVar7;\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  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  int fd;\n  int iVar6;\n  agent_pending_query *conn;\n  agent_pending_query *paVar7;\n  tree234 *t;\n  sockaddr_un addr;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  iVar3 = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar4 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)) {\nLAB_0007e9d4:\n    paVar7 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (fd < 0) goto LAB_0007eb14;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);\n    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);\n    if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }\n    iVar4 = 0;\n    if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\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_data_start_000b0178;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }\n  }\n  if (iVar3 == *(int *)puVar2) {\n    return paVar7;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  paVar7 = (agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1);\n  return paVar7;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int fd;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "agent_pending_query *conn;" type_identifier (pointer_declarator "*conn" * identifier) ;) (declaration "agent_pending_query *paVar7;" type_identifier (pointer_declarator "*paVar7" * identifier) ;) (declaration "tree234 *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "sockaddr_un addr;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000b0c9c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000b0c9c" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000b0c9c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" * (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);" (assignment_expression "iVar4 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" identifier = (call_expression "(*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" (parenthesized_expression "(*(code *)PTR_getenv_000b0c28)" ( (pointer_expression "*(code *)PTR_getenv_000b0c28" * (cast_expression "(code *)PTR_getenv_000b0c28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000b01d0 + -0x3750)" ( (binary_expression "PTR_DAT_000b01d0 + -0x3750" identifier + number_literal) )))) ;) (if_statement "if ((iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)) {\nLAB_0007e9d4:\n    paVar7 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }\n  else {\n    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (fd < 0) goto LAB_0007eb14;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);\n    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);\n    if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }\n    iVar4 = 0;\n    if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\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_data_start_000b0178;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }\n  }" if (parenthesized_expression "((iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5))" ( (binary_expression "(iVar4 == 0) || (uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5)" ( (comma_expression "uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4), 0x6b < uVar5" (assignment_expression "uVar5 = (*(code *)PTR_strlen_000b0be4)(iVar4)" identifier = (call_expression "(*(code *)PTR_strlen_000b0be4)(iVar4)" (parenthesized_expression "(*(code *)PTR_strlen_000b0be4)" ( (pointer_expression "*(code *)PTR_strlen_000b0be4" * (cast_expression "(code *)PTR_strlen_000b0be4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "0x6b < uVar5" number_literal < identifier)) ))) )) (compound_statement "{\nLAB_0007e9d4:\n    paVar7 = (agent_pending_query *)0x0;\n    *out = (void *)0x0;\n    *outlen = 0;\n  }" { (labeled_statement "LAB_0007e9d4:\n    paVar7 = (agent_pending_query *)0x0;" statement_identifier : (expression_statement "paVar7 = (agent_pending_query *)0x0;" (assignment_expression "paVar7 = (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    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (fd < 0) goto LAB_0007eb14;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);\n    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);\n    if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }\n    iVar4 = 0;\n    if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\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_data_start_000b0178;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }\n  }" else (compound_statement "{\n    fd = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (fd < 0) goto LAB_0007eb14;\n    cloexec(fd);\n    addr.sun_family = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c);\n    iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);\n    if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }\n    iVar4 = 0;\n    if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }\n    conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\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_data_start_000b0178;\n    if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }\n  }" { (expression_statement "fd = (*(code *)PTR_socket_000b0b18)(1,2,0);" (assignment_expression "fd = (*(code *)PTR_socket_000b0b18)(1,2,0)" identifier = (call_expression "(*(code *)PTR_socket_000b0b18)(1,2,0)" (parenthesized_expression "(*(code *)PTR_socket_000b0b18)" ( (pointer_expression "*(code *)PTR_socket_000b0b18" * (cast_expression "(code *)PTR_socket_000b0b18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,2,0)" ( number_literal , number_literal , number_literal )))) ;) (if_statement "if (fd < 0) goto LAB_0007eb14;" if (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) (goto_statement "goto LAB_0007eb14;" 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_000b0b78)(addr.sun_path,iVar4,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000b0b78)(addr.sun_path,iVar4,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000b0b78)" ( (pointer_expression "*(code *)PTR___strcpy_chk_000b0b78" * (cast_expression "(code *)PTR___strcpy_chk_000b0b78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(addr.sun_path,iVar4,0x6c)" ( (field_expression "addr.sun_path" identifier . field_identifier) , identifier , number_literal ))) ;) (expression_statement "iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e);" (assignment_expression "iVar4 = (*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e)" identifier = (call_expression "(*(code *)PTR_connect_000b0ae0)(fd,&addr,0x6e)" (parenthesized_expression "(*(code *)PTR_connect_000b0ae0)" ( (pointer_expression "*(code *)PTR_connect_000b0ae0" * (cast_expression "(code *)PTR_connect_000b0ae0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd,&addr,0x6e)" ( identifier , (pointer_expression "&addr" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);\n      goto LAB_0007e9d4;\n    }" { (labeled_statement "LAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(fd);" statement_identifier : (expression_statement "(*(code *)PTR_close_000b0ad8)(fd);" (call_expression "(*(code *)PTR_close_000b0ad8)(fd)" (parenthesized_expression "(*(code *)PTR_close_000b0ad8)" ( (pointer_expression "*(code *)PTR_close_000b0ad8" * (cast_expression "(code *)PTR_close_000b0ad8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd)" ( identifier ))) ;)) (goto_statement "goto LAB_0007e9d4;" goto statement_identifier ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (0 < inlen) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }" if (parenthesized_expression "(0 < inlen)" ( (binary_expression "0 < inlen" number_literal < identifier) )) (compound_statement "{\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);\n    }" { (do_statement "do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      } while (iVar4 < inlen);" do (compound_statement "{\n        iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar4 = iVar4 + iVar6;\n      }" { (expression_statement "iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4);" (assignment_expression "iVar6 = (*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4)" identifier = (call_expression "(*(code *)PTR_write_000b0bdc)(fd,(int)in + iVar4,inlen - iVar4)" (parenthesized_expression "(*(code *)PTR_write_000b0bdc)" ( (pointer_expression "*(code *)PTR_write_000b0bdc" * (cast_expression "(code *)PTR_write_000b0bdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd,(int)in + iVar4,inlen - iVar4)" ( identifier , (binary_expression "(int)in + iVar4" (cast_expression "(int)in" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "inlen - iVar4" identifier - identifier) )))) ;) (if_statement "if (iVar6 < 1) goto LAB_0007e9c4;" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0007e9c4;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + iVar6;" (assignment_expression "iVar4 = iVar4 + iVar6" identifier = (binary_expression "iVar4 + iVar6" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar4 < inlen)" ( (binary_expression "iVar4 < inlen" identifier < identifier) )) ;) })) (expression_statement "conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);" (assignment_expression "conn = (agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" identifier = (cast_expression "(agent_pending_query *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b01e8)" ( (pointer_expression "*(code *)PTR_safemalloc_000b01e8" * (cast_expression "(code *)PTR_safemalloc_000b01e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x1c)" ( number_literal , 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_data_start_000b0178;" (assignment_expression "puVar1 = PTR_data_start_000b0178" identifier = identifier) ;) (if_statement "if (callback == (_func_void_void_ptr_void_ptr_int *)0x0) {\n      no_nonblock(fd);\n      do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }\n    else {\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = 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        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);\n      iVar4 = conn->retlen;\n      paVar7 = (agent_pending_query *)0x0;\n      *out = conn->retbuf;\n      *outlen = iVar4;\n      (*(code *)puVar1)(conn);\n    }" { (expression_statement "no_nonblock(fd);" (call_expression "no_nonblock(fd)" identifier (argument_list "(fd)" ( identifier ))) ;) (do_statement "do {\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar4 == 0);" do (compound_statement "{\n        iVar4 = agent_try_read(conn);\n        puVar1 = PTR_safefree_000b01b0;\n      }" { (expression_statement "iVar4 = agent_try_read(conn);" (assignment_expression "iVar4 = agent_try_read(conn)" identifier = (call_expression "agent_try_read(conn)" identifier (argument_list "(conn)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_safefree_000b01b0;" (assignment_expression "puVar1 = PTR_safefree_000b01b0" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) ;) (expression_statement "iVar4 = conn->retlen;" (assignment_expression "iVar4 = conn->retlen" identifier = (field_expression "conn->retlen" identifier -> field_identifier)) ;) (expression_statement "paVar7 = (agent_pending_query *)0x0;" (assignment_expression "paVar7 = (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 = iVar4;" (assignment_expression "*outlen = iVar4" (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_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }" else (compound_statement "{\n      t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);\n      if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }\n      add234(t,conn);\n      uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));\n      paVar7 = conn;\n    }" { (expression_statement "t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490);" (assignment_expression "t = *(tree234 **)(PTR_data_start_000b0178 + 0x1490)" identifier = (pointer_expression "*(tree234 **)(PTR_data_start_000b0178 + 0x1490)" * (cast_expression "(tree234 **)(PTR_data_start_000b0178 + 0x1490)" ( (type_descriptor "tree234 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_data_start_000b0178 + 0x1490)" ( (binary_expression "PTR_data_start_000b0178 + 0x1490" identifier + number_literal) ))))) ;) (if_statement "if (t == (tree234 *)0x0) {\n        t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = 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_000b01f8 + -0x1ab0));\n        *(tree234 **)(puVar1 + 0x1490) = t;\n      }" { (expression_statement "t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0));" (assignment_expression "t = newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0))" identifier = (call_expression "newtree234((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0))" identifier (argument_list "((cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0))" ( (call_expression "(cmpfn234)(PTR_LAB_000b01f8 + -0x1ab0)" (parenthesized_expression "(cmpfn234)" ( identifier )) (argument_list "(PTR_LAB_000b01f8 + -0x1ab0)" ( (binary_expression "PTR_LAB_000b01f8 + -0x1ab0" identifier + number_literal) ))) )))) ;) (expression_statement "*(tree234 **)(puVar1 + 0x1490) = t;" (assignment_expression "*(tree234 **)(puVar1 + 0x1490) = t" (pointer_expression "*(tree234 **)(puVar1 + 0x1490)" * (cast_expression "(tree234 **)(puVar1 + 0x1490)" ( (type_descriptor "tree234 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x1490)" ( (binary_expression "puVar1 + 0x1490" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "add234(t,conn);" (call_expression "add234(t,conn)" identifier (argument_list "(t,conn)" ( identifier , identifier ))) ;) (expression_statement "uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858));" (call_expression "uxsel_set(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858))" identifier (argument_list "(fd,1,(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858))" ( identifier , number_literal , (call_expression "(uxsel_callback_fn)(PTR_LAB_000b01f8 + -0x1858)" (parenthesized_expression "(uxsel_callback_fn)" ( identifier )) (argument_list "(PTR_LAB_000b01f8 + -0x1858)" ( (binary_expression "PTR_LAB_000b01f8 + -0x1858" identifier + number_literal) ))) ))) ;) (expression_statement "paVar7 = conn;" (assignment_expression "paVar7 = conn" identifier = identifier) ;) }))) }))) (if_statement "if (iVar3 == *(int *)puVar2) {\n    return paVar7;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return paVar7;\n  }" { (return_statement "return paVar7;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" * (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" statement_identifier : (expression_statement "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" (call_expression "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c)" (parenthesized_expression "(*(code *)PTR_perror_000b0c54)" ( (pointer_expression "*(code *)PTR_perror_000b0c54" * (cast_expression "(code *)PTR_perror_000b0c54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000b01d0 + -0x372c)" ( (binary_expression "PTR_DAT_000b01d0 + -0x372c" identifier + number_literal) ))) ;)) (expression_statement "paVar7 = (agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1);" (assignment_expression "paVar7 = (agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1)" identifier = (cast_expression "(agent_pending_query *)(*(code *)PTR_exit_000b0c0c)(1)" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_exit_000b0c0c)(1)" (parenthesized_expression "(*(code *)PTR_exit_000b0c0c)" ( (pointer_expression "*(code *)PTR_exit_000b0c0c" * (cast_expression "(code *)PTR_exit_000b0c0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (return_statement "return paVar7;" return identifier ;) })))
(translation_unit "int * agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}\n\n" (function_definition "int * agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}" primitive_type (pointer_declarator "* agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" * (function_declarator "agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type 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  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined2 local_9c;" type_identifier identifier ;) (declaration "undefined1 auStack_9a [110];" type_identifier (array_declarator "auStack_9a [110]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000b0c9c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000b0c9c" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" * (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" identifier = (call_expression "(*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" (parenthesized_expression "(*(code *)PTR_getenv_000b0c28)" ( (pointer_expression "*(code *)PTR_getenv_000b0c28" * (cast_expression "(code *)PTR_getenv_000b0c28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000b01d0 + -0x3750)" ( (binary_expression "PTR_DAT_000b01d0 + -0x3750" identifier + number_literal) )))) ;) (if_statement "if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" if (parenthesized_expression "((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4))" ( (binary_expression "(iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)" ( (comma_expression "uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000b0be4)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000b0be4)" ( (pointer_expression "*(code *)PTR_strlen_000b0be4" * (cast_expression "(code *)PTR_strlen_000b0be4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "0x6b < uVar4" number_literal < identifier)) ))) )) (compound_statement "{\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }" { (labeled_statement "LAB_0007e9d4:\n    piVar8 = (int *)0x0;" statement_identifier : (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (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    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" else (compound_statement "{\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" { (expression_statement "iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);" (assignment_expression "iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0)" identifier = (call_expression "(*(code *)PTR_socket_000b0b18)(1,2,0)" (parenthesized_expression "(*(code *)PTR_socket_000b0b18)" ( (pointer_expression "*(code *)PTR_socket_000b0b18" * (cast_expression "(code *)PTR_socket_000b0b18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,2,0)" ( number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 < 0) goto LAB_0007eb14;" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0007eb14;" goto statement_identifier ;)) (expression_statement "cloexec(iVar5);" (call_expression "cloexec(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "local_9c = 1;" (assignment_expression "local_9c = 1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000b0b78)" ( (pointer_expression "*(code *)PTR___strcpy_chk_000b0b78" * (cast_expression "(code *)PTR___strcpy_chk_000b0b78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_9a,iVar3,0x6c)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);" (assignment_expression "iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e)" identifier = (call_expression "(*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e)" (parenthesized_expression "(*(code *)PTR_connect_000b0ae0)" ( (pointer_expression "*(code *)PTR_connect_000b0ae0" * (cast_expression "(code *)PTR_connect_000b0ae0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,&local_9c,0x6e)" ( identifier , (pointer_expression "&local_9c" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }" { (labeled_statement "LAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);" statement_identifier : (expression_statement "(*(code *)PTR_close_000b0ad8)(iVar5);" (call_expression "(*(code *)PTR_close_000b0ad8)(iVar5)" (parenthesized_expression "(*(code *)PTR_close_000b0ad8)" ( (pointer_expression "*(code *)PTR_close_000b0ad8" * (cast_expression "(code *)PTR_close_000b0ad8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;)) (goto_statement "goto LAB_0007e9d4;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }" { (do_statement "do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);" do (compound_statement "{\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      }" { (expression_statement "iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);" (assignment_expression "iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3)" identifier = (call_expression "(*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3)" (parenthesized_expression "(*(code *)PTR_write_000b0bdc)" ( (pointer_expression "*(code *)PTR_write_000b0bdc" * (cast_expression "(code *)PTR_write_000b0bdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,param_1 + iVar3,param_2 - iVar3)" ( identifier , (binary_expression "param_1 + iVar3" identifier + identifier) , (binary_expression "param_2 - iVar3" identifier - identifier) )))) ;) (if_statement "if (iVar6 < 1) goto LAB_0007e9c4;" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0007e9c4;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + iVar6;" (assignment_expression "iVar3 = iVar3 + iVar6" identifier = (binary_expression "iVar3 + iVar6" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar3 < param_2)" ( (binary_expression "iVar3 < param_2" identifier < identifier) )) ;) })) (expression_statement "piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" identifier = (cast_expression "(int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b01e8)" ( (pointer_expression "*(code *)PTR_safemalloc_000b01e8" * (cast_expression "(code *)PTR_safemalloc_000b01e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x1c)" ( number_literal , number_literal ))))) ;) (expression_statement "*piVar7 = iVar5;" (assignment_expression "*piVar7 = iVar5" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar7[1] = (int)(piVar7 + 2);" (assignment_expression "piVar7[1] = (int)(piVar7 + 2)" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 2)" ( (binary_expression "piVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar7[4] = 0;" (assignment_expression "piVar7[4] = 0" (subscript_expression "piVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[3] = 4;" (assignment_expression "piVar7[3] = 4" (subscript_expression "piVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[5] = param_5;" (assignment_expression "piVar7[5] = param_5" (subscript_expression "piVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[6] = param_6;" (assignment_expression "piVar7[6] = param_6" (subscript_expression "piVar7[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000b0178;" (assignment_expression "puVar1 = PTR_DAT_000b0178" identifier = identifier) ;) (if_statement "if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }" { (expression_statement "no_nonblock(iVar5);" (call_expression "no_nonblock(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (do_statement "do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);" do (compound_statement "{\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      }" { (expression_statement "iVar3 = FUN_0007e598(piVar7);" (assignment_expression "iVar3 = FUN_0007e598(piVar7)" identifier = (call_expression "FUN_0007e598(piVar7)" identifier (argument_list "(piVar7)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_safefree_000b01b0;" (assignment_expression "puVar1 = PTR_safefree_000b01b0" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (expression_statement "iVar3 = piVar7[4];" (assignment_expression "iVar3 = piVar7[4]" identifier = (subscript_expression "piVar7[4]" identifier [ number_literal ])) ;) (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = piVar7[1];" (assignment_expression "*param_3 = piVar7[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "*param_4 = iVar3;" (assignment_expression "*param_4 = iVar3" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(piVar7);" (call_expression "(*(code *)puVar1)(piVar7)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar7)" ( identifier ))) ;) }) (else_clause "else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" else (compound_statement "{\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" { (expression_statement "iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);" (assignment_expression "iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490)" identifier = (pointer_expression "*(int *)(PTR_DAT_000b0178 + 0x1490)" * (cast_expression "(int *)(PTR_DAT_000b0178 + 0x1490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b0178 + 0x1490)" ( (binary_expression "PTR_DAT_000b0178 + 0x1490" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }" { (expression_statement "iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);" (assignment_expression "iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0)" identifier = (call_expression "newtree234(PTR_LAB_000b01f8 + -0x1ab0)" identifier (argument_list "(PTR_LAB_000b01f8 + -0x1ab0)" ( (binary_expression "PTR_LAB_000b01f8 + -0x1ab0" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar1 + 0x1490) = iVar3;" (assignment_expression "*(int *)(puVar1 + 0x1490) = iVar3" (pointer_expression "*(int *)(puVar1 + 0x1490)" * (cast_expression "(int *)(puVar1 + 0x1490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1490)" ( (binary_expression "puVar1 + 0x1490" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "add234(iVar3,piVar7);" (call_expression "add234(iVar3,piVar7)" identifier (argument_list "(iVar3,piVar7)" ( identifier , identifier ))) ;) (expression_statement "uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);" (call_expression "uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858)" identifier (argument_list "(iVar5,1,PTR_LAB_000b01f8 + -0x1858)" ( identifier , number_literal , (binary_expression "PTR_LAB_000b01f8 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "piVar8 = piVar7;" (assignment_expression "piVar8 = piVar7" identifier = identifier) ;) }))) }))) (if_statement "if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar8;\n  }" { (return_statement "return piVar8;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" * (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" statement_identifier : (expression_statement "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" (call_expression "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c)" (parenthesized_expression "(*(code *)PTR_perror_000b0c54)" ( (pointer_expression "*(code *)PTR_perror_000b0c54" * (cast_expression "(code *)PTR_perror_000b0c54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000b01d0 + -0x372c)" ( (binary_expression "PTR_DAT_000b01d0 + -0x372c" identifier + number_literal) ))) ;)) (expression_statement "piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);" (assignment_expression "piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1)" identifier = (cast_expression "(int *)(*(code *)PTR_exit_000b0c0c)(1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_exit_000b0c0c)(1)" (parenthesized_expression "(*(code *)PTR_exit_000b0c0c)" ( (pointer_expression "*(code *)PTR_exit_000b0c0c" * (cast_expression "(code *)PTR_exit_000b0c0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal ))))) ;) (return_statement "return piVar8;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 = (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , 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 IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (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 < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (binary_expression IDENT - 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 < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (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 (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (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 = (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 ))))) ;) (return_statement return IDENT ;) })))
(function_definition "int * agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}" (primitive_type "int") (pointer_declarator "* agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" (* "*") (function_declarator "agent_query(int param_1,int param_2,int *param_3,int *param_4,int param_5,int param_6)" (identifier "agent_query") (parameter_list "(int param_1,int 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 "int param_2" (primitive_type "int") (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  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined2 local_9c;\n  undefined1 auStack_9a [110];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000b0c9c;\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);\n  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }\n  if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\nLAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);\n  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);\n  return piVar8;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined2 local_9c;" (type_identifier "undefined2") (identifier "local_9c") (; ";")) (declaration "undefined1 auStack_9a [110];" (type_identifier "undefined1") (array_declarator "auStack_9a [110]" (identifier "auStack_9a") ([ "[") (number_literal "110") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000b0c9c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000b0c9c" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000b0c9c")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b0c9c")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750)" (parenthesized_expression "(*(code *)PTR_getenv_000b0c28)" (( "(") (pointer_expression "*(code *)PTR_getenv_000b0c28" (* "*") (cast_expression "(code *)PTR_getenv_000b0c28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_000b0c28"))) () ")")) (argument_list "(PTR_DAT_000b01d0 + -0x3750)" (( "(") (binary_expression "PTR_DAT_000b01d0 + -0x3750" (identifier "PTR_DAT_000b01d0") (+ "+") (number_literal "-0x3750")) () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }\n  else {\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" (if "if") (parenthesized_expression "((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4))" (( "(") (binary_expression "(iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)" (( "(") (comma_expression "uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_strlen_000b0be4)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000b0be4)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b0be4" (* "*") (cast_expression "(code *)PTR_strlen_000b0be4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b0be4"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (, ",") (binary_expression "0x6b < uVar4" (number_literal "0x6b") (< "<") (identifier "uVar4"))) () ")"))) () ")")) (compound_statement "{\nLAB_0007e9d4:\n    piVar8 = (int *)0x0;\n    *param_3 = 0;\n    *param_4 = 0;\n  }" ({ "{") (labeled_statement "LAB_0007e9d4:\n    piVar8 = (int *)0x0;" (statement_identifier "LAB_0007e9d4") (: ":") (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" (identifier "piVar8") (= "=") (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    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" (else "else") (compound_statement "{\n    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);\n    if (iVar5 < 0) goto LAB_0007eb14;\n    cloexec(iVar5);\n    local_9c = 1;\n    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);\n    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);\n    if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }\n    iVar3 = 0;\n    if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }\n    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);\n    *piVar7 = iVar5;\n    piVar7[1] = (int)(piVar7 + 2);\n    piVar7[4] = 0;\n    piVar7[3] = 4;\n    piVar7[5] = param_5;\n    piVar7[6] = param_6;\n    puVar1 = PTR_DAT_000b0178;\n    if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }\n  }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);" (assignment_expression "iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_socket_000b0b18)(1,2,0)" (parenthesized_expression "(*(code *)PTR_socket_000b0b18)" (( "(") (pointer_expression "*(code *)PTR_socket_000b0b18" (* "*") (cast_expression "(code *)PTR_socket_000b0b18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_socket_000b0b18"))) () ")")) (argument_list "(1,2,0)" (( "(") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) goto LAB_0007eb14;" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007eb14;" (goto "goto") (statement_identifier "LAB_0007eb14") (; ";"))) (expression_statement "cloexec(iVar5);" (call_expression "cloexec(iVar5)" (identifier "cloexec") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "local_9c = 1;" (assignment_expression "local_9c = 1" (identifier "local_9c") (= "=") (number_literal "1")) (; ";")) (expression_statement "(*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);" (call_expression "(*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_000b0b78)" (( "(") (pointer_expression "*(code *)PTR___strcpy_chk_000b0b78" (* "*") (cast_expression "(code *)PTR___strcpy_chk_000b0b78" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___strcpy_chk_000b0b78"))) () ")")) (argument_list "(auStack_9a,iVar3,0x6c)" (( "(") (identifier "auStack_9a") (, ",") (identifier "iVar3") (, ",") (number_literal "0x6c") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);" (assignment_expression "iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e)" (parenthesized_expression "(*(code *)PTR_connect_000b0ae0)" (( "(") (pointer_expression "*(code *)PTR_connect_000b0ae0" (* "*") (cast_expression "(code *)PTR_connect_000b0ae0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_connect_000b0ae0"))) () ")")) (argument_list "(iVar5,&local_9c,0x6e)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&local_9c" (& "&") (identifier "local_9c")) (, ",") (number_literal "0x6e") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);\n      goto LAB_0007e9d4;\n    }" ({ "{") (labeled_statement "LAB_0007e9c4:\n      (*(code *)PTR_close_000b0ad8)(iVar5);" (statement_identifier "LAB_0007e9c4") (: ":") (expression_statement "(*(code *)PTR_close_000b0ad8)(iVar5);" (call_expression "(*(code *)PTR_close_000b0ad8)(iVar5)" (parenthesized_expression "(*(code *)PTR_close_000b0ad8)" (( "(") (pointer_expression "*(code *)PTR_close_000b0ad8" (* "*") (cast_expression "(code *)PTR_close_000b0ad8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000b0ad8"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";"))) (goto_statement "goto LAB_0007e9d4;" (goto "goto") (statement_identifier "LAB_0007e9d4") (; ";")) (} "}"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < param_2) {\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }" (if "if") (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n      do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);\n    }" ({ "{") (do_statement "do {\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      } while (iVar3 < param_2);" (do "do") (compound_statement "{\n        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);\n        if (iVar6 < 1) goto LAB_0007e9c4;\n        iVar3 = iVar3 + iVar6;\n      }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);" (assignment_expression "iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3)" (parenthesized_expression "(*(code *)PTR_write_000b0bdc)" (( "(") (pointer_expression "*(code *)PTR_write_000b0bdc" (* "*") (cast_expression "(code *)PTR_write_000b0bdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_write_000b0bdc"))) () ")")) (argument_list "(iVar5,param_1 + iVar3,param_2 - iVar3)" (( "(") (identifier "iVar5") (, ",") (binary_expression "param_1 + iVar3" (identifier "param_1") (+ "+") (identifier "iVar3")) (, ",") (binary_expression "param_2 - iVar3" (identifier "param_2") (- "-") (identifier "iVar3")) () ")")))) (; ";")) (if_statement "if (iVar6 < 1) goto LAB_0007e9c4;" (if "if") (parenthesized_expression "(iVar6 < 1)" (( "(") (binary_expression "iVar6 < 1" (identifier "iVar6") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0007e9c4;" (goto "goto") (statement_identifier "LAB_0007e9c4") (; ";"))) (expression_statement "iVar3 = iVar3 + iVar6;" (assignment_expression "iVar3 = iVar3 + iVar6" (identifier "iVar3") (= "=") (binary_expression "iVar3 + iVar6" (identifier "iVar3") (+ "+") (identifier "iVar6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 < param_2)" (( "(") (binary_expression "iVar3 < param_2" (identifier "iVar3") (< "<") (identifier "param_2")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_safemalloc_000b01e8)(1,0x1c)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b01e8)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000b01e8" (* "*") (cast_expression "(code *)PTR_safemalloc_000b01e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000b01e8"))) () ")")) (argument_list "(1,0x1c)" (( "(") (number_literal "1") (, ",") (number_literal "0x1c") () ")"))))) (; ";")) (expression_statement "*piVar7 = iVar5;" (assignment_expression "*piVar7 = iVar5" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar7[1] = (int)(piVar7 + 2);" (assignment_expression "piVar7[1] = (int)(piVar7 + 2)" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)(piVar7 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar7 + 2)" (( "(") (binary_expression "piVar7 + 2" (identifier "piVar7") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar7[4] = 0;" (assignment_expression "piVar7[4] = 0" (subscript_expression "piVar7[4]" (identifier "piVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar7[3] = 4;" (assignment_expression "piVar7[3] = 4" (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "piVar7[5] = param_5;" (assignment_expression "piVar7[5] = param_5" (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "piVar7[6] = param_6;" (assignment_expression "piVar7[6] = param_6" (subscript_expression "piVar7[6]" (identifier "piVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar1 = PTR_DAT_000b0178;" (assignment_expression "puVar1 = PTR_DAT_000b0178" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000b0178")) (; ";")) (if_statement "if (param_5 == 0) {\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }\n    else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      no_nonblock(iVar5);\n      do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);\n      iVar3 = piVar7[4];\n      piVar8 = (int *)0x0;\n      *param_3 = piVar7[1];\n      *param_4 = iVar3;\n      (*(code *)puVar1)(piVar7);\n    }" ({ "{") (expression_statement "no_nonblock(iVar5);" (call_expression "no_nonblock(iVar5)" (identifier "no_nonblock") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (do_statement "do {\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      } while (iVar3 == 0);" (do "do") (compound_statement "{\n        iVar3 = FUN_0007e598(piVar7);\n        puVar1 = PTR_safefree_000b01b0;\n      }" ({ "{") (expression_statement "iVar3 = FUN_0007e598(piVar7);" (assignment_expression "iVar3 = FUN_0007e598(piVar7)" (identifier "iVar3") (= "=") (call_expression "FUN_0007e598(piVar7)" (identifier "FUN_0007e598") (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_safefree_000b01b0;" (assignment_expression "puVar1 = PTR_safefree_000b01b0" (identifier "puVar1") (= "=") (identifier "PTR_safefree_000b01b0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar3 = piVar7[4];" (assignment_expression "iVar3 = piVar7[4]" (identifier "iVar3") (= "=") (subscript_expression "piVar7[4]" (identifier "piVar7") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" (identifier "piVar8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*param_3 = piVar7[1];" (assignment_expression "*param_3 = piVar7[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*param_4 = iVar3;" (assignment_expression "*param_4 = iVar3" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "(*(code *)puVar1)(piVar7);" (call_expression "(*(code *)puVar1)(piVar7)" (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 "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" (else "else") (compound_statement "{\n      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);\n      if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }\n      add234(iVar3,piVar7);\n      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);\n      piVar8 = piVar7;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);" (assignment_expression "iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(PTR_DAT_000b0178 + 0x1490)" (* "*") (cast_expression "(int *)(PTR_DAT_000b0178 + 0x1490)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b0178 + 0x1490)" (( "(") (binary_expression "PTR_DAT_000b0178 + 0x1490" (identifier "PTR_DAT_000b0178") (+ "+") (number_literal "0x1490")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);\n        *(int *)(puVar1 + 0x1490) = iVar3;\n      }" ({ "{") (expression_statement "iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);" (assignment_expression "iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0)" (identifier "iVar3") (= "=") (call_expression "newtree234(PTR_LAB_000b01f8 + -0x1ab0)" (identifier "newtree234") (argument_list "(PTR_LAB_000b01f8 + -0x1ab0)" (( "(") (binary_expression "PTR_LAB_000b01f8 + -0x1ab0" (identifier "PTR_LAB_000b01f8") (+ "+") (number_literal "-0x1ab0")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar1 + 0x1490) = iVar3;" (assignment_expression "*(int *)(puVar1 + 0x1490) = iVar3" (pointer_expression "*(int *)(puVar1 + 0x1490)" (* "*") (cast_expression "(int *)(puVar1 + 0x1490)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1490)" (( "(") (binary_expression "puVar1 + 0x1490" (identifier "puVar1") (+ "+") (number_literal "0x1490")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "add234(iVar3,piVar7);" (call_expression "add234(iVar3,piVar7)" (identifier "add234") (argument_list "(iVar3,piVar7)" (( "(") (identifier "iVar3") (, ",") (identifier "piVar7") () ")"))) (; ";")) (expression_statement "uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);" (call_expression "uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858)" (identifier "uxsel_set") (argument_list "(iVar5,1,PTR_LAB_000b01f8 + -0x1858)" (( "(") (identifier "iVar5") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_000b01f8 + -0x1858" (identifier "PTR_LAB_000b01f8") (+ "+") (number_literal "-0x1858")) () ")"))) (; ";")) (expression_statement "piVar8 = piVar7;" (assignment_expression "piVar8 = piVar7" (identifier "piVar8") (= "=") (identifier "piVar7")) (; ";")) (} "}")))) (} "}")))) (if_statement "if (local_2c == *(int *)puVar2) {\n    return piVar8;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return piVar8;\n  }" ({ "{") (return_statement "return piVar8;" (return "return") (identifier "piVar8") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b0c70"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0007eb14:\n  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" (statement_identifier "LAB_0007eb14") (: ":") (expression_statement "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);" (call_expression "(*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c)" (parenthesized_expression "(*(code *)PTR_perror_000b0c54)" (( "(") (pointer_expression "*(code *)PTR_perror_000b0c54" (* "*") (cast_expression "(code *)PTR_perror_000b0c54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_perror_000b0c54"))) () ")")) (argument_list "(PTR_DAT_000b01d0 + -0x372c)" (( "(") (binary_expression "PTR_DAT_000b01d0 + -0x372c" (identifier "PTR_DAT_000b01d0") (+ "+") (number_literal "-0x372c")) () ")"))) (; ";"))) (expression_statement "piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);" (assignment_expression "piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1)" (identifier "piVar8") (= "=") (cast_expression "(int *)(*(code *)PTR_exit_000b0c0c)(1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_exit_000b0c0c)(1)" (parenthesized_expression "(*(code *)PTR_exit_000b0c0c)" (( "(") (pointer_expression "*(code *)PTR_exit_000b0c0c" (* "*") (cast_expression "(code *)PTR_exit_000b0c0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_exit_000b0c0c"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";")) (return_statement "return piVar8;" (return "return") (identifier "piVar8") (; ";")) (} "}")))

type_1 *
function_1(void *in,int var_6,void **out,int *outlen,type_2 *var_8,
           void *callback_ctx)

{
  type_3 *var_15;
  type_3 *puVar2;
  int var_18;
  int var_2;
  type_4 var_3;
  int var_4;
  int var_7;
  type_1 *conn;
  type_1 *paVar7;
  type_5 *var_12;
  type_6 addr;
  
  puVar2 = PTR___stack_chk_guard_000b0c9c;
  var_18 = *(int *)PTR___stack_chk_guard_000b0c9c;
  var_2 = (*(type_7 *)PTR_getenv_000b0c28)(var_1 + -0x3750);
  if ((var_2 == 0) || (var_3 = (*(type_7 *)PTR_strlen_000b0be4)(var_2), 0x6b < var_3)) {
LAB_0007e9d4:
    paVar7 = (type_1 *)0x0;
    *out = (void *)0x0;
    *outlen = 0;
  }
  else {
    var_4 = (*(type_7 *)PTR_socket_000b0b18)(1,2,0);
    if (var_4 < 0) goto LAB_0007eb14;
    var_5(var_4);
    addr.sun_family = 1;
    (*(type_7 *)PTR___strcpy_chk_000b0b78)(addr.sun_path,var_2,0x6c);
    var_2 = (*(type_7 *)PTR_connect_000b0ae0)(var_4,&addr,0x6e);
    if (var_2 < 0) {
LAB_0007e9c4:
      (*(type_7 *)PTR_close_000b0ad8)(var_4);
      goto LAB_0007e9d4;
    }
    var_2 = 0;
    if (0 < var_6) {
      do {
        var_7 = (*(type_7 *)PTR_write_000b0bdc)(var_4,(int)in + var_2,var_6 - var_2);
        if (var_7 < 1) goto LAB_0007e9c4;
        var_2 = var_2 + var_7;
      } while (var_2 < var_6);
    }
    conn = (type_1 *)(*(type_7 *)PTR_safemalloc_000b01e8)(1,0x1c);
    conn->var_4 = var_4;
    conn->retbuf = conn->sizebuf;
    conn->retlen = 0;
    conn->retsize = 4;
    conn->var_8 = var_8;
    conn->callback_ctx = callback_ctx;
    var_15 = var_11;
    if (var_8 == (type_2 *)0x0) {
      var_9(var_4);
      do {
        var_2 = var_10(conn);
        var_15 = PTR_safefree_000b01b0;
      } while (var_2 == 0);
      var_2 = conn->retlen;
      paVar7 = (type_1 *)0x0;
      *out = conn->retbuf;
      *outlen = var_2;
      (*(type_7 *)var_15)(conn);
    }
    else {
      var_12 = *(type_5 **)(var_11 + 0x1490);
      if (var_12 == (type_5 *)0x0) {
        var_12 = var_13((cmpfn234)(var_14 + -0x1ab0));
        *(type_5 **)(var_15 + 0x1490) = var_12;
      }
      var_16(var_12,conn);
      var_17(var_4,1,(uxsel_callback_fn)(var_14 + -0x1858));
      paVar7 = conn;
    }
  }
  if (var_18 == *(int *)puVar2) {
    return paVar7;
  }
  (*(type_7 *)PTR___stack_chk_fail_000b0c70)();
LAB_0007eb14:
  (*(type_7 *)PTR_perror_000b0c54)(var_1 + -0x372c);
  paVar7 = (type_1 *)(*(type_7 *)PTR_exit_000b0c0c)(1);
  return paVar7;
}


(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: (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: (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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal) (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: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (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: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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)))))) (return_statement (identifier)))))

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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int *piVar7;
  int *piVar8;
  undefined2 local_9c;
  undefined1 auStack_9a [110];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_000b0c9c;
  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;
  iVar3 = (*(code *)PTR_getenv_000b0c28)(PTR_DAT_000b01d0 + -0x3750);
  if ((iVar3 == 0) || (uVar4 = (*(code *)PTR_strlen_000b0be4)(iVar3), 0x6b < uVar4)) {
LAB_0007e9d4:
    piVar8 = (int *)0x0;
    *param_3 = 0;
    *param_4 = 0;
  }
  else {
    iVar5 = (*(code *)PTR_socket_000b0b18)(1,2,0);
    if (iVar5 < 0) goto LAB_0007eb14;
    cloexec(iVar5);
    local_9c = 1;
    (*(code *)PTR___strcpy_chk_000b0b78)(auStack_9a,iVar3,0x6c);
    iVar3 = (*(code *)PTR_connect_000b0ae0)(iVar5,&local_9c,0x6e);
    if (iVar3 < 0) {
LAB_0007e9c4:
      (*(code *)PTR_close_000b0ad8)(iVar5);
      goto LAB_0007e9d4;
    }
    iVar3 = 0;
    if (0 < param_2) {
      do {
        iVar6 = (*(code *)PTR_write_000b0bdc)(iVar5,param_1 + iVar3,param_2 - iVar3);
        if (iVar6 < 1) goto LAB_0007e9c4;
        iVar3 = iVar3 + iVar6;
      } while (iVar3 < param_2);
    }
    piVar7 = (int *)(*(code *)PTR_safemalloc_000b01e8)(1,0x1c);
    *piVar7 = iVar5;
    piVar7[1] = (int)(piVar7 + 2);
    piVar7[4] = 0;
    piVar7[3] = 4;
    piVar7[5] = param_5;
    piVar7[6] = param_6;
    puVar1 = PTR_DAT_000b0178;
    if (param_5 == 0) {
      no_nonblock(iVar5);
      do {
        iVar3 = FUN_0007e598(piVar7);
        puVar1 = PTR_safefree_000b01b0;
      } while (iVar3 == 0);
      iVar3 = piVar7[4];
      piVar8 = (int *)0x0;
      *param_3 = piVar7[1];
      *param_4 = iVar3;
      (*(code *)puVar1)(piVar7);
    }
    else {
      iVar3 = *(int *)(PTR_DAT_000b0178 + 0x1490);
      if (iVar3 == 0) {
        iVar3 = newtree234(PTR_LAB_000b01f8 + -0x1ab0);
        *(int *)(puVar1 + 0x1490) = iVar3;
      }
      add234(iVar3,piVar7);
      uxsel_set(iVar5,1,PTR_LAB_000b01f8 + -0x1858);
      piVar8 = piVar7;
    }
  }
  if (local_2c == *(int *)puVar2) {
    return piVar8;
  }
  (*(code *)PTR___stack_chk_fail_000b0c70)();
LAB_0007eb14:
  (*(code *)PTR_perror_000b0c54)(PTR_DAT_000b01d0 + -0x372c);
  piVar8 = (int *)(*(code *)PTR_exit_000b0c0c)(1);
  return piVar8;
}

