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

int proxy_telnet_negotiate(Proxy_Socket p,int change)

{
  char *pcVar1;
  undefined1 *puVar2;
  int iVar3;
  uint uVar4;
  undefined1 uVar5;
  undefined1 *puVar6;
  undefined1 *puVar7;
  undefined *puVar8;
  
  if (p->state != -1) {
    if (change == 0) {
      (*(*p->plug)->closing)
                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);
      return 0;
    }
    if (change == 1) {
      return 0;
    }
    if (change == 3) {
                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      iVar3 = (*(*p->plug)->accepting)
                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);
      return iVar3;
    }
    if (change == 2) {
      proxy_activate(p);
    }
    else {
      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);
    }
    return 1;
  }
  pcVar1 = format_telnet_command(p->remote_addr,p->remote_port,p->conf);
  iVar3 = (*(code *)PTR_strlen_000b2e48)(pcVar1);
  puVar2 = (undefined1 *)safemalloc(iVar3 * 4 + 1,1);
  uVar4 = (uint)*pcVar1;
  puVar6 = puVar2;
  if (uVar4 != 0) {
    puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;
    puVar7 = puVar2;
    do {
      while (uVar4 != 10) {
        if (uVar4 == 0xd) {
          puVar6 = puVar7 + 2;
          *puVar7 = 0x5c;
          puVar7[1] = 0x72;
        }
        else if (uVar4 == 9) {
          puVar6 = puVar7 + 2;
          *puVar7 = 0x5c;
          puVar7[1] = 0x74;
        }
        else {
          uVar5 = (undefined1)uVar4;
          if (uVar4 == 0x5c) {
            *puVar7 = uVar5;
            puVar6 = puVar7 + 2;
            puVar7[1] = uVar5;
          }
          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {
            *puVar7 = uVar5;
            puVar6 = puVar7 + 1;
          }
          else {
            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);
            puVar6 = puVar7 + 4;
          }
        }
        pcVar1 = pcVar1 + 1;
        uVar4 = (uint)*pcVar1;
        puVar7 = puVar6;
        if (uVar4 == 0) goto LAB_000266e0;
      }
      *puVar7 = 0x5c;
      pcVar1 = pcVar1 + 1;
      puVar7[1] = 0x6e;
      uVar4 = (uint)*pcVar1;
      puVar6 = puVar7 + 2;
      puVar7 = puVar7 + 2;
    } while (uVar4 != 0);
  }
LAB_000266e0:
  puVar8 = PTR_s_acket_from_server___s_000b23a8;
  *puVar6 = 0;
  pcVar1 = dupprintf(puVar8 + -0x770,puVar2);
  (*(*p->plug)->log)(p->plug,2,(SockAddr)0x0,0,pcVar1,0);
                    /* WARNING: Subroutine does not return */
  safefree(pcVar1);
}



undefined4 proxy_telnet_negotiate(int param_1,int param_2)

{
  char *pcVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined1 uVar6;
  undefined1 *puVar7;
  undefined1 *puVar8;
  int *piVar9;
  char *pcVar10;
  undefined *puVar11;
  
  if (*(int *)(param_1 + 0x44) != -1) {
    if (param_2 == 0) {
      (**(code **)(**(int **)(param_1 + 0xc) + 4))
                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),
                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));
      return 0;
    }
    if (param_2 == 1) {
      return 0;
    }
    if (param_2 == 3) {
                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))
                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),
                         *(undefined4 *)(param_1 + 0x70));
      return uVar4;
    }
    if (param_2 == 2) {
      proxy_activate();
    }
    else {
      (**(code **)(**(int **)(param_1 + 0xc) + 4))
                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);
    }
    return 1;
  }
  pcVar1 = (char *)format_telnet_command
                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),
                              *(undefined4 *)(param_1 + 0x74));
  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);
  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);
  uVar5 = (uint)*pcVar1;
  puVar7 = puVar3;
  if (uVar5 != 0) {
    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;
    puVar8 = puVar3;
    pcVar10 = pcVar1;
    do {
      while (uVar5 != 10) {
        if (uVar5 == 0xd) {
          puVar7 = puVar8 + 2;
          *puVar8 = 0x5c;
          puVar8[1] = 0x72;
        }
        else if (uVar5 == 9) {
          puVar7 = puVar8 + 2;
          *puVar8 = 0x5c;
          puVar8[1] = 0x74;
        }
        else {
          uVar6 = (undefined1)uVar5;
          if (uVar5 == 0x5c) {
            *puVar8 = uVar6;
            puVar7 = puVar8 + 2;
            puVar8[1] = uVar6;
          }
          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {
            *puVar8 = uVar6;
            puVar7 = puVar8 + 1;
          }
          else {
            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);
            puVar7 = puVar8 + 4;
          }
        }
        pcVar10 = pcVar10 + 1;
        uVar5 = (uint)*pcVar10;
        puVar8 = puVar7;
        if (uVar5 == 0) goto LAB_000266e0;
      }
      *puVar8 = 0x5c;
      pcVar10 = pcVar10 + 1;
      puVar8[1] = 0x6e;
      uVar5 = (uint)*pcVar10;
      puVar7 = puVar8 + 2;
      puVar8 = puVar8 + 2;
    } while (uVar5 != 0);
  }
LAB_000266e0:
  puVar11 = PTR_s_acket_from_server___s_000b23a8;
  *puVar7 = 0;
  uVar4 = dupprintf(puVar11 + -0x770,puVar3);
  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);
  safefree(uVar4);
  safefree(puVar3);
  piVar9 = *(int **)(param_1 + 8);
  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);
  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);
  safefree(pcVar1);
  *(undefined4 *)(param_1 + 0x44) = 1;
  return 0;
}


lui gp,0x9
addiu gp,gp,0x3eb8
addu gp,gp,t9
addiu sp,sp,-0x48
lw v1,0x44(a0)
li v0,-0x1
sw gp,0x18(sp)
sw s0,0x20(sp)
or s0,a0,zero
sw ra,0x44(sp)
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
beq v1,v0,0x00026604
_sw s1,0x24(sp)
beq a1,zero,0x00026578
_li v0,0x1
beq a1,v0,0x000265d0
_li v0,0x3
beq a1,v0,0x000267e4
_li v0,0x2
beq a1,v0,0x00026864
_or a3,zero,zero
lw v0,0xc(a0)
lw a1,-0x7fc8(gp)
li a2,0x1f41
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_addiu a1,a1,-0xbe4
li v0,0x1
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw v0,0xc(a0)
lw a3,0x58(a0)
lw a2,0x54(a0)
lw a1,0x50(a0)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_nop
or v0,zero,zero
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw ra,0x44(sp)
or v0,zero,zero
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw a2,0x74(a0)
lw a1,0x14(a0)
lw t9,-0x7d78(gp)
bal 0x00025b48
_lw a0,0x10(a0)
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7528(gp)
jalr t9
_or s3,v0,zero
li a1,0x1
lw gp,0x18(sp)
sll v0,v0,0x2
lw t9,-0x7f68(gp)
bal 0x00020904
_addiu a0,v0,0x1
lb v1,0x0(s3)
or s7,v0,zero
beq v1,zero,0x00026878
_lw gp,0x18(sp)
lw s8,-0x7fc8(gp)
li s4,0xa
li s5,0xd
li s6,0x9
addiu s8,s8,-0x778
or s1,v0,zero
b 0x000266b4
_or s2,s3,zero
beq v1,s5,0x000267b8
_nop
beq v1,s6,0x000267cc
_li v0,0x5c
beq v1,v0,0x0002682c
_andi v0,v1,0xff
addiu v0,v0,-0x20
sltiu v0,v0,0x5f
beq v0,zero,0x0002683c
_lw t9,-0x7654(gp)
sb v1,0x0(s1)
addiu s1,s1,0x1
addiu s2,s2,0x1
lb v1,0x0(s2)
beq v1,zero,0x000266e0
_lw a0,-0x7fc8(gp)
bne v1,s4,0x00026674
_li v0,0x5c
addiu s1,s1,0x2
sb v0,-0x2(s1)
addiu s2,s2,0x1
li v0,0x6e
sb v0,-0x1(s1)
lb v1,0x0(s2)
bne v1,zero,0x000266b4
_nop
lw a0,-0x7fc8(gp)
or a1,s7,zero
lw t9,-0x7f6c(gp)
sb zero,0x0(s1)
bal 0x000212a8
_addiu a0,a0,-0x770
or a3,zero,zero
lw v1,0xc(s0)
or s1,v0,zero
or a2,zero,zero
li a1,0x2
lw v0,0x0(v1)
sw s1,0x10(sp)
sw zero,0x14(sp)
lw t9,0x0(v0)
jalr t9
_or a0,v1,zero
lw gp,0x18(sp)
lw t9,-0x7fa0(gp)
bal 0x00021634
_or a0,s1,zero
lw gp,0x18(sp)
lw t9,-0x7fa0(gp)
bal 0x00021634
_or a0,s7,zero
or a0,s3,zero
lw gp,0x18(sp)
lw t9,-0x7528(gp)
jalr t9
_lw s1,0x8(s0)
or a1,s3,zero
lw v1,0x0(s1)
or a0,s1,zero
lw t9,0x8(v1)
jalr t9
_or a2,v0,zero
lw gp,0x18(sp)
lw t9,-0x7fa0(gp)
bal 0x00021634
_or a0,s3,zero
li v1,0x1
lw ra,0x44(sp)
or v0,zero,zero
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
sw v1,0x44(s0)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
addiu s1,s1,0x2
sb v0,-0x2(s1)
li v0,0x72
b 0x000266a4
_sb v0,-0x1(s1)
li v0,0x5c
addiu s1,s1,0x2
sb v0,-0x2(s1)
li v0,0x74
b 0x000266a4
_sb v0,-0x1(s1)
lw v0,0xc(a0)
lw a2,0x70(a0)
lw a1,0x6c(a0)
or a0,v0,zero
lw ra,0x44(sp)
lw v0,0x0(v0)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw t9,0x10(v0)
jr t9
_addiu sp,sp,0x48
sb v1,0x0(s1)
addiu s1,s1,0x2
b 0x000266a4
_sb v1,-0x1(s1)
andi v1,v1,0xff
li a2,-0x1
sw v1,0x10(sp)
li a1,0x1
or a0,s1,zero
jalr t9
_or a3,s8,zero
addiu s1,s1,0x4
b 0x000266a4
_lw gp,0x18(sp)
lw t9,-0x7dc4(gp)
bal 0x00023684
_nop
b 0x00026548
_li v0,0x1
b 0x000266dc
_or s1,v0,zero
(translation_unit "undefined4 proxy_telnet_negotiate(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}\n\n" (function_definition "undefined4 proxy_telnet_negotiate(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}" type_identifier (function_declarator "proxy_telnet_negotiate(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (if_statement "if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) != -1)" ( (binary_expression "*(int *)(param_1 + 0x44) != -1" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }" { (if_statement "if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58))" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_2 == 1) {\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_2 == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }" if (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }" { comment comment (expression_statement "uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));" (assignment_expression "uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 0x10)" ( (binary_expression "**(int **)(param_1 + 0xc) + 0x10" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" * (cast_expression "(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n      proxy_activate();\n    }" { (expression_statement "proxy_activate();" (call_expression "proxy_activate()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" else (compound_statement "{\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0xbe4" identifier + number_literal) , number_literal ))) ;) }))) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));" (assignment_expression "pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" identifier = (cast_expression "(char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" identifier = (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" ( (pointer_expression "*(code *)PTR_strlen_000b2e48" * (cast_expression "(code *)PTR_strlen_000b2e48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);" (assignment_expression "puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1)" identifier = (cast_expression "(undefined1 *)safemalloc(iVar2 * 4 + 1,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(iVar2 * 4 + 1,1)" identifier (argument_list "(iVar2 * 4 + 1,1)" ( (binary_expression "iVar2 * 4 + 1" (binary_expression "iVar2 * 4" identifier * number_literal) + number_literal) , number_literal ))))) ;) (expression_statement "uVar5 = (uint)*pcVar1;" (assignment_expression "uVar5 = (uint)*pcVar1" identifier = (binary_expression "(uint)*pcVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }" { (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778" identifier = (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x778" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" identifier = identifier) ;) (expression_statement "pcVar10 = pcVar1;" (assignment_expression "pcVar10 = pcVar1" identifier = identifier) ;) (do_statement "do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);" do (compound_statement "{\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    }" { (while_statement "while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }" while (parenthesized_expression "(uVar5 != 10)" ( (binary_expression "uVar5 != 10" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }" { (if_statement "if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" if (parenthesized_expression "(uVar5 == 0xd)" ( (binary_expression "uVar5 == 0xd" identifier == number_literal) )) (compound_statement "{\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }" { (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0x72;" (assignment_expression "puVar8[1] = 0x72" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" else (if_statement "if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" if (parenthesized_expression "(uVar5 == 9)" ( (binary_expression "uVar5 == 9" identifier == number_literal) )) (compound_statement "{\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }" { (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0x74;" (assignment_expression "puVar8[1] = 0x74" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" else (compound_statement "{\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" { (expression_statement "uVar6 = (undefined1)uVar5;" (assignment_expression "uVar6 = (undefined1)uVar5" identifier = (cast_expression "(undefined1)uVar5" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" if (parenthesized_expression "(uVar5 == 0x5c)" ( (binary_expression "uVar5 == 0x5c" identifier == number_literal) )) (compound_statement "{\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }" { (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "puVar8[1] = uVar6;" (assignment_expression "puVar8[1] = uVar6" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" else (if_statement "if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" if (parenthesized_expression "((uVar5 & 0xff) - 0x20 < 0x5f)" ( (binary_expression "(uVar5 & 0xff) - 0x20 < 0x5f" (binary_expression "(uVar5 & 0xff) - 0x20" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }" { (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar8 + 1;" (assignment_expression "puVar7 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" else (compound_statement "{\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" { (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" * (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff)" ( identifier , number_literal , number_literal , identifier , (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) ;) (expression_statement "puVar7 = puVar8 + 4;" (assignment_expression "puVar7 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) }))))) }))))) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)*pcVar10;" (assignment_expression "uVar5 = (uint)*pcVar10" identifier = (binary_expression "(uint)*pcVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) (if_statement "if (uVar5 == 0) goto LAB_000266e0;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000266e0;" goto statement_identifier ;)) })) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar8[1] = 0x6e;" (assignment_expression "puVar8[1] = 0x6e" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = (uint)*pcVar10;" (assignment_expression "uVar5 = (uint)*pcVar10" identifier = (binary_expression "(uint)*pcVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 2;" (assignment_expression "puVar8 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;" statement_identifier : (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8" identifier = identifier) ;)) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar4 = dupprintf(puVar11 + -0x770,puVar3);" (assignment_expression "uVar4 = dupprintf(puVar11 + -0x770,puVar3)" identifier = (call_expression "dupprintf(puVar11 + -0x770,puVar3)" identifier (argument_list "(puVar11 + -0x770,puVar3)" ( (binary_expression "puVar11 + -0x770" identifier + number_literal) , identifier )))) ;) (expression_statement "(**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);" (call_expression "(**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0)" (parenthesized_expression "(**(code **)**(undefined4 **)(param_1 + 0xc))" ( (pointer_expression "**(code **)**(undefined4 **)(param_1 + 0xc)" * (pointer_expression "*(code **)**(undefined4 **)(param_1 + 0xc)" * (cast_expression "(code **)**(undefined4 **)(param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(param_1 + 0xc)" * (pointer_expression "*(undefined4 **)(param_1 + 0xc)" * (cast_expression "(undefined4 **)(param_1 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))))) )) (argument_list "(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0)" ( (pointer_expression "*(undefined4 **)(param_1 + 0xc)" * (cast_expression "(undefined4 **)(param_1 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "safefree(uVar4);" (call_expression "safefree(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "safefree(puVar3);" (call_expression "safefree(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "piVar9 = *(int **)(param_1 + 8);" (assignment_expression "piVar9 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" identifier = (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" ( (pointer_expression "*(code *)PTR_strlen_000b2e48" * (cast_expression "(code *)PTR_strlen_000b2e48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "(**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);" (call_expression "(**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4)" (parenthesized_expression "(**(code **)(*piVar9 + 8))" ( (pointer_expression "**(code **)(*piVar9 + 8)" * (pointer_expression "*(code **)(*piVar9 + 8)" * (cast_expression "(code **)(*piVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 8)" ( (binary_expression "*piVar9 + 8" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar9,pcVar1,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "safefree(pcVar1);" (call_expression "safefree(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint proxy_telnet_negotiate(Proxy_Socket p,int change)\n\n{\n  char *pcVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  uint uVar4;\n  undefined1 uVar5;\n  undefined1 *puVar6;\n  undefined1 *puVar7;\n  undefined *puVar8;\n  \n  if (p->state != -1) {\n    if (change == 0) {\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }\n    if (change == 1) {\n      return 0;\n    }\n    if (change == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }\n    if (change == 2) {\n      proxy_activate(p);\n    }\n    else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }\n    return 1;\n  }\n  pcVar1 = format_telnet_command(p->remote_addr,p->remote_port,p->conf);\n  iVar3 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar2 = (undefined1 *)safemalloc(iVar3 * 4 + 1,1);\n  uVar4 = (uint)*pcVar1;\n  puVar6 = puVar2;\n  if (uVar4 != 0) {\n    puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar7 = puVar2;\n    do {\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    } while (uVar4 != 0);\n  }\nLAB_000266e0:\n  puVar8 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar6 = 0;\n  pcVar1 = dupprintf(puVar8 + -0x770,puVar2);\n  (*(*p->plug)->log)(p->plug,2,(SockAddr)0x0,0,pcVar1,0);\n                    /* WARNING: Subroutine does not return */\n  safefree(pcVar1);\n}\n\n" comment (function_definition "int proxy_telnet_negotiate(Proxy_Socket p,int change)\n\n{\n  char *pcVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  uint uVar4;\n  undefined1 uVar5;\n  undefined1 *puVar6;\n  undefined1 *puVar7;\n  undefined *puVar8;\n  \n  if (p->state != -1) {\n    if (change == 0) {\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }\n    if (change == 1) {\n      return 0;\n    }\n    if (change == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }\n    if (change == 2) {\n      proxy_activate(p);\n    }\n    else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }\n    return 1;\n  }\n  pcVar1 = format_telnet_command(p->remote_addr,p->remote_port,p->conf);\n  iVar3 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar2 = (undefined1 *)safemalloc(iVar3 * 4 + 1,1);\n  uVar4 = (uint)*pcVar1;\n  puVar6 = puVar2;\n  if (uVar4 != 0) {\n    puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar7 = puVar2;\n    do {\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    } while (uVar4 != 0);\n  }\nLAB_000266e0:\n  puVar8 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar6 = 0;\n  pcVar1 = dupprintf(puVar8 + -0x770,puVar2);\n  (*(*p->plug)->log)(p->plug,2,(SockAddr)0x0,0,pcVar1,0);\n                    /* WARNING: Subroutine does not return */\n  safefree(pcVar1);\n}" primitive_type (function_declarator "proxy_telnet_negotiate(Proxy_Socket p,int change)" identifier (parameter_list "(Proxy_Socket p,int change)" ( (parameter_declaration "Proxy_Socket p" type_identifier identifier) , (parameter_declaration "int change" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  uint uVar4;\n  undefined1 uVar5;\n  undefined1 *puVar6;\n  undefined1 *puVar7;\n  undefined *puVar8;\n  \n  if (p->state != -1) {\n    if (change == 0) {\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }\n    if (change == 1) {\n      return 0;\n    }\n    if (change == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }\n    if (change == 2) {\n      proxy_activate(p);\n    }\n    else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }\n    return 1;\n  }\n  pcVar1 = format_telnet_command(p->remote_addr,p->remote_port,p->conf);\n  iVar3 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar2 = (undefined1 *)safemalloc(iVar3 * 4 + 1,1);\n  uVar4 = (uint)*pcVar1;\n  puVar6 = puVar2;\n  if (uVar4 != 0) {\n    puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar7 = puVar2;\n    do {\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    } while (uVar4 != 0);\n  }\nLAB_000266e0:\n  puVar8 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar6 = 0;\n  pcVar1 = dupprintf(puVar8 + -0x770,puVar2);\n  (*(*p->plug)->log)(p->plug,2,(SockAddr)0x0,0,pcVar1,0);\n                    /* WARNING: Subroutine does not return */\n  safefree(pcVar1);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (if_statement "if (p->state != -1) {\n    if (change == 0) {\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }\n    if (change == 1) {\n      return 0;\n    }\n    if (change == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }\n    if (change == 2) {\n      proxy_activate(p);\n    }\n    else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }\n    return 1;\n  }" if (parenthesized_expression "(p->state != -1)" ( (binary_expression "p->state != -1" (field_expression "p->state" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    if (change == 0) {\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }\n    if (change == 1) {\n      return 0;\n    }\n    if (change == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }\n    if (change == 2) {\n      proxy_activate(p);\n    }\n    else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }\n    return 1;\n  }" { (if_statement "if (change == 0) {\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }" if (parenthesized_expression "(change == 0)" ( (binary_expression "change == 0" identifier == number_literal) )) (compound_statement "{\n      (*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);\n      return 0;\n    }" { (expression_statement "(*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);" (call_expression "(*(*p->plug)->closing)\n                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back)" ( (field_expression "p->plug" identifier -> field_identifier) , (field_expression "p->closing_error_msg" identifier -> field_identifier) , (field_expression "p->closing_error_code" identifier -> field_identifier) , (field_expression "p->closing_calling_back" identifier -> field_identifier) ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (change == 1) {\n      return 0;\n    }" if (parenthesized_expression "(change == 1)" ( (binary_expression "change == 1" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (change == 3) {\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }" if (parenthesized_expression "(change == 3)" ( (binary_expression "change == 3" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);\n      return iVar3;\n    }" { comment comment (expression_statement "iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);" (assignment_expression "iVar3 = (*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p)" identifier = (call_expression "(*(*p->plug)->accepting)\n                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p)" (parenthesized_expression "(*(*p->plug)->accepting)" ( (pointer_expression "*(*p->plug)->accepting" * (field_expression "(*p->plug)->accepting" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p)" ( (field_expression "p->plug" identifier -> field_identifier) , (field_expression "p->accepting_constructor" identifier -> field_identifier) , (field_expression "(accept_ctx_t)(p->accepting_ctx).p" (call_expression "(accept_ctx_t)(p->accepting_ctx)" (parenthesized_expression "(accept_ctx_t)" ( identifier )) (argument_list "(p->accepting_ctx)" ( (field_expression "p->accepting_ctx" identifier -> field_identifier) ))) . field_identifier) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (change == 2) {\n      proxy_activate(p);\n    }\n    else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }" if (parenthesized_expression "(change == 2)" ( (binary_expression "change == 2" identifier == number_literal) )) (compound_statement "{\n      proxy_activate(p);\n    }" { (expression_statement "proxy_activate(p);" (call_expression "proxy_activate(p)" identifier (argument_list "(p)" ( identifier ))) ;) }) (else_clause "else {\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }" else (compound_statement "{\n      (*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);\n    }" { (expression_statement "(*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0);" (call_expression "(*(*p->plug)->closing)(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0xbe4" identifier + number_literal) , number_literal , number_literal ))) ;) }))) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar1 = format_telnet_command(p->remote_addr,p->remote_port,p->conf);" (assignment_expression "pcVar1 = format_telnet_command(p->remote_addr,p->remote_port,p->conf)" identifier = (call_expression "format_telnet_command(p->remote_addr,p->remote_port,p->conf)" identifier (argument_list "(p->remote_addr,p->remote_port,p->conf)" ( (field_expression "p->remote_addr" identifier -> field_identifier) , (field_expression "p->remote_port" identifier -> field_identifier) , (field_expression "p->conf" identifier -> field_identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" identifier = (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" ( (pointer_expression "*(code *)PTR_strlen_000b2e48" * (cast_expression "(code *)PTR_strlen_000b2e48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "puVar2 = (undefined1 *)safemalloc(iVar3 * 4 + 1,1);" (assignment_expression "puVar2 = (undefined1 *)safemalloc(iVar3 * 4 + 1,1)" identifier = (cast_expression "(undefined1 *)safemalloc(iVar3 * 4 + 1,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(iVar3 * 4 + 1,1)" identifier (argument_list "(iVar3 * 4 + 1,1)" ( (binary_expression "iVar3 * 4 + 1" (binary_expression "iVar3 * 4" identifier * number_literal) + number_literal) , number_literal ))))) ;) (expression_statement "uVar4 = (uint)*pcVar1;" (assignment_expression "uVar4 = (uint)*pcVar1" identifier = (binary_expression "(uint)*pcVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar6 = puVar2;" (assignment_expression "puVar6 = puVar2" identifier = identifier) ;) (if_statement "if (uVar4 != 0) {\n    puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar7 = puVar2;\n    do {\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    } while (uVar4 != 0);\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar7 = puVar2;\n    do {\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    } while (uVar4 != 0);\n  }" { (expression_statement "puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778;" (assignment_expression "puVar8 = PTR_s_acket_from_server___s_000b23a8 + -0x778" identifier = (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x778" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar2;" (assignment_expression "puVar7 = puVar2" identifier = identifier) ;) (do_statement "do {\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    } while (uVar4 != 0);" do (compound_statement "{\n      while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }\n      *puVar7 = 0x5c;\n      pcVar1 = pcVar1 + 1;\n      puVar7[1] = 0x6e;\n      uVar4 = (uint)*pcVar1;\n      puVar6 = puVar7 + 2;\n      puVar7 = puVar7 + 2;\n    }" { (while_statement "while (uVar4 != 10) {\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }" while (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }\n        pcVar1 = pcVar1 + 1;\n        uVar4 = (uint)*pcVar1;\n        puVar7 = puVar6;\n        if (uVar4 == 0) goto LAB_000266e0;\n      }" { (if_statement "if (uVar4 == 0xd) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }\n        else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }" if (parenthesized_expression "(uVar4 == 0xd)" ( (binary_expression "uVar4 == 0xd" identifier == number_literal) )) (compound_statement "{\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x72;\n        }" { (expression_statement "puVar6 = puVar7 + 2;" (assignment_expression "puVar6 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "*puVar7 = 0x5c;" (assignment_expression "*puVar7 = 0x5c" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0x72;" (assignment_expression "puVar7[1] = 0x72" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }" else (if_statement "if (uVar4 == 9) {\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }\n        else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }" if (parenthesized_expression "(uVar4 == 9)" ( (binary_expression "uVar4 == 9" identifier == number_literal) )) (compound_statement "{\n          puVar6 = puVar7 + 2;\n          *puVar7 = 0x5c;\n          puVar7[1] = 0x74;\n        }" { (expression_statement "puVar6 = puVar7 + 2;" (assignment_expression "puVar6 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "*puVar7 = 0x5c;" (assignment_expression "*puVar7 = 0x5c" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0x74;" (assignment_expression "puVar7[1] = 0x74" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }" else (compound_statement "{\n          uVar5 = (undefined1)uVar4;\n          if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }\n        }" { (expression_statement "uVar5 = (undefined1)uVar4;" (assignment_expression "uVar5 = (undefined1)uVar4" identifier = (cast_expression "(undefined1)uVar4" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (uVar4 == 0x5c) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }\n          else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }" if (parenthesized_expression "(uVar4 == 0x5c)" ( (binary_expression "uVar4 == 0x5c" identifier == number_literal) )) (compound_statement "{\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 2;\n            puVar7[1] = uVar5;\n          }" { (expression_statement "*puVar7 = uVar5;" (assignment_expression "*puVar7 = uVar5" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar7 + 2;" (assignment_expression "puVar6 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "puVar7[1] = uVar5;" (assignment_expression "puVar7[1] = uVar5" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }" else (if_statement "if ((uVar4 & 0xff) - 0x20 < 0x5f) {\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }" if (parenthesized_expression "((uVar4 & 0xff) - 0x20 < 0x5f)" ( (binary_expression "(uVar4 & 0xff) - 0x20 < 0x5f" (binary_expression "(uVar4 & 0xff) - 0x20" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n            *puVar7 = uVar5;\n            puVar6 = puVar7 + 1;\n          }" { (expression_statement "*puVar7 = uVar5;" (assignment_expression "*puVar7 = uVar5" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar7 + 1;" (assignment_expression "puVar6 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }" else (compound_statement "{\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);\n            puVar6 = puVar7 + 4;\n          }" { (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" * (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,1,0xffffffff,puVar8,uVar4 & 0xff)" ( identifier , number_literal , number_literal , identifier , (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) ;) (expression_statement "puVar6 = puVar7 + 4;" (assignment_expression "puVar6 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) }))))) }))))) (expression_statement "pcVar1 = pcVar1 + 1;" (assignment_expression "pcVar1 = pcVar1 + 1" identifier = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = (uint)*pcVar1;" (assignment_expression "uVar4 = (uint)*pcVar1" identifier = (binary_expression "(uint)*pcVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" identifier = identifier) ;) (if_statement "if (uVar4 == 0) goto LAB_000266e0;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000266e0;" goto statement_identifier ;)) })) (expression_statement "*puVar7 = 0x5c;" (assignment_expression "*puVar7 = 0x5c" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pcVar1 = pcVar1 + 1;" (assignment_expression "pcVar1 = pcVar1 + 1" identifier = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[1] = 0x6e;" (assignment_expression "puVar7[1] = 0x6e" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = (uint)*pcVar1;" (assignment_expression "uVar4 = (uint)*pcVar1" identifier = (binary_expression "(uint)*pcVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar6 = puVar7 + 2;" (assignment_expression "puVar6 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + 2;" (assignment_expression "puVar7 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_000266e0:\n  puVar8 = PTR_s_acket_from_server___s_000b23a8;" statement_identifier : (expression_statement "puVar8 = PTR_s_acket_from_server___s_000b23a8;" (assignment_expression "puVar8 = PTR_s_acket_from_server___s_000b23a8" identifier = identifier) ;)) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "pcVar1 = dupprintf(puVar8 + -0x770,puVar2);" (assignment_expression "pcVar1 = dupprintf(puVar8 + -0x770,puVar2)" identifier = (call_expression "dupprintf(puVar8 + -0x770,puVar2)" identifier (argument_list "(puVar8 + -0x770,puVar2)" ( (binary_expression "puVar8 + -0x770" identifier + number_literal) , identifier )))) ;) (expression_statement "(*(*p->plug)->log)(p->plug,2,(SockAddr)0x0,0,pcVar1,0);" (call_expression "(*(*p->plug)->log)(p->plug,2,(SockAddr)0x0,0,pcVar1,0)" (parenthesized_expression "(*(*p->plug)->log)" ( (pointer_expression "*(*p->plug)->log" * (field_expression "(*p->plug)->log" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,2,(SockAddr)0x0,0,pcVar1,0)" ( (field_expression "p->plug" identifier -> field_identifier) , number_literal , (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal) , number_literal , identifier , number_literal ))) ;) comment (expression_statement "safefree(pcVar1);" (call_expression "safefree(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })))
(translation_unit "undefined4 proxy_telnet_negotiate(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}\n\n" (function_definition "undefined4 proxy_telnet_negotiate(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}" type_identifier (function_declarator "proxy_telnet_negotiate(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (if_statement "if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) != -1)" ( (binary_expression "*(int *)(param_1 + 0x44) != -1" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }" { (if_statement "if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58))" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_2 == 1) {\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }" if (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));" (assignment_expression "uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 0x10)" ( (binary_expression "**(int **)(param_1 + 0xc) + 0x10" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" * (cast_expression "(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n      proxy_activate();\n    }" { (expression_statement "proxy_activate();" (call_expression "proxy_activate()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" else (compound_statement "{\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0xbe4" identifier + number_literal) , number_literal ))) ;) }))) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));" (assignment_expression "pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" identifier = (cast_expression "(char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" identifier = (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" ( (pointer_expression "*(code *)PTR_strlen_000b2e48" * (cast_expression "(code *)PTR_strlen_000b2e48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);" (assignment_expression "puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1)" identifier = (cast_expression "(undefined1 *)safemalloc(iVar2 * 4 + 1,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(iVar2 * 4 + 1,1)" identifier (argument_list "(iVar2 * 4 + 1,1)" ( (binary_expression "iVar2 * 4 + 1" (binary_expression "iVar2 * 4" identifier * number_literal) + number_literal) , number_literal ))))) ;) (expression_statement "uVar5 = (uint)*pcVar1;" (assignment_expression "uVar5 = (uint)*pcVar1" identifier = (binary_expression "(uint)*pcVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }" { (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778" identifier = (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x778" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" identifier = identifier) ;) (expression_statement "pcVar10 = pcVar1;" (assignment_expression "pcVar10 = pcVar1" identifier = identifier) ;) (do_statement "do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);" do (compound_statement "{\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    }" { (while_statement "while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }" while (parenthesized_expression "(uVar5 != 10)" ( (binary_expression "uVar5 != 10" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }" { (if_statement "if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" if (parenthesized_expression "(uVar5 == 0xd)" ( (binary_expression "uVar5 == 0xd" identifier == number_literal) )) (compound_statement "{\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }" { (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0x72;" (assignment_expression "puVar8[1] = 0x72" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" else (if_statement "if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" if (parenthesized_expression "(uVar5 == 9)" ( (binary_expression "uVar5 == 9" identifier == number_literal) )) (compound_statement "{\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }" { (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0x74;" (assignment_expression "puVar8[1] = 0x74" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" else (compound_statement "{\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" { (expression_statement "uVar6 = (undefined1)uVar5;" (assignment_expression "uVar6 = (undefined1)uVar5" identifier = (cast_expression "(undefined1)uVar5" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" if (parenthesized_expression "(uVar5 == 0x5c)" ( (binary_expression "uVar5 == 0x5c" identifier == number_literal) )) (compound_statement "{\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }" { (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "puVar8[1] = uVar6;" (assignment_expression "puVar8[1] = uVar6" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" else (if_statement "if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" if (parenthesized_expression "((uVar5 & 0xff) - 0x20 < 0x5f)" ( (binary_expression "(uVar5 & 0xff) - 0x20 < 0x5f" (binary_expression "(uVar5 & 0xff) - 0x20" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }" { (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar8 + 1;" (assignment_expression "puVar7 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" else (compound_statement "{\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" { (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" * (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff)" ( identifier , number_literal , number_literal , identifier , (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) ;) (expression_statement "puVar7 = puVar8 + 4;" (assignment_expression "puVar7 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) }))))) }))))) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)*pcVar10;" (assignment_expression "uVar5 = (uint)*pcVar10" identifier = (binary_expression "(uint)*pcVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) (if_statement "if (uVar5 == 0) goto LAB_000266e0;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000266e0;" goto statement_identifier ;)) })) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar8[1] = 0x6e;" (assignment_expression "puVar8[1] = 0x6e" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = (uint)*pcVar10;" (assignment_expression "uVar5 = (uint)*pcVar10" identifier = (binary_expression "(uint)*pcVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 2;" (assignment_expression "puVar8 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;" statement_identifier : (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8" identifier = identifier) ;)) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar4 = dupprintf(puVar11 + -0x770,puVar3);" (assignment_expression "uVar4 = dupprintf(puVar11 + -0x770,puVar3)" identifier = (call_expression "dupprintf(puVar11 + -0x770,puVar3)" identifier (argument_list "(puVar11 + -0x770,puVar3)" ( (binary_expression "puVar11 + -0x770" identifier + number_literal) , identifier )))) ;) (expression_statement "(**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);" (call_expression "(**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0)" (parenthesized_expression "(**(code **)**(undefined4 **)(param_1 + 0xc))" ( (pointer_expression "**(code **)**(undefined4 **)(param_1 + 0xc)" * (pointer_expression "*(code **)**(undefined4 **)(param_1 + 0xc)" * (cast_expression "(code **)**(undefined4 **)(param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(param_1 + 0xc)" * (pointer_expression "*(undefined4 **)(param_1 + 0xc)" * (cast_expression "(undefined4 **)(param_1 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))))) )) (argument_list "(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0)" ( (pointer_expression "*(undefined4 **)(param_1 + 0xc)" * (cast_expression "(undefined4 **)(param_1 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "safefree(uVar4);" (call_expression "safefree(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "safefree(puVar3);" (call_expression "safefree(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "piVar9 = *(int **)(param_1 + 8);" (assignment_expression "piVar9 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" identifier = (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" ( (pointer_expression "*(code *)PTR_strlen_000b2e48" * (cast_expression "(code *)PTR_strlen_000b2e48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "(**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);" (call_expression "(**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4)" (parenthesized_expression "(**(code **)(*piVar9 + 8))" ( (pointer_expression "**(code **)(*piVar9 + 8)" * (pointer_expression "*(code **)(*piVar9 + 8)" * (cast_expression "(code **)(*piVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 8)" ( (binary_expression "*piVar9 + 8" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar9,pcVar1,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "safefree(pcVar1);" (call_expression "safefree(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT ))) ;) }))) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT * LIT) + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))) }))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 proxy_telnet_negotiate(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "proxy_telnet_negotiate(int param_1,int param_2)" (identifier "proxy_telnet_negotiate") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined1 uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int *piVar9;\n  char *pcVar10;\n  undefined *puVar11;\n  \n  if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }\n  pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));\n  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);\n  uVar5 = (uint)*pcVar1;\n  puVar7 = puVar3;\n  if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }\nLAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;\n  *puVar7 = 0;\n  uVar4 = dupprintf(puVar11 + -0x770,puVar3);\n  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);\n  safefree(uVar4);\n  safefree(puVar3);\n  piVar9 = *(int **)(param_1 + 8);\n  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);\n  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);\n  safefree(pcVar1);\n  *(undefined4 *)(param_1 + 0x44) = 1;\n  return 0;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined1 uVar6;" (type_identifier "undefined1") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x44) != -1) {\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x44) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) != -1" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }\n    if (param_2 == 1) {\n      return 0;\n    }\n    if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }\n    if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (param_2 == 0) {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));\n      return 0;\n    }" ({ "{") (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),\n                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58))" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_2 == 1) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_2 == 1)" (( "(") (binary_expression "param_2 == 1" (identifier "param_2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_2 == 3) {\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(param_2 == 3)" (( "(") (binary_expression "param_2 == 3" (identifier "param_2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                    \n                    \n      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));\n      return uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70));" (assignment_expression "uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))\n                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 0x10)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 0x10)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 0x10)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 0x10" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),\n                         *(undefined4 *)(param_1 + 0x70))" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (if_statement "if (param_2 == 2) {\n      proxy_activate();\n    }\n    else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" (if "if") (parenthesized_expression "(param_2 == 2)" (( "(") (binary_expression "param_2 == 2" (identifier "param_2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      proxy_activate();\n    }" ({ "{") (expression_statement "proxy_activate();" (call_expression "proxy_activate()" (identifier "proxy_activate") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" (else "else") (compound_statement "{\n      (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);\n    }" ({ "{") (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41)" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0xbe4" (identifier "PTR_s_acket_from_server___s_000b23a8") (+ "+") (number_literal "-0xbe4")) (, ",") (number_literal "0x1f41") () ")"))) (; ";")) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74));" (assignment_expression "pcVar1 = (char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" (identifier "pcVar1") (= "=") (cast_expression "(char *)format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "format_telnet_command\n                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" (identifier "format_telnet_command") (argument_list "(*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),\n                              *(undefined4 *)(param_1 + 0x74))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) () ")"))))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b2e48" (* "*") (cast_expression "(code *)PTR_strlen_000b2e48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b2e48"))) () ")")) (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")")))) (; ";")) (expression_statement "puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);" (assignment_expression "puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)safemalloc(iVar2 * 4 + 1,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "safemalloc(iVar2 * 4 + 1,1)" (identifier "safemalloc") (argument_list "(iVar2 * 4 + 1,1)" (( "(") (binary_expression "iVar2 * 4 + 1" (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4")) (+ "+") (number_literal "1")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "uVar5 = (uint)*pcVar1;" (assignment_expression "uVar5 = (uint)*pcVar1" (identifier "uVar5") (= "=") (binary_expression "(uint)*pcVar1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar1"))) (; ";")) (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" (identifier "puVar7") (= "=") (identifier "puVar3")) (; ";")) (if_statement "if (uVar5 != 0) {\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;\n    puVar8 = puVar3;\n    pcVar10 = pcVar1;\n    do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);\n  }" ({ "{") (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778" (identifier "puVar11") (= "=") (binary_expression "PTR_s_acket_from_server___s_000b23a8 + -0x778" (identifier "PTR_s_acket_from_server___s_000b23a8") (+ "+") (number_literal "-0x778"))) (; ";")) (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" (identifier "puVar8") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "pcVar10 = pcVar1;" (assignment_expression "pcVar10 = pcVar1" (identifier "pcVar10") (= "=") (identifier "pcVar1")) (; ";")) (do_statement "do {\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    } while (uVar5 != 0);" (do "do") (compound_statement "{\n      while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }\n      *puVar8 = 0x5c;\n      pcVar10 = pcVar10 + 1;\n      puVar8[1] = 0x6e;\n      uVar5 = (uint)*pcVar10;\n      puVar7 = puVar8 + 2;\n      puVar8 = puVar8 + 2;\n    }" ({ "{") (while_statement "while (uVar5 != 10) {\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }" (while "while") (parenthesized_expression "(uVar5 != 10)" (( "(") (binary_expression "uVar5 != 10" (identifier "uVar5") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n        if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }\n        pcVar10 = pcVar10 + 1;\n        uVar5 = (uint)*pcVar10;\n        puVar8 = puVar7;\n        if (uVar5 == 0) goto LAB_000266e0;\n      }" ({ "{") (if_statement "if (uVar5 == 0xd) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }\n        else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" (if "if") (parenthesized_expression "(uVar5 == 0xd)" (( "(") (binary_expression "uVar5 == 0xd" (identifier "uVar5") (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x72;\n        }" ({ "{") (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" (identifier "puVar7") (= "=") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "puVar8[1] = 0x72;" (assignment_expression "puVar8[1] = 0x72" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x72")) (; ";")) (} "}")) (else_clause "else if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" (else "else") (if_statement "if (uVar5 == 9) {\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }\n        else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" (if "if") (parenthesized_expression "(uVar5 == 9)" (( "(") (binary_expression "uVar5 == 9" (identifier "uVar5") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n          puVar7 = puVar8 + 2;\n          *puVar8 = 0x5c;\n          puVar8[1] = 0x74;\n        }" ({ "{") (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" (identifier "puVar7") (= "=") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "puVar8[1] = 0x74;" (assignment_expression "puVar8[1] = 0x74" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x74")) (; ";")) (} "}")) (else_clause "else {\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" (else "else") (compound_statement "{\n          uVar6 = (undefined1)uVar5;\n          if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }\n        }" ({ "{") (expression_statement "uVar6 = (undefined1)uVar5;" (assignment_expression "uVar6 = (undefined1)uVar5" (identifier "uVar6") (= "=") (cast_expression "(undefined1)uVar5" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar5"))) (; ";")) (if_statement "if (uVar5 == 0x5c) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }\n          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" (if "if") (parenthesized_expression "(uVar5 == 0x5c)" (( "(") (binary_expression "uVar5 == 0x5c" (identifier "uVar5") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 2;\n            puVar8[1] = uVar6;\n          }" ({ "{") (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" (identifier "puVar7") (= "=") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar8[1] = uVar6;" (assignment_expression "puVar8[1] = uVar6" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}")) (else_clause "else if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" (else "else") (if_statement "if ((uVar5 & 0xff) - 0x20 < 0x5f) {\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }\n          else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" (if "if") (parenthesized_expression "((uVar5 & 0xff) - 0x20 < 0x5f)" (( "(") (binary_expression "(uVar5 & 0xff) - 0x20 < 0x5f" (binary_expression "(uVar5 & 0xff) - 0x20" (parenthesized_expression "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")")) (- "-") (number_literal "0x20")) (< "<") (number_literal "0x5f")) () ")")) (compound_statement "{\n            *puVar8 = uVar6;\n            puVar7 = puVar8 + 1;\n          }" ({ "{") (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar7 = puVar8 + 1;" (assignment_expression "puVar7 = puVar8 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);\n            puVar7 = puVar8 + 4;\n          }" ({ "{") (expression_statement "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);" (call_expression "(*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_000b2d1c)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_000b2d1c" (* "*") (cast_expression "(code *)PTR___sprintf_chk_000b2d1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_000b2d1c"))) () ")")) (argument_list "(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff)" (( "(") (identifier "puVar8") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (identifier "puVar11") (, ",") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "puVar7 = puVar8 + 4;" (assignment_expression "puVar7 = puVar8 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}")))))) (} "}")))))) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = (uint)*pcVar10;" (assignment_expression "uVar5 = (uint)*pcVar10" (identifier "uVar5") (= "=") (binary_expression "(uint)*pcVar10" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" (identifier "puVar8") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (uVar5 == 0) goto LAB_000266e0;" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000266e0;" (goto "goto") (statement_identifier "LAB_000266e0") (; ";"))) (} "}"))) (expression_statement "*puVar8 = 0x5c;" (assignment_expression "*puVar8 = 0x5c" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar8[1] = 0x6e;" (assignment_expression "puVar8[1] = 0x6e" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x6e")) (; ";")) (expression_statement "uVar5 = (uint)*pcVar10;" (assignment_expression "uVar5 = (uint)*pcVar10" (identifier "uVar5") (= "=") (binary_expression "(uint)*pcVar10" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "puVar7 = puVar8 + 2;" (assignment_expression "puVar7 = puVar8 + 2" (identifier "puVar7") (= "=") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar8 = puVar8 + 2;" (assignment_expression "puVar8 = puVar8 + 2" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000266e0:\n  puVar11 = PTR_s_acket_from_server___s_000b23a8;" (statement_identifier "LAB_000266e0") (: ":") (expression_statement "puVar11 = PTR_s_acket_from_server___s_000b23a8;" (assignment_expression "puVar11 = PTR_s_acket_from_server___s_000b23a8" (identifier "puVar11") (= "=") (identifier "PTR_s_acket_from_server___s_000b23a8")) (; ";"))) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = dupprintf(puVar11 + -0x770,puVar3);" (assignment_expression "uVar4 = dupprintf(puVar11 + -0x770,puVar3)" (identifier "uVar4") (= "=") (call_expression "dupprintf(puVar11 + -0x770,puVar3)" (identifier "dupprintf") (argument_list "(puVar11 + -0x770,puVar3)" (( "(") (binary_expression "puVar11 + -0x770" (identifier "puVar11") (+ "+") (number_literal "-0x770")) (, ",") (identifier "puVar3") () ")")))) (; ";")) (expression_statement "(**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);" (call_expression "(**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0)" (parenthesized_expression "(**(code **)**(undefined4 **)(param_1 + 0xc))" (( "(") (pointer_expression "**(code **)**(undefined4 **)(param_1 + 0xc)" (* "*") (pointer_expression "*(code **)**(undefined4 **)(param_1 + 0xc)" (* "*") (cast_expression "(code **)**(undefined4 **)(param_1 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "**(undefined4 **)(param_1 + 0xc)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))))) () ")")) (argument_list "(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0)" (( "(") (pointer_expression "*(undefined4 **)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "safefree(uVar4);" (call_expression "safefree(uVar4)" (identifier "safefree") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "safefree(puVar3);" (call_expression "safefree(puVar3)" (identifier "safefree") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (expression_statement "piVar9 = *(int **)(param_1 + 8);" (assignment_expression "piVar9 = *(int **)(param_1 + 8)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_strlen_000b2e48)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000b2e48)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b2e48" (* "*") (cast_expression "(code *)PTR_strlen_000b2e48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b2e48"))) () ")")) (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")")))) (; ";")) (expression_statement "(**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);" (call_expression "(**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4)" (parenthesized_expression "(**(code **)(*piVar9 + 8))" (( "(") (pointer_expression "**(code **)(*piVar9 + 8)" (* "*") (pointer_expression "*(code **)(*piVar9 + 8)" (* "*") (cast_expression "(code **)(*piVar9 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar9 + 8)" (( "(") (binary_expression "*piVar9 + 8" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(piVar9,pcVar1,uVar4)" (( "(") (identifier "piVar9") (, ",") (identifier "pcVar1") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "safefree(pcVar1);" (call_expression "safefree(pcVar1)" (identifier "safefree") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

int function_1(type_1 p,int var_1)

{
  char *var_7;
  type_2 *puVar2;
  int var_6;
  type_3 var_8;
  type_2 uVar5;
  type_2 *puVar6;
  type_2 *var_9;
  type_4 *var_11;
  
  if (p->state != -1) {
    if (var_1 == 0) {
      (*(*p->plug)->closing)
                (p->plug,p->closing_error_msg,p->closing_error_code,p->closing_calling_back);
      return 0;
    }
    if (var_1 == 1) {
      return 0;
    }
    if (var_1 == 3) {
                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      var_6 = (*(*p->plug)->accepting)
                        (p->plug,p->accepting_constructor,(accept_ctx_t)(p->accepting_ctx).p);
      return var_6;
    }
    if (var_1 == 2) {
      var_2(p);
    }
    else {
      (*(*p->plug)->closing)(p->plug,var_3 + -0xbe4,0x1f41,0);
    }
    return 1;
  }
  var_7 = var_4(p->remote_addr,p->remote_port,p->conf);
  var_6 = (*(type_5 *)PTR_strlen_000b2e48)(var_7);
  puVar2 = (type_2 *)var_5(var_6 * 4 + 1,1);
  var_8 = (type_3)*var_7;
  puVar6 = puVar2;
  if (var_8 != 0) {
    var_11 = var_3 + -0x778;
    var_9 = puVar2;
    do {
      while (var_8 != 10) {
        if (var_8 == 0xd) {
          puVar6 = var_9 + 2;
          *var_9 = 0x5c;
          var_9[1] = 0x72;
        }
        else if (var_8 == 9) {
          puVar6 = var_9 + 2;
          *var_9 = 0x5c;
          var_9[1] = 0x74;
        }
        else {
          uVar5 = (type_2)var_8;
          if (var_8 == 0x5c) {
            *var_9 = uVar5;
            puVar6 = var_9 + 2;
            var_9[1] = uVar5;
          }
          else if ((var_8 & 0xff) - 0x20 < 0x5f) {
            *var_9 = uVar5;
            puVar6 = var_9 + 1;
          }
          else {
            (*(type_5 *)PTR___sprintf_chk_000b2d1c)(var_9,1,0xffffffff,var_11,var_8 & 0xff);
            puVar6 = var_9 + 4;
          }
        }
        var_7 = var_7 + 1;
        var_8 = (type_3)*var_7;
        var_9 = puVar6;
        if (var_8 == 0) goto LAB_000266e0;
      }
      *var_9 = 0x5c;
      var_7 = var_7 + 1;
      var_9[1] = 0x6e;
      var_8 = (type_3)*var_7;
      puVar6 = var_9 + 2;
      var_9 = var_9 + 2;
    } while (var_8 != 0);
  }
LAB_000266e0:
  var_11 = var_3;
  *puVar6 = 0;
  var_7 = var_10(var_11 + -0x770,puVar2);
  (*(*p->plug)->log)(p->plug,2,(type_6)0x0,0,var_7,0);
                    /* WARNING: Subroutine does not return */
  var_12(var_7);
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement 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: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (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 (identifier) (number_literal) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal) (number_literal) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (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: (parenthesized_expression (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 (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1,int param_2)

{
  char *pcVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined1 uVar6;
  undefined1 *puVar7;
  undefined1 *puVar8;
  int *piVar9;
  char *pcVar10;
  undefined *puVar11;
  
  if (*(int *)(param_1 + 0x44) != -1) {
    if (param_2 == 0) {
      (**(code **)(**(int **)(param_1 + 0xc) + 4))
                (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x50),
                 *(undefined4 *)(param_1 + 0x54),*(undefined4 *)(param_1 + 0x58));
      return 0;
    }
    if (param_2 == 1) {
      return 0;
    }
    if (param_2 == 3) {
                    /* WARNING: Could not recover jumptable at 0x00026824. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar4 = (**(code **)(**(int **)(param_1 + 0xc) + 0x10))
                        (*(int **)(param_1 + 0xc),*(undefined4 *)(param_1 + 0x6c),
                         *(undefined4 *)(param_1 + 0x70));
      return uVar4;
    }
    if (param_2 == 2) {
      proxy_activate();
    }
    else {
      (**(code **)(**(int **)(param_1 + 0xc) + 4))
                (*(int **)(param_1 + 0xc),PTR_s_acket_from_server___s_000b23a8 + -0xbe4,0x1f41);
    }
    return 1;
  }
  pcVar1 = (char *)format_telnet_command
                             (*(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14),
                              *(undefined4 *)(param_1 + 0x74));
  iVar2 = (*(code *)PTR_strlen_000b2e48)(pcVar1);
  puVar3 = (undefined1 *)safemalloc(iVar2 * 4 + 1,1);
  uVar5 = (uint)*pcVar1;
  puVar7 = puVar3;
  if (uVar5 != 0) {
    puVar11 = PTR_s_acket_from_server___s_000b23a8 + -0x778;
    puVar8 = puVar3;
    pcVar10 = pcVar1;
    do {
      while (uVar5 != 10) {
        if (uVar5 == 0xd) {
          puVar7 = puVar8 + 2;
          *puVar8 = 0x5c;
          puVar8[1] = 0x72;
        }
        else if (uVar5 == 9) {
          puVar7 = puVar8 + 2;
          *puVar8 = 0x5c;
          puVar8[1] = 0x74;
        }
        else {
          uVar6 = (undefined1)uVar5;
          if (uVar5 == 0x5c) {
            *puVar8 = uVar6;
            puVar7 = puVar8 + 2;
            puVar8[1] = uVar6;
          }
          else if ((uVar5 & 0xff) - 0x20 < 0x5f) {
            *puVar8 = uVar6;
            puVar7 = puVar8 + 1;
          }
          else {
            (*(code *)PTR___sprintf_chk_000b2d1c)(puVar8,1,0xffffffff,puVar11,uVar5 & 0xff);
            puVar7 = puVar8 + 4;
          }
        }
        pcVar10 = pcVar10 + 1;
        uVar5 = (uint)*pcVar10;
        puVar8 = puVar7;
        if (uVar5 == 0) goto LAB_000266e0;
      }
      *puVar8 = 0x5c;
      pcVar10 = pcVar10 + 1;
      puVar8[1] = 0x6e;
      uVar5 = (uint)*pcVar10;
      puVar7 = puVar8 + 2;
      puVar8 = puVar8 + 2;
    } while (uVar5 != 0);
  }
LAB_000266e0:
  puVar11 = PTR_s_acket_from_server___s_000b23a8;
  *puVar7 = 0;
  uVar4 = dupprintf(puVar11 + -0x770,puVar3);
  (**(code **)**(undefined4 **)(param_1 + 0xc))(*(undefined4 **)(param_1 + 0xc),2,0,0,uVar4,0);
  safefree(uVar4);
  safefree(puVar3);
  piVar9 = *(int **)(param_1 + 8);
  uVar4 = (*(code *)PTR_strlen_000b2e48)(pcVar1);
  (**(code **)(*piVar9 + 8))(piVar9,pcVar1,uVar4);
  safefree(pcVar1);
  *(undefined4 *)(param_1 + 0x44) = 1;
  return 0;
}

