
void launch_duplicate_session(Conf *conf)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined4 *puVar5;
  int iVar6;
  int in_a3;
  int *piVar7;
  int iVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int in_t9;
  code *pcVar12;
  int pipefd [2];
  char option [80];
  
  piVar9 = *(int **)(in_t9 + 0x46efc);
  iVar1 = *piVar9;
  iVar2 = (**(code **)(in_t9 + 0x46c24))(pipefd);
  if (iVar2 < 0) {
    (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);
  }
  else {
    piVar10 = *(int **)(in_t9 + 0x46110);
    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);
    iVar2 = iVar3;
    if (((*piVar10 == 0) ||
        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||
       (*piVar7 == 0)) {
      pcVar12 = *(code **)(in_t9 + 0x46104);
    }
    else {
      do {
        piVar7 = piVar7 + 1;
        iVar4 = (**(code **)(in_t9 + 0x46e10))();
        iVar2 = iVar2 + 1 + iVar4;
      } while (*piVar7 != 0);
      pcVar12 = *(code **)(in_t9 + 0x46104);
    }
    iVar4 = (*pcVar12)(iVar2,1);
    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);
    if (*piVar10 == 0) {
LAB_00061134:
      in_a3 = *(int *)(in_t9 + 0x4610c);
    }
    else {
      piVar7 = *(int **)(in_t9 + 0x46118);
      piVar10 = (int *)*piVar7;
      in_a3 = *(int *)(in_t9 + 0x4610c);
      if (piVar10 != (int *)0x0) {
        if (*piVar10 != 0) {
          iVar11 = 0;
          do {
            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);
            iVar8 = *piVar7;
            puVar5 = (undefined4 *)(iVar8 + iVar11);
            iVar11 = iVar11 + 4;
            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);
            iVar3 = iVar3 + 1 + iVar6;
          } while (*(int *)(iVar8 + iVar11) != 0);
        }
        in_a3 = *(int *)(in_t9 + 0x4610c);
        if (iVar2 != iVar3) goto LAB_00061268;
        goto LAB_00061134;
      }
    }
    in_a3 = in_a3 + -0x5c;
    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);
    noncloexec(pipefd[0]);
    iVar3 = 0;
    fork_and_exec_self(pipefd[1],option,0);
    (**(code **)(in_t9 + 0x46968))(pipefd[0]);
    if (iVar2 < 1) {
      pcVar12 = *(code **)(in_t9 + 0x46968);
    }
    else {
      do {
        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);
        if (iVar11 < 1) {
          if (iVar11 != 0) {
            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);
          }
          pcVar12 = *(code **)(in_t9 + 0x46968);
          break;
        }
        iVar3 = iVar3 + iVar11;
        pcVar12 = *(code **)(in_t9 + 0x46968);
      } while (iVar3 < iVar2);
    }
    (*pcVar12)(pipefd[1]);
    (**(code **)(in_t9 + 0x46108))(iVar4);
  }
  if (iVar1 == *piVar9) {
    return;
  }
  (**(code **)(&DAT_00046ba8 + in_t9))();
LAB_00061268:
  (**(code **)(in_t9 + 0x46874))
            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)
  ;
  fork_and_exec_self(-1,0);
  return;
}



void launch_duplicate_session
               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  undefined4 local_7c;
  undefined4 local_78;
  undefined1 auStack_74 [80];
  int local_24;
  
  puVar3 = PTR___stack_chk_guard_000a7ec8;
  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;
  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);
  puVar1 = PTR_use_pty_argv_000a70dc;
  if (iVar4 < 0) {
    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);
  }
  else {
    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);
    iVar4 = iVar5;
    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {
      iVar8 = *piVar9;
      while (iVar8 != 0) {
        piVar9 = piVar9 + 1;
        iVar8 = (*(code *)PTR_strlen_000a7ddc)();
        iVar4 = iVar4 + 1 + iVar8;
        iVar8 = *piVar9;
      }
    }
    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);
    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);
    puVar2 = PTR_pty_argv_000a70e4;
    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {
      if (**(int **)PTR_pty_argv_000a70e4 != 0) {
        iVar11 = 0;
        do {
          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);
          iVar10 = *(int *)puVar2;
          puVar6 = (undefined4 *)(iVar10 + iVar11);
          iVar11 = iVar11 + 4;
          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);
          iVar5 = iVar5 + 1 + iVar7;
        } while (*(int *)(iVar10 + iVar11) != 0);
      }
      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;
      if (iVar4 != iVar5) goto LAB_00061268;
    }
    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;
    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);
    noncloexec(local_7c);
    iVar5 = 0;
    fork_and_exec_self(local_78,auStack_74,0);
    (*(code *)PTR_close_000a7934)(local_7c);
    if (0 < iVar4) {
      do {
        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);
        if (iVar11 < 1) {
          if (iVar11 != 0) {
            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);
          }
          break;
        }
        iVar5 = iVar5 + iVar11;
      } while (iVar5 < iVar4);
    }
    (*(code *)PTR_close_000a7934)(local_78);
    (*(code *)PTR_safefree_000a70d4)(iVar8);
  }
  if (local_24 == *(int *)puVar3) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_000a7b74)();
LAB_00061268:
  (*(code *)PTR___assert_fail_000a7840)
            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,
             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);
  fork_and_exec_self(0xffffffff,0);
  return;
}


lui gp,0x5
addiu gp,gp,-0x1f3c
addu gp,gp,t9
addiu sp,sp,-0xa0
lw t9,-0x74a0(gp)
sw s4,0x90(sp)
lw s4,-0x71c8(gp)
sw s3,0x8c(sp)
or s3,a0,zero
addiu a0,sp,0x24
sw gp,0x18(sp)
sw ra,0x9c(sp)
sw s6,0x98(sp)
sw s5,0x94(sp)
sw s2,0x88(sp)
sw s1,0x84(sp)
sw s0,0x80(sp)
lw v0,0x0(s4)
sw v0,0x7c(sp)
jalr t9
_nop
bltz v0,0x00061244
_lw gp,0x18(sp)
lw s5,-0x7fb4(gp)
lw t9,-0x7fb0(gp)
jalr t9
_or a0,s3,zero
lw v1,0x0(s5)
or s0,v0,zero
beq v1,zero,0x00061094
_lw gp,0x18(sp)
lw v1,-0x7fac(gp)
lw s2,0x0(v1)
beq s2,zero,0x00061094
_nop
lw a0,0x0(s2)
beq a0,zero,0x00061094
_addiu s2,s2,0x4
or s1,v0,zero
lw t9,-0x72b4(gp)
addiu s2,s2,0x4
jalr t9
_addiu s1,s1,0x1
lw a0,-0x4(s2)
addu s1,s1,v0
lw gp,0x18(sp)
bne a0,zero,0x00061068
_or v0,s1,zero
b 0x0006109c
_lw t9,-0x7fc0(gp)
or s1,s0,zero
lw t9,-0x7fc0(gp)
li a1,0x1
jalr t9
_or a0,v0,zero
or a0,s3,zero
lw gp,0x18(sp)
or a1,v0,zero
lw t9,-0x7fa8(gp)
jalr t9
_or s3,v0,zero
lw v0,0x0(s5)
beq v0,zero,0x00061134
_lw gp,0x18(sp)
lw s6,-0x7fac(gp)
lw v0,0x0(s6)
beq v0,zero,0x00061138
_lw a3,-0x7fb8(gp)
lw a1,0x0(v0)
beq a1,zero,0x0006112c
_nop
or s5,zero,zero
lw t9,-0x7828(gp)
addu a0,s3,s0
jalr t9
_addiu s0,s0,0x1
lw s2,0x0(s6)
lw gp,0x18(sp)
addu v0,s2,s5
addiu s5,s5,0x4
lw t9,-0x72b4(gp)
lw a0,0x0(v0)
jalr t9
_addu s2,s2,s5
lw a1,0x0(s2)
addu s0,s0,v0
bne a1,zero,0x000610ec
_lw gp,0x18(sp)
bne s1,s0,0x00061268
_lw a3,-0x7fb8(gp)
lw a3,-0x7fb8(gp)
addiu s0,sp,0x2c
lw v0,0x24(sp)
li a2,0x50
lw t9,-0x72d0(gp)
li a1,0x1
addiu a3,a3,-0x5c
sw s1,0x14(sp)
or a0,s0,zero
jalr t9
_sw v0,0x10(sp)
lw gp,0x18(sp)
lw t9,-0x7fa4(gp)
bal 0x0006bfb4
_lw a0,0x24(sp)
or a2,zero,zero
lw gp,0x18(sp)
or a1,s0,zero
lw a0,0x28(sp)
lw t9,-0x7fa0(gp)
bal 0x00060d40
_or s0,zero,zero
lw gp,0x18(sp)
lw t9,-0x775c(gp)
jalr t9
_lw a0,0x24(sp)
bgtz s1,0x000611bc
_lw gp,0x18(sp)
b 0x000611f4
_lw t9,-0x775c(gp)
addu s0,s0,v0
slt v0,s0,s1
beq v0,zero,0x000611f4
_lw t9,-0x775c(gp)
lw t9,-0x729c(gp)
subu a2,s1,s0
lw a0,0x28(sp)
jalr t9
_addu a1,s3,s0
bgtz v0,0x000611ac
_lw gp,0x18(sp)
beq v0,zero,0x000611f0
_lw a0,-0x7fb8(gp)
lw t9,-0x76b4(gp)
jalr t9
_addiu a0,a0,-0x50
lw gp,0x18(sp)
lw t9,-0x775c(gp)
jalr t9
_lw a0,0x28(sp)
lw gp,0x18(sp)
lw t9,-0x7fbc(gp)
jalr t9
_or a0,s3,zero
lw gp,0x18(sp)
lw v1,0x7c(sp)
lw v0,0x0(s4)
bne v1,v0,0x0006125c
_lw ra,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
jr ra
_addiu sp,sp,0xa0
lw a0,-0x7fb8(gp)
lw t9,-0x76b4(gp)
jalr t9
_addiu a0,a0,-0x70
b 0x00061210
_lw gp,0x18(sp)
lw t9,-0x751c(gp)
jalr t9
_nop
li a2,0xb4
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7850(gp)
addiu a3,a3,0x6ac
addiu a1,a1,-0xa8
jalr t9
_addiu a0,a0,-0x68
(translation_unit "void launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}\n\n" (function_definition "void launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}" primitive_type (function_declarator "launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined1 auStack_74 [80];" type_identifier (array_declarator "auStack_74 [80]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_000a7ec8;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000a7ec8" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000a7ec8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000a7ec8" * (cast_expression "(int *)PTR___stack_chk_guard_000a7ec8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);" (assignment_expression "iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c)" identifier = (call_expression "(*(code *)PTR_pipe_000a7bf0)(&local_7c)" (parenthesized_expression "(*(code *)PTR_pipe_000a7bf0)" ( (pointer_expression "*(code *)PTR_pipe_000a7bf0" * (cast_expression "(code *)PTR_pipe_000a7bf0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_7c)" ( (pointer_expression "&local_7c" & identifier) )))) ;) (expression_statement "puVar1 = PTR_use_pty_argv_000a70dc;" (assignment_expression "puVar1 = PTR_use_pty_argv_000a70dc" identifier = identifier) ;) (if_statement "if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }" { (expression_statement "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);" (call_expression "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70)" (parenthesized_expression "(*(code *)PTR_perror_000a79dc)" ( (pointer_expression "*(code *)PTR_perror_000a79dc" * (cast_expression "(code *)PTR_perror_000a79dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70)" ( (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" else (compound_statement "{\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" { (expression_statement "iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);" (assignment_expression "iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1)" identifier = (call_expression "(*(code *)PTR_conf_serialised_size_000a70e0)(param_1)" (parenthesized_expression "(*(code *)PTR_conf_serialised_size_000a70e0)" ( (pointer_expression "*(code *)PTR_conf_serialised_size_000a70e0" * (cast_expression "(code *)PTR_conf_serialised_size_000a70e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) (if_statement "if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }" if (parenthesized_expression "((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0))" ( (binary_expression "(*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)" (parenthesized_expression "(*(int *)puVar1 != 0)" ( (binary_expression "*(int *)puVar1 != 0" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)" ( (comma_expression "piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0" (assignment_expression "piVar9 = *(int **)PTR_pty_argv_000a70e4" identifier = (pointer_expression "*(int **)PTR_pty_argv_000a70e4" * (cast_expression "(int **)PTR_pty_argv_000a70e4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) , (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }" { (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (while_statement "while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }" while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }" { (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = (*(code *)PTR_strlen_000a7ddc)();" (assignment_expression "iVar8 = (*(code *)PTR_strlen_000a7ddc)()" identifier = (call_expression "(*(code *)PTR_strlen_000a7ddc)()" (parenthesized_expression "(*(code *)PTR_strlen_000a7ddc)" ( (pointer_expression "*(code *)PTR_strlen_000a7ddc" * (cast_expression "(code *)PTR_strlen_000a7ddc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = iVar4 + 1 + iVar8;" (assignment_expression "iVar4 = iVar4 + 1 + iVar8" identifier = (binary_expression "iVar4 + 1 + iVar8" (binary_expression "iVar4 + 1" identifier + number_literal) + identifier)) ;) (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) })) (expression_statement "iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);" (assignment_expression "iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1)" identifier = (call_expression "(*(code *)PTR_safemalloc_000a70d0)(iVar4,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000a70d0)" ( (pointer_expression "*(code *)PTR_safemalloc_000a70d0" * (cast_expression "(code *)PTR_safemalloc_000a70d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,1)" ( identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);" (call_expression "(*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8)" (parenthesized_expression "(*(code *)PTR_conf_serialise_000a70e8)" ( (pointer_expression "*(code *)PTR_conf_serialise_000a70e8" * (cast_expression "(code *)PTR_conf_serialise_000a70e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_pty_argv_000a70e4;" (assignment_expression "puVar2 = PTR_pty_argv_000a70e4" identifier = identifier) ;) (if_statement "if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }" if (parenthesized_expression "((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0))" ( (binary_expression "(*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)" (parenthesized_expression "(*(int *)puVar1 != 0)" ( (binary_expression "*(int *)puVar1 != 0" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)" ( (binary_expression "*(int **)PTR_pty_argv_000a70e4 != (int *)0x0" (pointer_expression "*(int **)PTR_pty_argv_000a70e4" * (cast_expression "(int **)PTR_pty_argv_000a70e4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }" { (if_statement "if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }" if (parenthesized_expression "(**(int **)PTR_pty_argv_000a70e4 != 0)" ( (binary_expression "**(int **)PTR_pty_argv_000a70e4 != 0" (pointer_expression "**(int **)PTR_pty_argv_000a70e4" * (pointer_expression "*(int **)PTR_pty_argv_000a70e4" * (cast_expression "(int **)PTR_pty_argv_000a70e4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) != number_literal) )) (compound_statement "{\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);" do (compound_statement "{\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        }" { (expression_statement "(*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);" (call_expression "(*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5)" (parenthesized_expression "(*(code *)PTR_strcpy_000a7868)" ( (pointer_expression "*(code *)PTR_strcpy_000a7868" * (cast_expression "(code *)PTR_strcpy_000a7868" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8 + iVar5)" ( (binary_expression "iVar8 + iVar5" identifier + identifier) ))) ;) (expression_statement "iVar10 = *(int *)puVar2;" (assignment_expression "iVar10 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar6 = (undefined4 *)(iVar10 + iVar11);" (assignment_expression "puVar6 = (undefined4 *)(iVar10 + iVar11)" identifier = (cast_expression "(undefined4 *)(iVar10 + iVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar11)" ( (binary_expression "iVar10 + iVar11" identifier + identifier) )))) ;) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" identifier = (binary_expression "iVar11 + 4" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6)" identifier = (call_expression "(*(code *)PTR_strlen_000a7ddc)(*puVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000a7ddc)" ( (pointer_expression "*(code *)PTR_strlen_000a7ddc" * (cast_expression "(code *)PTR_strlen_000a7ddc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar6)" ( (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "iVar5 = iVar5 + 1 + iVar7;" (assignment_expression "iVar5 = iVar5 + 1 + iVar7" identifier = (binary_expression "iVar5 + 1 + iVar7" (binary_expression "iVar5 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(*(int *)(iVar10 + iVar11) != 0)" ( (binary_expression "*(int *)(iVar10 + iVar11) != 0" (pointer_expression "*(int *)(iVar10 + iVar11)" * (cast_expression "(int *)(iVar10 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar11)" ( (binary_expression "iVar10 + iVar11" identifier + identifier) )))) != number_literal) )) ;) })) (expression_statement "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;" (assignment_expression "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8" identifier = identifier) ;) (if_statement "if (iVar4 != iVar5) goto LAB_00061268;" if (parenthesized_expression "(iVar4 != iVar5)" ( (binary_expression "iVar4 != iVar5" identifier != identifier) )) (goto_statement "goto LAB_00061268;" goto statement_identifier ;)) })) (expression_statement "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;" (assignment_expression "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c" identifier = (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);" (call_expression "(*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000a7dc0)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000a7dc0" * (cast_expression "(code *)PTR___sprintf_chk_000a7dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_74,1,0x50,param_4,local_7c,iVar4)" ( identifier , number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "noncloexec(local_7c);" (call_expression "noncloexec(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "fork_and_exec_self(local_78,auStack_74,0);" (call_expression "fork_and_exec_self(local_78,auStack_74,0)" identifier (argument_list "(local_78,auStack_74,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_close_000a7934)(local_7c);" (call_expression "(*(code *)PTR_close_000a7934)(local_7c)" (parenthesized_expression "(*(code *)PTR_close_000a7934)" ( (pointer_expression "*(code *)PTR_close_000a7934" * (cast_expression "(code *)PTR_close_000a7934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_7c)" ( identifier ))) ;) (if_statement "if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }" { (do_statement "do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);" do (compound_statement "{\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      }" { (expression_statement "iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);" (assignment_expression "iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5)" identifier = (call_expression "(*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5)" (parenthesized_expression "(*(code *)PTR_write_000a7df4)" ( (pointer_expression "*(code *)PTR_write_000a7df4" * (cast_expression "(code *)PTR_write_000a7df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_78,iVar8 + iVar5,iVar4 - iVar5)" ( identifier , (binary_expression "iVar8 + iVar5" identifier + identifier) , (binary_expression "iVar4 - iVar5" identifier - identifier) )))) ;) (if_statement "if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }" { (if_statement "if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }" { (expression_statement "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);" (call_expression "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50)" (parenthesized_expression "(*(code *)PTR_perror_000a79dc)" ( (pointer_expression "*(code *)PTR_perror_000a79dc" * (cast_expression "(code *)PTR_perror_000a79dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50)" ( (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50" identifier + number_literal) ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar5 = iVar5 + iVar11;" (assignment_expression "iVar5 = iVar5 + iVar11" identifier = (binary_expression "iVar5 + iVar11" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) ;) })) (expression_statement "(*(code *)PTR_close_000a7934)(local_78);" (call_expression "(*(code *)PTR_close_000a7934)(local_78)" (parenthesized_expression "(*(code *)PTR_close_000a7934)" ( (pointer_expression "*(code *)PTR_close_000a7934" * (cast_expression "(code *)PTR_close_000a7934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_safefree_000a70d4)(iVar8);" (call_expression "(*(code *)PTR_safefree_000a70d4)(iVar8)" (parenthesized_expression "(*(code *)PTR_safefree_000a70d4)" ( (pointer_expression "*(code *)PTR_safefree_000a70d4" * (cast_expression "(code *)PTR_safefree_000a70d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) }))) (if_statement "if (local_24 == *(int *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar3)" ( (binary_expression "local_24 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000a7b74)();" (call_expression "(*(code *)PTR___stack_chk_fail_000a7b74)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000a7b74)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000a7b74" * (cast_expression "(code *)PTR___stack_chk_fail_000a7b74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);" (call_expression "(*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_000a7840)" ( (pointer_expression "*(code *)PTR___assert_fail_000a7840" * (cast_expression "(code *)PTR___assert_fail_000a7840" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac)" ( (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68" identifier + number_literal) , (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8" identifier + number_literal) , number_literal , (binary_expression "param_4 + 0x6ac" identifier + number_literal) ))) ;)) (expression_statement "fork_and_exec_self(0xffffffff,0);" (call_expression "fork_and_exec_self(0xffffffff,0)" identifier (argument_list "(0xffffffff,0)" ( number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void launch_duplicate_session(Conf *conf)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  int in_a3;\n  int *piVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  int pipefd [2];\n  char option [80];\n  \n  piVar9 = *(int **)(in_t9 + 0x46efc);\n  iVar1 = *piVar9;\n  iVar2 = (**(code **)(in_t9 + 0x46c24))(pipefd);\n  if (iVar2 < 0) {\n    (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);\n  }\n  else {\n    piVar10 = *(int **)(in_t9 + 0x46110);\n    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);\n    iVar2 = iVar3;\n    if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    iVar4 = (*pcVar12)(iVar2,1);\n    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);\n    if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }\n    in_a3 = in_a3 + -0x5c;\n    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);\n    noncloexec(pipefd[0]);\n    iVar3 = 0;\n    fork_and_exec_self(pipefd[1],option,0);\n    (**(code **)(in_t9 + 0x46968))(pipefd[0]);\n    if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }\n    (*pcVar12)(pipefd[1]);\n    (**(code **)(in_t9 + 0x46108))(iVar4);\n  }\n  if (iVar1 == *piVar9) {\n    return;\n  }\n  (**(code **)(&DAT_00046ba8 + in_t9))();\nLAB_00061268:\n  (**(code **)(in_t9 + 0x46874))\n            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)\n  ;\n  fork_and_exec_self(-1,0);\n  return;\n}\n\n" (function_definition "void launch_duplicate_session(Conf *conf)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  int in_a3;\n  int *piVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  int pipefd [2];\n  char option [80];\n  \n  piVar9 = *(int **)(in_t9 + 0x46efc);\n  iVar1 = *piVar9;\n  iVar2 = (**(code **)(in_t9 + 0x46c24))(pipefd);\n  if (iVar2 < 0) {\n    (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);\n  }\n  else {\n    piVar10 = *(int **)(in_t9 + 0x46110);\n    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);\n    iVar2 = iVar3;\n    if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    iVar4 = (*pcVar12)(iVar2,1);\n    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);\n    if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }\n    in_a3 = in_a3 + -0x5c;\n    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);\n    noncloexec(pipefd[0]);\n    iVar3 = 0;\n    fork_and_exec_self(pipefd[1],option,0);\n    (**(code **)(in_t9 + 0x46968))(pipefd[0]);\n    if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }\n    (*pcVar12)(pipefd[1]);\n    (**(code **)(in_t9 + 0x46108))(iVar4);\n  }\n  if (iVar1 == *piVar9) {\n    return;\n  }\n  (**(code **)(&DAT_00046ba8 + in_t9))();\nLAB_00061268:\n  (**(code **)(in_t9 + 0x46874))\n            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)\n  ;\n  fork_and_exec_self(-1,0);\n  return;\n}" primitive_type (function_declarator "launch_duplicate_session(Conf *conf)" identifier (parameter_list "(Conf *conf)" ( (parameter_declaration "Conf *conf" type_identifier (pointer_declarator "*conf" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  int in_a3;\n  int *piVar7;\n  int iVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  int pipefd [2];\n  char option [80];\n  \n  piVar9 = *(int **)(in_t9 + 0x46efc);\n  iVar1 = *piVar9;\n  iVar2 = (**(code **)(in_t9 + 0x46c24))(pipefd);\n  if (iVar2 < 0) {\n    (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);\n  }\n  else {\n    piVar10 = *(int **)(in_t9 + 0x46110);\n    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);\n    iVar2 = iVar3;\n    if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    iVar4 = (*pcVar12)(iVar2,1);\n    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);\n    if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }\n    in_a3 = in_a3 + -0x5c;\n    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);\n    noncloexec(pipefd[0]);\n    iVar3 = 0;\n    fork_and_exec_self(pipefd[1],option,0);\n    (**(code **)(in_t9 + 0x46968))(pipefd[0]);\n    if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }\n    (*pcVar12)(pipefd[1]);\n    (**(code **)(in_t9 + 0x46108))(iVar4);\n  }\n  if (iVar1 == *piVar9) {\n    return;\n  }\n  (**(code **)(&DAT_00046ba8 + in_t9))();\nLAB_00061268:\n  (**(code **)(in_t9 + 0x46874))\n            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)\n  ;\n  fork_and_exec_self(-1,0);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int pipefd [2];" primitive_type (array_declarator "pipefd [2]" identifier [ number_literal ]) ;) (declaration "char option [80];" primitive_type (array_declarator "option [80]" identifier [ number_literal ]) ;) (expression_statement "piVar9 = *(int **)(in_t9 + 0x46efc);" (assignment_expression "piVar9 = *(int **)(in_t9 + 0x46efc)" identifier = (pointer_expression "*(int **)(in_t9 + 0x46efc)" * (cast_expression "(int **)(in_t9 + 0x46efc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46efc)" ( (binary_expression "in_t9 + 0x46efc" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar9;" (assignment_expression "iVar1 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "iVar2 = (**(code **)(in_t9 + 0x46c24))(pipefd);" (assignment_expression "iVar2 = (**(code **)(in_t9 + 0x46c24))(pipefd)" identifier = (call_expression "(**(code **)(in_t9 + 0x46c24))(pipefd)" (parenthesized_expression "(**(code **)(in_t9 + 0x46c24))" ( (pointer_expression "**(code **)(in_t9 + 0x46c24)" * (pointer_expression "*(code **)(in_t9 + 0x46c24)" * (cast_expression "(code **)(in_t9 + 0x46c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46c24)" ( (binary_expression "in_t9 + 0x46c24" identifier + number_literal) ))))) )) (argument_list "(pipefd)" ( identifier )))) ;) (if_statement "if (iVar2 < 0) {\n    (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);\n  }\n  else {\n    piVar10 = *(int **)(in_t9 + 0x46110);\n    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);\n    iVar2 = iVar3;\n    if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    iVar4 = (*pcVar12)(iVar2,1);\n    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);\n    if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }\n    in_a3 = in_a3 + -0x5c;\n    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);\n    noncloexec(pipefd[0]);\n    iVar3 = 0;\n    fork_and_exec_self(pipefd[1],option,0);\n    (**(code **)(in_t9 + 0x46968))(pipefd[0]);\n    if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }\n    (*pcVar12)(pipefd[1]);\n    (**(code **)(in_t9 + 0x46108))(iVar4);\n  }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);\n  }" { (expression_statement "(**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70);" (call_expression "(**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x70)" (parenthesized_expression "(**(code **)(in_t9 + 0x46a10))" ( (pointer_expression "**(code **)(in_t9 + 0x46a10)" * (pointer_expression "*(code **)(in_t9 + 0x46a10)" * (cast_expression "(code **)(in_t9 + 0x46a10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46a10)" ( (binary_expression "in_t9 + 0x46a10" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x4610c) + -0x70)" ( (binary_expression "*(int *)(in_t9 + 0x4610c) + -0x70" (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    piVar10 = *(int **)(in_t9 + 0x46110);\n    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);\n    iVar2 = iVar3;\n    if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    iVar4 = (*pcVar12)(iVar2,1);\n    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);\n    if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }\n    in_a3 = in_a3 + -0x5c;\n    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);\n    noncloexec(pipefd[0]);\n    iVar3 = 0;\n    fork_and_exec_self(pipefd[1],option,0);\n    (**(code **)(in_t9 + 0x46968))(pipefd[0]);\n    if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }\n    (*pcVar12)(pipefd[1]);\n    (**(code **)(in_t9 + 0x46108))(iVar4);\n  }" else (compound_statement "{\n    piVar10 = *(int **)(in_t9 + 0x46110);\n    iVar3 = (**(code **)(in_t9 + 0x46114))(conf);\n    iVar2 = iVar3;\n    if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    iVar4 = (*pcVar12)(iVar2,1);\n    (**(code **)(in_t9 + 0x4611c))(conf,iVar4);\n    if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }\n    in_a3 = in_a3 + -0x5c;\n    (**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);\n    noncloexec(pipefd[0]);\n    iVar3 = 0;\n    fork_and_exec_self(pipefd[1],option,0);\n    (**(code **)(in_t9 + 0x46968))(pipefd[0]);\n    if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }\n    (*pcVar12)(pipefd[1]);\n    (**(code **)(in_t9 + 0x46108))(iVar4);\n  }" { (expression_statement "piVar10 = *(int **)(in_t9 + 0x46110);" (assignment_expression "piVar10 = *(int **)(in_t9 + 0x46110)" identifier = (pointer_expression "*(int **)(in_t9 + 0x46110)" * (cast_expression "(int **)(in_t9 + 0x46110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46110)" ( (binary_expression "in_t9 + 0x46110" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (**(code **)(in_t9 + 0x46114))(conf);" (assignment_expression "iVar3 = (**(code **)(in_t9 + 0x46114))(conf)" identifier = (call_expression "(**(code **)(in_t9 + 0x46114))(conf)" (parenthesized_expression "(**(code **)(in_t9 + 0x46114))" ( (pointer_expression "**(code **)(in_t9 + 0x46114)" * (pointer_expression "*(code **)(in_t9 + 0x46114)" * (cast_expression "(code **)(in_t9 + 0x46114)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46114)" ( (binary_expression "in_t9 + 0x46114" identifier + number_literal) ))))) )) (argument_list "(conf)" ( identifier )))) ;) (expression_statement "iVar2 = iVar3;" (assignment_expression "iVar2 = iVar3" identifier = identifier) ;) (if_statement "if (((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)) {\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }\n    else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }" if (parenthesized_expression "(((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0))" ( (binary_expression "((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)) ||\n       (*piVar7 == 0)" (parenthesized_expression "((*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0))" ( (binary_expression "(*piVar10 == 0) ||\n        (piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)" (parenthesized_expression "(*piVar10 == 0)" ( (binary_expression "*piVar10 == 0" (pointer_expression "*piVar10" * identifier) == number_literal) )) || (parenthesized_expression "(piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0)" ( (comma_expression "piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118), piVar7 == (int *)0x0" (assignment_expression "piVar7 = (int *)**(undefined4 **)(in_t9 + 0x46118)" identifier = (cast_expression "(int *)**(undefined4 **)(in_t9 + 0x46118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(in_t9 + 0x46118)" * (pointer_expression "*(undefined4 **)(in_t9 + 0x46118)" * (cast_expression "(undefined4 **)(in_t9 + 0x46118)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46118)" ( (binary_expression "in_t9 + 0x46118" identifier + number_literal) ))))))) , (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(*piVar7 == 0)" ( (binary_expression "*piVar7 == 0" (pointer_expression "*piVar7" * identifier) == number_literal) ))) )) (compound_statement "{\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }" { (expression_statement "pcVar12 = *(code **)(in_t9 + 0x46104);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x46104)" identifier = (pointer_expression "*(code **)(in_t9 + 0x46104)" * (cast_expression "(code **)(in_t9 + 0x46104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46104)" ( (binary_expression "in_t9 + 0x46104" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }" else (compound_statement "{\n      do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);\n      pcVar12 = *(code **)(in_t9 + 0x46104);\n    }" { (do_statement "do {\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      } while (*piVar7 != 0);" do (compound_statement "{\n        piVar7 = piVar7 + 1;\n        iVar4 = (**(code **)(in_t9 + 0x46e10))();\n        iVar2 = iVar2 + 1 + iVar4;\n      }" { (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = (**(code **)(in_t9 + 0x46e10))();" (assignment_expression "iVar4 = (**(code **)(in_t9 + 0x46e10))()" identifier = (call_expression "(**(code **)(in_t9 + 0x46e10))()" (parenthesized_expression "(**(code **)(in_t9 + 0x46e10))" ( (pointer_expression "**(code **)(in_t9 + 0x46e10)" * (pointer_expression "*(code **)(in_t9 + 0x46e10)" * (cast_expression "(code **)(in_t9 + 0x46e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46e10)" ( (binary_expression "in_t9 + 0x46e10" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = iVar2 + 1 + iVar4;" (assignment_expression "iVar2 = iVar2 + 1 + iVar4" identifier = (binary_expression "iVar2 + 1 + iVar4" (binary_expression "iVar2 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(*piVar7 != 0)" ( (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" * identifier) != number_literal) )) ;) (expression_statement "pcVar12 = *(code **)(in_t9 + 0x46104);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x46104)" identifier = (pointer_expression "*(code **)(in_t9 + 0x46104)" * (cast_expression "(code **)(in_t9 + 0x46104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46104)" ( (binary_expression "in_t9 + 0x46104" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar4 = (*pcVar12)(iVar2,1);" (assignment_expression "iVar4 = (*pcVar12)(iVar2,1)" identifier = (call_expression "(*pcVar12)(iVar2,1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar2,1)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(in_t9 + 0x4611c))(conf,iVar4);" (call_expression "(**(code **)(in_t9 + 0x4611c))(conf,iVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x4611c))" ( (pointer_expression "**(code **)(in_t9 + 0x4611c)" * (pointer_expression "*(code **)(in_t9 + 0x4611c)" * (cast_expression "(code **)(in_t9 + 0x4611c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x4611c)" ( (binary_expression "in_t9 + 0x4611c" identifier + number_literal) ))))) )) (argument_list "(conf,iVar4)" ( identifier , identifier ))) ;) (if_statement "if (*piVar10 == 0) {\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }\n    else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }" if (parenthesized_expression "(*piVar10 == 0)" ( (binary_expression "*piVar10 == 0" (pointer_expression "*piVar10" * identifier) == number_literal) )) (compound_statement "{\nLAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n    }" { (labeled_statement "LAB_00061134:\n      in_a3 = *(int *)(in_t9 + 0x4610c);" statement_identifier : (expression_statement "in_a3 = *(int *)(in_t9 + 0x4610c);" (assignment_expression "in_a3 = *(int *)(in_t9 + 0x4610c)" identifier = (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }" else (compound_statement "{\n      piVar7 = *(int **)(in_t9 + 0x46118);\n      piVar10 = (int *)*piVar7;\n      in_a3 = *(int *)(in_t9 + 0x4610c);\n      if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }\n    }" { (expression_statement "piVar7 = *(int **)(in_t9 + 0x46118);" (assignment_expression "piVar7 = *(int **)(in_t9 + 0x46118)" identifier = (pointer_expression "*(int **)(in_t9 + 0x46118)" * (cast_expression "(int **)(in_t9 + 0x46118)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46118)" ( (binary_expression "in_t9 + 0x46118" identifier + number_literal) ))))) ;) (expression_statement "piVar10 = (int *)*piVar7;" (assignment_expression "piVar10 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "in_a3 = *(int *)(in_t9 + 0x4610c);" (assignment_expression "in_a3 = *(int *)(in_t9 + 0x4610c)" identifier = (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }\n        in_a3 = *(int *)(in_t9 + 0x4610c);\n        if (iVar2 != iVar3) goto LAB_00061268;\n        goto LAB_00061134;\n      }" { (if_statement "if (*piVar10 != 0) {\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }" if (parenthesized_expression "(*piVar10 != 0)" ( (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) )) (compound_statement "{\n          iVar11 = 0;\n          do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);\n        }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          } while (*(int *)(iVar8 + iVar11) != 0);" do (compound_statement "{\n            (**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);\n            iVar8 = *piVar7;\n            puVar5 = (undefined4 *)(iVar8 + iVar11);\n            iVar11 = iVar11 + 4;\n            iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);\n            iVar3 = iVar3 + 1 + iVar6;\n          }" { (expression_statement "(**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3);" (call_expression "(**(code **)(in_t9 + 0x4689c))(iVar4 + iVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x4689c))" ( (pointer_expression "**(code **)(in_t9 + 0x4689c)" * (pointer_expression "*(code **)(in_t9 + 0x4689c)" * (cast_expression "(code **)(in_t9 + 0x4689c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x4689c)" ( (binary_expression "in_t9 + 0x4689c" identifier + number_literal) ))))) )) (argument_list "(iVar4 + iVar3)" ( (binary_expression "iVar4 + iVar3" identifier + identifier) ))) ;) (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "puVar5 = (undefined4 *)(iVar8 + iVar11);" (assignment_expression "puVar5 = (undefined4 *)(iVar8 + iVar11)" identifier = (cast_expression "(undefined4 *)(iVar8 + iVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" identifier = (binary_expression "iVar11 + 4" identifier + number_literal)) ;) (expression_statement "iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5);" (assignment_expression "iVar6 = (**(code **)(in_t9 + 0x46e10))(*puVar5)" identifier = (call_expression "(**(code **)(in_t9 + 0x46e10))(*puVar5)" (parenthesized_expression "(**(code **)(in_t9 + 0x46e10))" ( (pointer_expression "**(code **)(in_t9 + 0x46e10)" * (pointer_expression "*(code **)(in_t9 + 0x46e10)" * (cast_expression "(code **)(in_t9 + 0x46e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46e10)" ( (binary_expression "in_t9 + 0x46e10" identifier + number_literal) ))))) )) (argument_list "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "iVar3 = iVar3 + 1 + iVar6;" (assignment_expression "iVar3 = iVar3 + 1 + iVar6" identifier = (binary_expression "iVar3 + 1 + iVar6" (binary_expression "iVar3 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(*(int *)(iVar8 + iVar11) != 0)" ( (binary_expression "*(int *)(iVar8 + iVar11) != 0" (pointer_expression "*(int *)(iVar8 + iVar11)" * (cast_expression "(int *)(iVar8 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) != number_literal) )) ;) })) (expression_statement "in_a3 = *(int *)(in_t9 + 0x4610c);" (assignment_expression "in_a3 = *(int *)(in_t9 + 0x4610c)" identifier = (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != iVar3) goto LAB_00061268;" if (parenthesized_expression "(iVar2 != iVar3)" ( (binary_expression "iVar2 != iVar3" identifier != identifier) )) (goto_statement "goto LAB_00061268;" goto statement_identifier ;)) (goto_statement "goto LAB_00061134;" goto statement_identifier ;) })) }))) (expression_statement "in_a3 = in_a3 + -0x5c;" (assignment_expression "in_a3 = in_a3 + -0x5c" identifier = (binary_expression "in_a3 + -0x5c" identifier + number_literal)) ;) (expression_statement "(**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2);" (call_expression "(**(code **)(in_t9 + 0x46df4))(option,1,0x50,in_a3,pipefd[0],iVar2)" (parenthesized_expression "(**(code **)(in_t9 + 0x46df4))" ( (pointer_expression "**(code **)(in_t9 + 0x46df4)" * (pointer_expression "*(code **)(in_t9 + 0x46df4)" * (cast_expression "(code **)(in_t9 + 0x46df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46df4)" ( (binary_expression "in_t9 + 0x46df4" identifier + number_literal) ))))) )) (argument_list "(option,1,0x50,in_a3,pipefd[0],iVar2)" ( identifier , number_literal , number_literal , identifier , (subscript_expression "pipefd[0]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "noncloexec(pipefd[0]);" (call_expression "noncloexec(pipefd[0])" identifier (argument_list "(pipefd[0])" ( (subscript_expression "pipefd[0]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "fork_and_exec_self(pipefd[1],option,0);" (call_expression "fork_and_exec_self(pipefd[1],option,0)" identifier (argument_list "(pipefd[1],option,0)" ( (subscript_expression "pipefd[1]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "(**(code **)(in_t9 + 0x46968))(pipefd[0]);" (call_expression "(**(code **)(in_t9 + 0x46968))(pipefd[0])" (parenthesized_expression "(**(code **)(in_t9 + 0x46968))" ( (pointer_expression "**(code **)(in_t9 + 0x46968)" * (pointer_expression "*(code **)(in_t9 + 0x46968)" * (cast_expression "(code **)(in_t9 + 0x46968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46968)" ( (binary_expression "in_t9 + 0x46968" identifier + number_literal) ))))) )) (argument_list "(pipefd[0])" ( (subscript_expression "pipefd[0]" identifier [ number_literal ]) ))) ;) (if_statement "if (iVar2 < 1) {\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }\n    else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n      pcVar12 = *(code **)(in_t9 + 0x46968);\n    }" { (expression_statement "pcVar12 = *(code **)(in_t9 + 0x46968);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x46968)" identifier = (pointer_expression "*(code **)(in_t9 + 0x46968)" * (cast_expression "(code **)(in_t9 + 0x46968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46968)" ( (binary_expression "in_t9 + 0x46968" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }" else (compound_statement "{\n      do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);\n    }" { (do_statement "do {\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      } while (iVar3 < iVar2);" do (compound_statement "{\n        iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }\n        iVar3 = iVar3 + iVar11;\n        pcVar12 = *(code **)(in_t9 + 0x46968);\n      }" { (expression_statement "iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3);" (assignment_expression "iVar11 = (**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3)" identifier = (call_expression "(**(code **)(in_t9 + 0x46e28))(pipefd[1],iVar4 + iVar3,iVar2 - iVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x46e28))" ( (pointer_expression "**(code **)(in_t9 + 0x46e28)" * (pointer_expression "*(code **)(in_t9 + 0x46e28)" * (cast_expression "(code **)(in_t9 + 0x46e28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46e28)" ( (binary_expression "in_t9 + 0x46e28" identifier + number_literal) ))))) )) (argument_list "(pipefd[1],iVar4 + iVar3,iVar2 - iVar3)" ( (subscript_expression "pipefd[1]" identifier [ number_literal ]) , (binary_expression "iVar4 + iVar3" identifier + identifier) , (binary_expression "iVar2 - iVar3" identifier - identifier) )))) ;) (if_statement "if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n          if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }\n          pcVar12 = *(code **)(in_t9 + 0x46968);\n          break;\n        }" { (if_statement "if (iVar11 != 0) {\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);\n          }" { (expression_statement "(**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50);" (call_expression "(**(code **)(in_t9 + 0x46a10))(*(int *)(in_t9 + 0x4610c) + -0x50)" (parenthesized_expression "(**(code **)(in_t9 + 0x46a10))" ( (pointer_expression "**(code **)(in_t9 + 0x46a10)" * (pointer_expression "*(code **)(in_t9 + 0x46a10)" * (cast_expression "(code **)(in_t9 + 0x46a10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46a10)" ( (binary_expression "in_t9 + 0x46a10" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x4610c) + -0x50)" ( (binary_expression "*(int *)(in_t9 + 0x4610c) + -0x50" (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar12 = *(code **)(in_t9 + 0x46968);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x46968)" identifier = (pointer_expression "*(code **)(in_t9 + 0x46968)" * (cast_expression "(code **)(in_t9 + 0x46968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46968)" ( (binary_expression "in_t9 + 0x46968" identifier + number_literal) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar3 = iVar3 + iVar11;" (assignment_expression "iVar3 = iVar3 + iVar11" identifier = (binary_expression "iVar3 + iVar11" identifier + identifier)) ;) (expression_statement "pcVar12 = *(code **)(in_t9 + 0x46968);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x46968)" identifier = (pointer_expression "*(code **)(in_t9 + 0x46968)" * (cast_expression "(code **)(in_t9 + 0x46968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46968)" ( (binary_expression "in_t9 + 0x46968" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar3 < iVar2)" ( (binary_expression "iVar3 < iVar2" identifier < identifier) )) ;) }))) (expression_statement "(*pcVar12)(pipefd[1]);" (call_expression "(*pcVar12)(pipefd[1])" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(pipefd[1])" ( (subscript_expression "pipefd[1]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(in_t9 + 0x46108))(iVar4);" (call_expression "(**(code **)(in_t9 + 0x46108))(iVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x46108))" ( (pointer_expression "**(code **)(in_t9 + 0x46108)" * (pointer_expression "*(code **)(in_t9 + 0x46108)" * (cast_expression "(code **)(in_t9 + 0x46108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46108)" ( (binary_expression "in_t9 + 0x46108" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) }))) (if_statement "if (iVar1 == *piVar9) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *piVar9)" ( (binary_expression "iVar1 == *piVar9" identifier == (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(&DAT_00046ba8 + in_t9))();" (call_expression "(**(code **)(&DAT_00046ba8 + in_t9))()" (parenthesized_expression "(**(code **)(&DAT_00046ba8 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00046ba8 + in_t9)" * (pointer_expression "*(code **)(&DAT_00046ba8 + in_t9)" * (cast_expression "(code **)(&DAT_00046ba8 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00046ba8 + in_t9)" ( (binary_expression "&DAT_00046ba8 + in_t9" (pointer_expression "&DAT_00046ba8" & identifier) + identifier) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00061268:\n  (**(code **)(in_t9 + 0x46874))\n            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)\n  ;" statement_identifier : (expression_statement "(**(code **)(in_t9 + 0x46874))\n            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)\n  ;" (call_expression "(**(code **)(in_t9 + 0x46874))\n            (*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)" (parenthesized_expression "(**(code **)(in_t9 + 0x46874))" ( (pointer_expression "**(code **)(in_t9 + 0x46874)" * (pointer_expression "*(code **)(in_t9 + 0x46874)" * (cast_expression "(code **)(in_t9 + 0x46874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x46874)" ( (binary_expression "in_t9 + 0x46874" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x4610c) + -0x68,*(int *)(in_t9 + 0x4610c) + -0xa8,0xb4,in_a3 + 0x6ac)" ( (binary_expression "*(int *)(in_t9 + 0x4610c) + -0x68" (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(in_t9 + 0x4610c) + -0xa8" (pointer_expression "*(int *)(in_t9 + 0x4610c)" * (cast_expression "(int *)(in_t9 + 0x4610c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x4610c)" ( (binary_expression "in_t9 + 0x4610c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "in_a3 + 0x6ac" identifier + number_literal) ))) ;)) (expression_statement "fork_and_exec_self(-1,0);" (call_expression "fork_and_exec_self(-1,0)" identifier (argument_list "(-1,0)" ( number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}\n\n" (function_definition "void launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}" primitive_type (function_declarator "launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined1 auStack_74 [80];" type_identifier (array_declarator "auStack_74 [80]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_000a7ec8;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000a7ec8" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000a7ec8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000a7ec8" * (cast_expression "(int *)PTR___stack_chk_guard_000a7ec8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);" (assignment_expression "iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c)" identifier = (call_expression "(*(code *)PTR_pipe_000a7bf0)(&local_7c)" (parenthesized_expression "(*(code *)PTR_pipe_000a7bf0)" ( (pointer_expression "*(code *)PTR_pipe_000a7bf0" * (cast_expression "(code *)PTR_pipe_000a7bf0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_7c)" ( (pointer_expression "&local_7c" & identifier) )))) ;) (expression_statement "puVar1 = PTR_use_pty_argv_000a70dc;" (assignment_expression "puVar1 = PTR_use_pty_argv_000a70dc" identifier = identifier) ;) (if_statement "if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }" { (expression_statement "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);" (call_expression "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70)" (parenthesized_expression "(*(code *)PTR_perror_000a79dc)" ( (pointer_expression "*(code *)PTR_perror_000a79dc" * (cast_expression "(code *)PTR_perror_000a79dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70)" ( (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" else (compound_statement "{\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" { (expression_statement "iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);" (assignment_expression "iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1)" identifier = (call_expression "(*(code *)PTR_conf_serialised_size_000a70e0)(param_1)" (parenthesized_expression "(*(code *)PTR_conf_serialised_size_000a70e0)" ( (pointer_expression "*(code *)PTR_conf_serialised_size_000a70e0" * (cast_expression "(code *)PTR_conf_serialised_size_000a70e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) (if_statement "if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }" if (parenthesized_expression "((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0))" ( (binary_expression "(*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)" (parenthesized_expression "(*(int *)puVar1 != 0)" ( (binary_expression "*(int *)puVar1 != 0" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)" ( (comma_expression "piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0" (assignment_expression "piVar9 = *(int **)PTR_pty_argv_000a70e4" identifier = (pointer_expression "*(int **)PTR_pty_argv_000a70e4" * (cast_expression "(int **)PTR_pty_argv_000a70e4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) , (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }" { (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (while_statement "while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }" while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }" { (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = (*(code *)PTR_strlen_000a7ddc)();" (assignment_expression "iVar8 = (*(code *)PTR_strlen_000a7ddc)()" identifier = (call_expression "(*(code *)PTR_strlen_000a7ddc)()" (parenthesized_expression "(*(code *)PTR_strlen_000a7ddc)" ( (pointer_expression "*(code *)PTR_strlen_000a7ddc" * (cast_expression "(code *)PTR_strlen_000a7ddc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = iVar4 + 1 + iVar8;" (assignment_expression "iVar4 = iVar4 + 1 + iVar8" identifier = (binary_expression "iVar4 + 1 + iVar8" (binary_expression "iVar4 + 1" identifier + number_literal) + identifier)) ;) (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) })) (expression_statement "iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);" (assignment_expression "iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1)" identifier = (call_expression "(*(code *)PTR_safemalloc_000a70d0)(iVar4,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000a70d0)" ( (pointer_expression "*(code *)PTR_safemalloc_000a70d0" * (cast_expression "(code *)PTR_safemalloc_000a70d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,1)" ( identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);" (call_expression "(*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8)" (parenthesized_expression "(*(code *)PTR_conf_serialise_000a70e8)" ( (pointer_expression "*(code *)PTR_conf_serialise_000a70e8" * (cast_expression "(code *)PTR_conf_serialise_000a70e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,iVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_pty_argv_000a70e4;" (assignment_expression "puVar2 = PTR_pty_argv_000a70e4" identifier = identifier) ;) (if_statement "if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }" if (parenthesized_expression "((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0))" ( (binary_expression "(*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)" (parenthesized_expression "(*(int *)puVar1 != 0)" ( (binary_expression "*(int *)puVar1 != 0" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)" ( (binary_expression "*(int **)PTR_pty_argv_000a70e4 != (int *)0x0" (pointer_expression "*(int **)PTR_pty_argv_000a70e4" * (cast_expression "(int **)PTR_pty_argv_000a70e4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }" { (if_statement "if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }" if (parenthesized_expression "(**(int **)PTR_pty_argv_000a70e4 != 0)" ( (binary_expression "**(int **)PTR_pty_argv_000a70e4 != 0" (pointer_expression "**(int **)PTR_pty_argv_000a70e4" * (pointer_expression "*(int **)PTR_pty_argv_000a70e4" * (cast_expression "(int **)PTR_pty_argv_000a70e4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) != number_literal) )) (compound_statement "{\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);" do (compound_statement "{\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        }" { (expression_statement "(*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);" (call_expression "(*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5)" (parenthesized_expression "(*(code *)PTR_strcpy_000a7868)" ( (pointer_expression "*(code *)PTR_strcpy_000a7868" * (cast_expression "(code *)PTR_strcpy_000a7868" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8 + iVar5)" ( (binary_expression "iVar8 + iVar5" identifier + identifier) ))) ;) (expression_statement "iVar10 = *(int *)puVar2;" (assignment_expression "iVar10 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar6 = (undefined4 *)(iVar10 + iVar11);" (assignment_expression "puVar6 = (undefined4 *)(iVar10 + iVar11)" identifier = (cast_expression "(undefined4 *)(iVar10 + iVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar11)" ( (binary_expression "iVar10 + iVar11" identifier + identifier) )))) ;) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" identifier = (binary_expression "iVar11 + 4" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6)" identifier = (call_expression "(*(code *)PTR_strlen_000a7ddc)(*puVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000a7ddc)" ( (pointer_expression "*(code *)PTR_strlen_000a7ddc" * (cast_expression "(code *)PTR_strlen_000a7ddc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar6)" ( (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "iVar5 = iVar5 + 1 + iVar7;" (assignment_expression "iVar5 = iVar5 + 1 + iVar7" identifier = (binary_expression "iVar5 + 1 + iVar7" (binary_expression "iVar5 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(*(int *)(iVar10 + iVar11) != 0)" ( (binary_expression "*(int *)(iVar10 + iVar11) != 0" (pointer_expression "*(int *)(iVar10 + iVar11)" * (cast_expression "(int *)(iVar10 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar11)" ( (binary_expression "iVar10 + iVar11" identifier + identifier) )))) != number_literal) )) ;) })) (expression_statement "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;" (assignment_expression "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8" identifier = identifier) ;) (if_statement "if (iVar4 != iVar5) goto LAB_00061268;" if (parenthesized_expression "(iVar4 != iVar5)" ( (binary_expression "iVar4 != iVar5" identifier != identifier) )) (goto_statement "goto LAB_00061268;" goto statement_identifier ;)) })) (expression_statement "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;" (assignment_expression "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c" identifier = (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);" (call_expression "(*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000a7dc0)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000a7dc0" * (cast_expression "(code *)PTR___sprintf_chk_000a7dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_74,1,0x50,param_4,local_7c,iVar4)" ( identifier , number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "noncloexec(local_7c);" (call_expression "noncloexec(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "fork_and_exec_self(local_78,auStack_74,0);" (call_expression "fork_and_exec_self(local_78,auStack_74,0)" identifier (argument_list "(local_78,auStack_74,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_close_000a7934)(local_7c);" (call_expression "(*(code *)PTR_close_000a7934)(local_7c)" (parenthesized_expression "(*(code *)PTR_close_000a7934)" ( (pointer_expression "*(code *)PTR_close_000a7934" * (cast_expression "(code *)PTR_close_000a7934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_7c)" ( identifier ))) ;) (if_statement "if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }" { (do_statement "do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);" do (compound_statement "{\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      }" { (expression_statement "iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);" (assignment_expression "iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5)" identifier = (call_expression "(*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5)" (parenthesized_expression "(*(code *)PTR_write_000a7df4)" ( (pointer_expression "*(code *)PTR_write_000a7df4" * (cast_expression "(code *)PTR_write_000a7df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_78,iVar8 + iVar5,iVar4 - iVar5)" ( identifier , (binary_expression "iVar8 + iVar5" identifier + identifier) , (binary_expression "iVar4 - iVar5" identifier - identifier) )))) ;) (if_statement "if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }" { (if_statement "if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }" { (expression_statement "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);" (call_expression "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50)" (parenthesized_expression "(*(code *)PTR_perror_000a79dc)" ( (pointer_expression "*(code *)PTR_perror_000a79dc" * (cast_expression "(code *)PTR_perror_000a79dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50)" ( (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50" identifier + number_literal) ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar5 = iVar5 + iVar11;" (assignment_expression "iVar5 = iVar5 + iVar11" identifier = (binary_expression "iVar5 + iVar11" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) ;) })) (expression_statement "(*(code *)PTR_close_000a7934)(local_78);" (call_expression "(*(code *)PTR_close_000a7934)(local_78)" (parenthesized_expression "(*(code *)PTR_close_000a7934)" ( (pointer_expression "*(code *)PTR_close_000a7934" * (cast_expression "(code *)PTR_close_000a7934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_safefree_000a70d4)(iVar8);" (call_expression "(*(code *)PTR_safefree_000a70d4)(iVar8)" (parenthesized_expression "(*(code *)PTR_safefree_000a70d4)" ( (pointer_expression "*(code *)PTR_safefree_000a70d4" * (cast_expression "(code *)PTR_safefree_000a70d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) }))) (if_statement "if (local_24 == *(int *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar3)" ( (binary_expression "local_24 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000a7b74)();" (call_expression "(*(code *)PTR___stack_chk_fail_000a7b74)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000a7b74)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000a7b74" * (cast_expression "(code *)PTR___stack_chk_fail_000a7b74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);" (call_expression "(*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_000a7840)" ( (pointer_expression "*(code *)PTR___assert_fail_000a7840" * (cast_expression "(code *)PTR___assert_fail_000a7840" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac)" ( (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68" identifier + number_literal) , (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8" identifier + number_literal) , number_literal , (binary_expression "param_4 + 0x6ac" identifier + number_literal) ))) ;)) (expression_statement "fork_and_exec_self(0xffffffff,0);" (call_expression "fork_and_exec_self(0xffffffff,0)" identifier (argument_list "(0xffffffff,0)" ( number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (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) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}" (primitive_type "void") (function_declarator "launch_duplicate_session\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)" (identifier "launch_duplicate_session") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined *param_4" (type_identifier "undefined") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 auStack_74 [80];\n  int local_24;\n  \n  puVar3 = PTR___stack_chk_guard_000a7ec8;\n  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;\n  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);\n  puVar1 = PTR_use_pty_argv_000a70dc;\n  if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }\n  if (local_24 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_000a7b74)();\nLAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);\n  fork_and_exec_self(0xffffffff,0);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 local_7c;" (type_identifier "undefined4") (identifier "local_7c") (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "undefined1 auStack_74 [80];" (type_identifier "undefined1") (array_declarator "auStack_74 [80]" (identifier "auStack_74") ([ "[") (number_literal "80") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_000a7ec8;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000a7ec8" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_000a7ec8")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000a7ec8" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000a7ec8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000a7ec8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000a7ec8")))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);" (assignment_expression "iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_pipe_000a7bf0)(&local_7c)" (parenthesized_expression "(*(code *)PTR_pipe_000a7bf0)" (( "(") (pointer_expression "*(code *)PTR_pipe_000a7bf0" (* "*") (cast_expression "(code *)PTR_pipe_000a7bf0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pipe_000a7bf0"))) () ")")) (argument_list "(&local_7c)" (( "(") (pointer_expression "&local_7c" (& "&") (identifier "local_7c")) () ")")))) (; ";")) (expression_statement "puVar1 = PTR_use_pty_argv_000a70dc;" (assignment_expression "puVar1 = PTR_use_pty_argv_000a70dc" (identifier "puVar1") (= "=") (identifier "PTR_use_pty_argv_000a70dc")) (; ";")) (if_statement "if (iVar4 < 0) {\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }\n  else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);\n  }" ({ "{") (expression_statement "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);" (call_expression "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70)" (parenthesized_expression "(*(code *)PTR_perror_000a79dc)" (( "(") (pointer_expression "*(code *)PTR_perror_000a79dc" (* "*") (cast_expression "(code *)PTR_perror_000a79dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_perror_000a79dc"))) () ")")) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70)" (( "(") (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70" (identifier "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8") (+ "+") (number_literal "-0x70")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" (else "else") (compound_statement "{\n    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);\n    iVar4 = iVar5;\n    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }\n    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);\n    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);\n    puVar2 = PTR_pty_argv_000a70e4;\n    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }\n    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;\n    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);\n    noncloexec(local_7c);\n    iVar5 = 0;\n    fork_and_exec_self(local_78,auStack_74,0);\n    (*(code *)PTR_close_000a7934)(local_7c);\n    if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }\n    (*(code *)PTR_close_000a7934)(local_78);\n    (*(code *)PTR_safefree_000a70d4)(iVar8);\n  }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);" (assignment_expression "iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_conf_serialised_size_000a70e0)(param_1)" (parenthesized_expression "(*(code *)PTR_conf_serialised_size_000a70e0)" (( "(") (pointer_expression "*(code *)PTR_conf_serialised_size_000a70e0" (* "*") (cast_expression "(code *)PTR_conf_serialised_size_000a70e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_conf_serialised_size_000a70e0"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" (identifier "iVar4") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }" (if "if") (parenthesized_expression "((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0))" (( "(") (binary_expression "(*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)" (parenthesized_expression "(*(int *)puVar1 != 0)" (( "(") (binary_expression "*(int *)puVar1 != 0" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)" (( "(") (comma_expression "piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0" (assignment_expression "piVar9 = *(int **)PTR_pty_argv_000a70e4" (identifier "piVar9") (= "=") (pointer_expression "*(int **)PTR_pty_argv_000a70e4" (* "*") (cast_expression "(int **)PTR_pty_argv_000a70e4" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_pty_argv_000a70e4")))) (, ",") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      iVar8 = *piVar9;\n      while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }\n    }" ({ "{") (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" (identifier "iVar8") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (while_statement "while (iVar8 != 0) {\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }" (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar9 = piVar9 + 1;\n        iVar8 = (*(code *)PTR_strlen_000a7ddc)();\n        iVar4 = iVar4 + 1 + iVar8;\n        iVar8 = *piVar9;\n      }" ({ "{") (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_strlen_000a7ddc)();" (assignment_expression "iVar8 = (*(code *)PTR_strlen_000a7ddc)()" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_strlen_000a7ddc)()" (parenthesized_expression "(*(code *)PTR_strlen_000a7ddc)" (( "(") (pointer_expression "*(code *)PTR_strlen_000a7ddc" (* "*") (cast_expression "(code *)PTR_strlen_000a7ddc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000a7ddc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = iVar4 + 1 + iVar8;" (assignment_expression "iVar4 = iVar4 + 1 + iVar8" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1 + iVar8" (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" (identifier "iVar8") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);" (assignment_expression "iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_safemalloc_000a70d0)(iVar4,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000a70d0)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000a70d0" (* "*") (cast_expression "(code *)PTR_safemalloc_000a70d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000a70d0"))) () ")")) (argument_list "(iVar4,1)" (( "(") (identifier "iVar4") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);" (call_expression "(*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8)" (parenthesized_expression "(*(code *)PTR_conf_serialise_000a70e8)" (( "(") (pointer_expression "*(code *)PTR_conf_serialise_000a70e8" (* "*") (cast_expression "(code *)PTR_conf_serialise_000a70e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_conf_serialise_000a70e8"))) () ")")) (argument_list "(param_1,iVar8)" (( "(") (identifier "param_1") (, ",") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "puVar2 = PTR_pty_argv_000a70e4;" (assignment_expression "puVar2 = PTR_pty_argv_000a70e4" (identifier "puVar2") (= "=") (identifier "PTR_pty_argv_000a70e4")) (; ";")) (if_statement "if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }" (if "if") (parenthesized_expression "((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0))" (( "(") (binary_expression "(*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)" (parenthesized_expression "(*(int *)puVar1 != 0)" (( "(") (binary_expression "*(int *)puVar1 != 0" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)" (( "(") (binary_expression "*(int **)PTR_pty_argv_000a70e4 != (int *)0x0" (pointer_expression "*(int **)PTR_pty_argv_000a70e4" (* "*") (cast_expression "(int **)PTR_pty_argv_000a70e4" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_pty_argv_000a70e4"))) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }\n      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;\n      if (iVar4 != iVar5) goto LAB_00061268;\n    }" ({ "{") (if_statement "if (**(int **)PTR_pty_argv_000a70e4 != 0) {\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }" (if "if") (parenthesized_expression "(**(int **)PTR_pty_argv_000a70e4 != 0)" (( "(") (binary_expression "**(int **)PTR_pty_argv_000a70e4 != 0" (pointer_expression "**(int **)PTR_pty_argv_000a70e4" (* "*") (pointer_expression "*(int **)PTR_pty_argv_000a70e4" (* "*") (cast_expression "(int **)PTR_pty_argv_000a70e4" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_pty_argv_000a70e4")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar11 = 0;\n        do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);\n      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        } while (*(int *)(iVar10 + iVar11) != 0);" (do "do") (compound_statement "{\n          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);\n          iVar10 = *(int *)puVar2;\n          puVar6 = (undefined4 *)(iVar10 + iVar11);\n          iVar11 = iVar11 + 4;\n          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);\n          iVar5 = iVar5 + 1 + iVar7;\n        }" ({ "{") (expression_statement "(*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);" (call_expression "(*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5)" (parenthesized_expression "(*(code *)PTR_strcpy_000a7868)" (( "(") (pointer_expression "*(code *)PTR_strcpy_000a7868" (* "*") (cast_expression "(code *)PTR_strcpy_000a7868" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcpy_000a7868"))) () ")")) (argument_list "(iVar8 + iVar5)" (( "(") (binary_expression "iVar8 + iVar5" (identifier "iVar8") (+ "+") (identifier "iVar5")) () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)puVar2;" (assignment_expression "iVar10 = *(int *)puVar2" (identifier "iVar10") (= "=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)(iVar10 + iVar11);" (assignment_expression "puVar6 = (undefined4 *)(iVar10 + iVar11)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(iVar10 + iVar11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar11)" (( "(") (binary_expression "iVar10 + iVar11" (identifier "iVar10") (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "iVar11 = iVar11 + 4;" (assignment_expression "iVar11 = iVar11 + 4" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strlen_000a7ddc)(*puVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000a7ddc)" (( "(") (pointer_expression "*(code *)PTR_strlen_000a7ddc" (* "*") (cast_expression "(code *)PTR_strlen_000a7ddc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000a7ddc"))) () ")")) (argument_list "(*puVar6)" (( "(") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) () ")")))) (; ";")) (expression_statement "iVar5 = iVar5 + 1 + iVar7;" (assignment_expression "iVar5 = iVar5 + 1 + iVar7" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1 + iVar7" (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) (+ "+") (identifier "iVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar10 + iVar11) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + iVar11) != 0" (pointer_expression "*(int *)(iVar10 + iVar11)" (* "*") (cast_expression "(int *)(iVar10 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar11)" (( "(") (binary_expression "iVar10 + iVar11" (identifier "iVar10") (+ "+") (identifier "iVar11")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;" (assignment_expression "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8" (identifier "param_4") (= "=") (identifier "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8")) (; ";")) (if_statement "if (iVar4 != iVar5) goto LAB_00061268;" (if "if") (parenthesized_expression "(iVar4 != iVar5)" (( "(") (binary_expression "iVar4 != iVar5" (identifier "iVar4") (!= "!=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_00061268;" (goto "goto") (statement_identifier "LAB_00061268") (; ";"))) (} "}"))) (expression_statement "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;" (assignment_expression "param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c" (identifier "param_4") (= "=") (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c" (identifier "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8") (+ "+") (number_literal "-0x5c"))) (; ";")) (expression_statement "(*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);" (call_expression "(*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000a7dc0)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_000a7dc0" (* "*") (cast_expression "(code *)PTR___sprintf_chk_000a7dc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_000a7dc0"))) () ")")) (argument_list "(auStack_74,1,0x50,param_4,local_7c,iVar4)" (( "(") (identifier "auStack_74") (, ",") (number_literal "1") (, ",") (number_literal "0x50") (, ",") (identifier "param_4") (, ",") (identifier "local_7c") (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "noncloexec(local_7c);" (call_expression "noncloexec(local_7c)" (identifier "noncloexec") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "fork_and_exec_self(local_78,auStack_74,0);" (call_expression "fork_and_exec_self(local_78,auStack_74,0)" (identifier "fork_and_exec_self") (argument_list "(local_78,auStack_74,0)" (( "(") (identifier "local_78") (, ",") (identifier "auStack_74") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_close_000a7934)(local_7c);" (call_expression "(*(code *)PTR_close_000a7934)(local_7c)" (parenthesized_expression "(*(code *)PTR_close_000a7934)" (( "(") (pointer_expression "*(code *)PTR_close_000a7934" (* "*") (cast_expression "(code *)PTR_close_000a7934" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000a7934"))) () ")")) (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (if_statement "if (0 < iVar4) {\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n      do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);\n    }" ({ "{") (do_statement "do {\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      } while (iVar5 < iVar4);" (do "do") (compound_statement "{\n        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);\n        if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }\n        iVar5 = iVar5 + iVar11;\n      }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);" (assignment_expression "iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5)" (parenthesized_expression "(*(code *)PTR_write_000a7df4)" (( "(") (pointer_expression "*(code *)PTR_write_000a7df4" (* "*") (cast_expression "(code *)PTR_write_000a7df4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_write_000a7df4"))) () ")")) (argument_list "(local_78,iVar8 + iVar5,iVar4 - iVar5)" (( "(") (identifier "local_78") (, ",") (binary_expression "iVar8 + iVar5" (identifier "iVar8") (+ "+") (identifier "iVar5")) (, ",") (binary_expression "iVar4 - iVar5" (identifier "iVar4") (- "-") (identifier "iVar5")) () ")")))) (; ";")) (if_statement "if (iVar11 < 1) {\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }\n          break;\n        }" ({ "{") (if_statement "if (iVar11 != 0) {\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);\n          }" ({ "{") (expression_statement "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);" (call_expression "(*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50)" (parenthesized_expression "(*(code *)PTR_perror_000a79dc)" (( "(") (pointer_expression "*(code *)PTR_perror_000a79dc" (* "*") (cast_expression "(code *)PTR_perror_000a79dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_perror_000a79dc"))) () ")")) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50)" (( "(") (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50" (identifier "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8") (+ "+") (number_literal "-0x50")) () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + iVar11;" (assignment_expression "iVar5 = iVar5 + iVar11" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar11" (identifier "iVar5") (+ "+") (identifier "iVar11"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < iVar4)" (( "(") (binary_expression "iVar5 < iVar4" (identifier "iVar5") (< "<") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_close_000a7934)(local_78);" (call_expression "(*(code *)PTR_close_000a7934)(local_78)" (parenthesized_expression "(*(code *)PTR_close_000a7934)" (( "(") (pointer_expression "*(code *)PTR_close_000a7934" (* "*") (cast_expression "(code *)PTR_close_000a7934" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000a7934"))) () ")")) (argument_list "(local_78)" (( "(") (identifier "local_78") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_safefree_000a70d4)(iVar8);" (call_expression "(*(code *)PTR_safefree_000a70d4)(iVar8)" (parenthesized_expression "(*(code *)PTR_safefree_000a70d4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000a70d4" (* "*") (cast_expression "(code *)PTR_safefree_000a70d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000a70d4"))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_24 == *(int *)puVar3) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar3)" (( "(") (binary_expression "local_24 == *(int *)puVar3" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000a7b74)();" (call_expression "(*(code *)PTR___stack_chk_fail_000a7b74)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000a7b74)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000a7b74" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000a7b74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000a7b74"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00061268:\n  (*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);" (statement_identifier "LAB_00061268") (: ":") (expression_statement "(*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);" (call_expression "(*(code *)PTR___assert_fail_000a7840)\n            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_000a7840)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000a7840" (* "*") (cast_expression "(code *)PTR___assert_fail_000a7840" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000a7840"))) () ")")) (argument_list "(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,\n             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac)" (( "(") (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68" (identifier "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8") (+ "+") (number_literal "-0x68")) (, ",") (binary_expression "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8" (identifier "PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8") (+ "+") (number_literal "-0xa8")) (, ",") (number_literal "0xb4") (, ",") (binary_expression "param_4 + 0x6ac" (identifier "param_4") (+ "+") (number_literal "0x6ac")) () ")"))) (; ";"))) (expression_statement "fork_and_exec_self(0xffffffff,0);" (call_expression "fork_and_exec_self(0xffffffff,0)" (identifier "fork_and_exec_self") (argument_list "(0xffffffff,0)" (( "(") (number_literal "0xffffffff") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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 (pointer_expression argument: (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: (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)))))) 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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier) (identifier) (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: (identifier) arguments: (argument_list (identifier) (identifier) (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)))) (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: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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))))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))))) (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))) (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)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal)))) (return_statement))))

void MASKED
               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined *param_4)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  undefined4 local_7c;
  undefined4 local_78;
  undefined1 auStack_74 [80];
  int local_24;
  
  puVar3 = PTR___stack_chk_guard_000a7ec8;
  local_24 = *(int *)PTR___stack_chk_guard_000a7ec8;
  iVar4 = (*(code *)PTR_pipe_000a7bf0)(&local_7c);
  puVar1 = PTR_use_pty_argv_000a70dc;
  if (iVar4 < 0) {
    (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x70);
  }
  else {
    iVar5 = (*(code *)PTR_conf_serialised_size_000a70e0)(param_1);
    iVar4 = iVar5;
    if ((*(int *)puVar1 != 0) && (piVar9 = *(int **)PTR_pty_argv_000a70e4, piVar9 != (int *)0x0)) {
      iVar8 = *piVar9;
      while (iVar8 != 0) {
        piVar9 = piVar9 + 1;
        iVar8 = (*(code *)PTR_strlen_000a7ddc)();
        iVar4 = iVar4 + 1 + iVar8;
        iVar8 = *piVar9;
      }
    }
    iVar8 = (*(code *)PTR_safemalloc_000a70d0)(iVar4,1);
    (*(code *)PTR_conf_serialise_000a70e8)(param_1,iVar8);
    puVar2 = PTR_pty_argv_000a70e4;
    if ((*(int *)puVar1 != 0) && (*(int **)PTR_pty_argv_000a70e4 != (int *)0x0)) {
      if (**(int **)PTR_pty_argv_000a70e4 != 0) {
        iVar11 = 0;
        do {
          (*(code *)PTR_strcpy_000a7868)(iVar8 + iVar5);
          iVar10 = *(int *)puVar2;
          puVar6 = (undefined4 *)(iVar10 + iVar11);
          iVar11 = iVar11 + 4;
          iVar7 = (*(code *)PTR_strlen_000a7ddc)(*puVar6);
          iVar5 = iVar5 + 1 + iVar7;
        } while (*(int *)(iVar10 + iVar11) != 0);
      }
      param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8;
      if (iVar4 != iVar5) goto LAB_00061268;
    }
    param_4 = PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x5c;
    (*(code *)PTR___sprintf_chk_000a7dc0)(auStack_74,1,0x50,param_4,local_7c,iVar4);
    noncloexec(local_7c);
    iVar5 = 0;
    fork_and_exec_self(local_78,auStack_74,0);
    (*(code *)PTR_close_000a7934)(local_7c);
    if (0 < iVar4) {
      do {
        iVar11 = (*(code *)PTR_write_000a7df4)(local_78,iVar8 + iVar5,iVar4 - iVar5);
        if (iVar11 < 1) {
          if (iVar11 != 0) {
            (*(code *)PTR_perror_000a79dc)(PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x50);
          }
          break;
        }
        iVar5 = iVar5 + iVar11;
      } while (iVar5 < iVar4);
    }
    (*(code *)PTR_close_000a7934)(local_78);
    (*(code *)PTR_safefree_000a70d4)(iVar8);
  }
  if (local_24 == *(int *)puVar3) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_000a7b74)();
LAB_00061268:
  (*(code *)PTR___assert_fail_000a7840)
            (PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0x68,
             PTR_s_ed_EOF_in_Duplicate_Session_data_000a70d8 + -0xa8,0xb4,param_4 + 0x6ac);
  fork_and_exec_self(0xffffffff,0);
  return;
}

