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

void telnet_receive(Plug plug,int urgent,char *data,int len)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  wchar_t wVar4;
  plug_function_table *ppVar5;
  char *pcVar6;
  undefined1 *puVar7;
  char *pcVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  int iVar12;
  uint option;
  plug_function_table *ppVar13;
  int iVar14;
  byte *pbVar15;
  byte *pbVar16;
  long in_FS_OFFSET;
  byte bVar17;
  char *local_88;
  wchar_t local_74;
  bool local_60;
  bool local_58;
  char *ekey;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (urgent != 0) {
    *(undefined4 *)(plug + 0xd) = 1;
  }
  *(undefined4 *)((long)plug + 0x84) = 1;
  local_74 = L'\0';
  wVar4 = L'\0';
  local_88 = (char *)0x0;
  pbVar15 = (byte *)data;
switchD_0012c4c9_caseD_a:
  if (pbVar15 == (byte *)(data + (uint)len)) {
    if (wVar4 != L'\0') {
      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);
      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);
    }
    safefree(local_88);
    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  pbVar16 = pbVar15 + 1;
  bVar1 = *pbVar15;
  option = (uint)bVar1;
  pbVar15 = pbVar16;
  switch(*(int *)(plug + 0x11)) {
  case 0:
  case 9:
    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {
      *(undefined4 *)(plug + 0x11) = 0;
    }
    else {
      if (option != 0xff) {
        if (*(int *)(plug + 0xd) == 0) {
          if (local_74 <= wVar4) {
            local_74 = wVar4 + L'Ā';
            local_88 = (char *)saferealloc(local_88,(long)local_74,1);
          }
          local_88[wVar4] = bVar1;
          wVar4 = wVar4 + L'\x01';
LAB_0012c24b:
          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {
            *(undefined4 *)(plug + 0x11) = 9;
            goto switchD_0012c4c9_caseD_a;
          }
        }
        else {
          if (option != 0xf2) goto LAB_0012c24b;
          *(undefined4 *)(plug + 0xd) = 0;
        }
        *(undefined4 *)(plug + 0x11) = 0;
        goto switchD_0012c4c9_caseD_a;
      }
      *(undefined4 *)(plug + 0x11) = 1;
    }
    goto switchD_0012c4c9_caseD_a;
  case 1:
    if (option == 0xfd) {
      *(undefined4 *)(plug + 0x11) = 4;
    }
    else if (option == 0xfe) {
      *(undefined4 *)(plug + 0x11) = 5;
    }
    else if (option == 0xfb) {
      *(undefined4 *)(plug + 0x11) = 2;
    }
    else if (option == 0xfc) {
      *(undefined4 *)(plug + 0x11) = 3;
    }
    else if (option == 0xfa) {
      *(undefined4 *)(plug + 0x11) = 6;
    }
    else if (option == 0xf2) {
      *(undefined4 *)(plug + 0xd) = 0;
      *(undefined4 *)(plug + 0x11) = 0;
    }
    else {
      if (option == 0xff) {
        if (local_74 <= wVar4) {
          local_74 = wVar4 + L'Ā';
          local_88 = (char *)saferealloc(local_88,(long)local_74,1);
        }
        local_88[wVar4] = bVar1;
        wVar4 = wVar4 + L'\x01';
      }
      *(undefined4 *)(plug + 0x11) = 0;
    }
    goto switchD_0012c4c9_caseD_a;
  case 2:
    proc_rec_opt((Telnet)plug,0xfb,option);
    *(undefined4 *)(plug + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 3:
    proc_rec_opt((Telnet)plug,0xfc,option);
    *(undefined4 *)(plug + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 4:
    proc_rec_opt((Telnet)plug,0xfd,option);
    *(undefined4 *)(plug + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 5:
    proc_rec_opt((Telnet)plug,0xfe,option);
    *(undefined4 *)(plug + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 6:
    *(uint *)((long)plug + 0x6c) = option;
    *(undefined4 *)(plug + 0xe) = 0;
    *(undefined4 *)(plug + 0x11) = 7;
    goto switchD_0012c4c9_caseD_a;
  case 7:
    if (option == 0xff) {
      *(undefined4 *)(plug + 0x11) = 8;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  case 8:
    if (option == 0xf0) {
      iVar14 = *(int *)((long)plug + 0x6c);
      if (iVar14 == 0x20) {
        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {
          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);
          uVar9 = 0xffffffffffffffff;
          pcVar8 = pcVar6;
          do {
            if (uVar9 == 0) break;
            uVar9 = uVar9 - 1;
            cVar2 = *pcVar8;
            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
          } while (cVar2 != '\0');
          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);
          *puVar7 = 0xff;
          puVar7[1] = 0xfa;
          puVar7[2] = 0x20;
          puVar7[3] = 0;
          strcpy(puVar7 + 4,pcVar6);
          lVar10 = -1;
          pcVar8 = pcVar6;
          do {
            if (lVar10 == 0) break;
            lVar10 = lVar10 + -1;
            cVar2 = *pcVar8;
            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
          } while (cVar2 != '\0');
          lVar11 = (long)(int)(~(uint)lVar10 + 3);
          puVar7[lVar11] = 0xff;
          puVar7[lVar11 + 1] = 0xf0;
          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);
          *(undefined4 *)((long)plug + 100) = uVar3;
          logevent(plug[3],"server:\tSB TSPEED SEND");
          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);
          logevent(plug[3],pcVar8);
          safefree(pcVar8);
          safefree(puVar7);
        }
        else {
          logevent(plug[3],"server:\tSB TSPEED <something weird>");
        }
      }
      else if (iVar14 < 0x21) {
        if (iVar14 == 0x18) {
          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {
            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);
            uVar9 = 0xffffffffffffffff;
            pcVar8 = pcVar6;
            do {
              if (uVar9 == 0) break;
              uVar9 = uVar9 - 1;
              cVar2 = *pcVar8;
              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
            } while (cVar2 != '\0');
            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);
            *puVar7 = 0xff;
            puVar7[1] = 0xfa;
            puVar7[2] = 0x18;
            puVar7[3] = 0;
            cVar2 = *pcVar6;
            if (cVar2 == '\0') {
              iVar14 = 0;
              lVar10 = 0;
            }
            else {
              lVar11 = 1;
              do {
                lVar10 = lVar11;
                if ((byte)(cVar2 + 0x9fU) < 0x1a) {
                  cVar2 = cVar2 + -0x20;
                }
                puVar7[lVar10 + 3] = cVar2;
                iVar14 = (int)lVar10;
                cVar2 = pcVar6[lVar10];
                lVar11 = lVar10 + 1;
              } while (cVar2 != '\0');
            }
            puVar7[lVar10 + 4] = 0xff;
            puVar7[lVar10 + 5] = 0xf0;
            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);
            *(undefined4 *)((long)plug + 100) = uVar3;
            puVar7[lVar10 + 4] = 0;
            logevent(plug[3],"server:\tSB TTYPE SEND");
            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);
            logevent(plug[3],pcVar8);
            safefree(pcVar8);
            safefree(puVar7);
          }
          else {
            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");
          }
        }
      }
      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {
        ppVar13 = plug[0xf];
        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));
        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {
          pcVar8 = telopt(iVar14);
          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);
          logevent(plug[3],pcVar8);
          safefree(pcVar8);
          local_58 = true;
          local_60 = false;
          if (*(int *)((long)plug + 0x6c) == 0x24) {
            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);
            local_58 = iVar14 != 0;
            local_60 = !local_58;
            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);
            if (ppVar13 < ppVar5) {
              do {
                cVar2 = *(char *)&ppVar13->log;
                if (cVar2 == '\0') {
                  local_58 = true;
                  local_60 = false;
                }
                else {
                  if (cVar2 == '\x01') {
                    local_58 = false;
                  }
                  if (cVar2 == '\x01') {
                    local_60 = true;
                  }
                }
                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);
              } while (ppVar5 != ppVar13);
            }
          }
          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);
          if (pcVar8 == (char *)0x0) {
            iVar14 = 0x14;
          }
          else {
            iVar14 = 0x14;
            do {
              lVar10 = -1;
              pcVar6 = ekey;
              do {
                if (lVar10 == 0) break;
                lVar10 = lVar10 + -1;
                cVar2 = *pcVar6;
                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
              } while (cVar2 != '\0');
              lVar11 = -1;
              do {
                if (lVar11 == 0) break;
                lVar11 = lVar11 + -1;
                cVar2 = *pcVar8;
                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
              } while (cVar2 != '\0');
              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;
              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);
            } while (pcVar8 != (char *)0x0);
          }
          pcVar8 = get_remote_username((Conf *)plug[0x12]);
          if (pcVar8 != (char *)0x0) {
            lVar10 = -1;
            pcVar6 = pcVar8;
            do {
              if (lVar10 == 0) break;
              lVar10 = lVar10 + -1;
              cVar2 = *pcVar6;
              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
            } while (cVar2 != '\0');
            iVar14 = iVar14 + 5 + ~(uint)lVar10;
          }
          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);
          *puVar7 = 0xff;
          puVar7[1] = 0xfa;
          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);
          puVar7[3] = 0;
          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);
          if (pcVar6 == (char *)0x0) {
            iVar14 = 4;
          }
          else {
            iVar14 = 4;
            do {
              iVar12 = iVar14 + 1;
              puVar7[iVar14] = local_60;
              cVar2 = *ekey;
              if (cVar2 != '\0') {
                lVar10 = (long)(iVar14 + 2);
                do {
                  iVar12 = (int)lVar10;
                  puVar7[lVar10 + -1] = cVar2;
                  lVar10 = lVar10 + 1;
                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];
                } while (cVar2 != '\0');
              }
              iVar14 = iVar12 + 1;
              puVar7[iVar12] = local_58;
              cVar2 = *pcVar6;
              if (cVar2 != '\0') {
                lVar10 = (long)(iVar12 + 2);
                do {
                  iVar14 = (int)lVar10;
                  puVar7[lVar10 + -1] = cVar2;
                  lVar10 = lVar10 + 1;
                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];
                } while (cVar2 != '\0');
              }
              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);
            } while (pcVar6 != (char *)0x0);
          }
          iVar12 = iVar14;
          if (pcVar8 != (char *)0x0) {
            puVar7[iVar14] = local_60;
            puVar7[iVar14 + 1] = 0x55;
            puVar7[iVar14 + 2] = 0x53;
            puVar7[iVar14 + 3] = 0x45;
            puVar7[iVar14 + 4] = 0x52;
            iVar12 = iVar14 + 6;
            puVar7[iVar14 + 5] = local_58;
            cVar2 = *pcVar8;
            if (cVar2 != '\0') {
              lVar10 = (long)(iVar14 + 7);
              do {
                iVar12 = (int)lVar10;
                puVar7[lVar10 + -1] = cVar2;
                lVar10 = lVar10 + 1;
                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];
              } while (cVar2 != '\0');
            }
          }
          puVar7[iVar12] = 0xff;
          puVar7[iVar12 + 1] = 0xf0;
          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);
          *(undefined4 *)((long)plug + 100) = uVar3;
          if (iVar12 + 2 == 6) {
            pcVar6 = telopt(*(int *)((long)plug + 0x6c));
            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);
            logevent(plug[3],pcVar6);
            safefree(pcVar6);
          }
          else {
            pcVar6 = telopt(*(int *)((long)plug + 0x6c));
            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);
            logevent(plug[3],pcVar6);
            safefree(pcVar6);
            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);
            while (pcVar6 != (char *)0x0) {
              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);
              logevent(plug[3],pcVar6);
              safefree(pcVar6);
              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);
            }
            if (pcVar8 != (char *)0x0) {
              pcVar6 = dupprintf("\tUSER=%s",pcVar8);
              logevent(plug[3],pcVar6);
              safefree(pcVar6);
            }
          }
          safefree(puVar7);
          safefree(pcVar8);
        }
      }
      *(undefined4 *)(plug + 0x11) = 0;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  default:
    goto switchD_0012c4c9_caseD_a;
  }
  if (*(int *)(plug + 0x10) <= *(int *)(plug + 0xe)) {
    iVar14 = *(int *)(plug + 0x10) + 0x400;
    *(int *)(plug + 0x10) = iVar14;
    ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);
    plug[0xf] = ppVar5;
  }
  iVar14 = *(int *)(plug + 0xe);
  *(int *)(plug + 0xe) = iVar14 + 1;
  *(byte *)((long)&plug[0xf]->log + (long)iVar14) = bVar1;
  *(undefined4 *)(plug + 0x11) = 7;
  goto switchD_0012c4c9_caseD_a;
}



void FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  undefined8 uVar5;
  char *pcVar6;
  undefined1 *puVar7;
  char *pcVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  byte *pbVar15;
  byte *pbVar16;
  long in_FS_OFFSET;
  byte bVar17;
  long local_88;
  int local_74;
  bool local_60;
  bool local_58;
  char *local_48;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_2 != 0) {
    *(undefined4 *)(param_1 + 0x68) = 1;
  }
  *(undefined4 *)(param_1 + 0x84) = 1;
  local_74 = 0;
  iVar4 = 0;
  local_88 = 0;
  pbVar15 = param_3;
switchD_0012c4c9_caseD_a:
  if (pbVar15 == param_3 + param_4) {
    if (iVar4 != 0) {
      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);
      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);
    }
    FUN_00122b5a(local_88);
    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  pbVar16 = pbVar15 + 1;
  bVar1 = *pbVar15;
  uVar13 = (uint)bVar1;
  pbVar15 = pbVar16;
  switch(*(int *)(param_1 + 0x88)) {
  case 0:
  case 9:
    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {
      *(undefined4 *)(param_1 + 0x88) = 0;
    }
    else {
      if (uVar13 != 0xff) {
        if (*(int *)(param_1 + 0x68) == 0) {
          if (local_74 <= iVar4) {
            local_74 = iVar4 + 0x100;
            local_88 = FUN_001226ba(local_88,(long)local_74,1);
          }
          *(byte *)(local_88 + iVar4) = bVar1;
          iVar4 = iVar4 + 1;
LAB_0012c24b:
          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {
            *(undefined4 *)(param_1 + 0x88) = 9;
            goto switchD_0012c4c9_caseD_a;
          }
        }
        else {
          if (uVar13 != 0xf2) goto LAB_0012c24b;
          *(undefined4 *)(param_1 + 0x68) = 0;
        }
        *(undefined4 *)(param_1 + 0x88) = 0;
        goto switchD_0012c4c9_caseD_a;
      }
      *(undefined4 *)(param_1 + 0x88) = 1;
    }
    goto switchD_0012c4c9_caseD_a;
  case 1:
    if (uVar13 == 0xfd) {
      *(undefined4 *)(param_1 + 0x88) = 4;
    }
    else if (uVar13 == 0xfe) {
      *(undefined4 *)(param_1 + 0x88) = 5;
    }
    else if (uVar13 == 0xfb) {
      *(undefined4 *)(param_1 + 0x88) = 2;
    }
    else if (uVar13 == 0xfc) {
      *(undefined4 *)(param_1 + 0x88) = 3;
    }
    else if (uVar13 == 0xfa) {
      *(undefined4 *)(param_1 + 0x88) = 6;
    }
    else if (uVar13 == 0xf2) {
      *(undefined4 *)(param_1 + 0x68) = 0;
      *(undefined4 *)(param_1 + 0x88) = 0;
    }
    else {
      if (uVar13 == 0xff) {
        if (local_74 <= iVar4) {
          local_74 = iVar4 + 0x100;
          local_88 = FUN_001226ba(local_88,(long)local_74,1);
        }
        *(byte *)(local_88 + iVar4) = bVar1;
        iVar4 = iVar4 + 1;
      }
      *(undefined4 *)(param_1 + 0x88) = 0;
    }
    goto switchD_0012c4c9_caseD_a;
  case 2:
    FUN_0012c01f(param_1,0xfb,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 3:
    FUN_0012c01f(param_1,0xfc,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 4:
    FUN_0012c01f(param_1,0xfd,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 5:
    FUN_0012c01f(param_1,0xfe,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 6:
    *(uint *)(param_1 + 0x6c) = uVar13;
    *(undefined4 *)(param_1 + 0x70) = 0;
    *(undefined4 *)(param_1 + 0x88) = 7;
    goto switchD_0012c4c9_caseD_a;
  case 7:
    if (uVar13 == 0xff) {
      *(undefined4 *)(param_1 + 0x88) = 8;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  case 8:
    if (uVar13 == 0xf0) {
      iVar14 = *(int *)(param_1 + 0x6c);
      if (iVar14 == 0x20) {
        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {
          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);
          uVar9 = 0xffffffffffffffff;
          pcVar8 = pcVar6;
          do {
            if (uVar9 == 0) break;
            uVar9 = uVar9 - 1;
            cVar2 = *pcVar8;
            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
          } while (cVar2 != '\0');
          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);
          *puVar7 = 0xff;
          puVar7[1] = 0xfa;
          puVar7[2] = 0x20;
          puVar7[3] = 0;
          strcpy(puVar7 + 4,pcVar6);
          lVar10 = -1;
          pcVar8 = pcVar6;
          do {
            if (lVar10 == 0) break;
            lVar10 = lVar10 + -1;
            cVar2 = *pcVar8;
            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
          } while (cVar2 != '\0');
          lVar11 = (long)(int)(~(uint)lVar10 + 3);
          puVar7[lVar11] = 0xff;
          puVar7[lVar11 + 1] = 0xf0;
          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))
                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);
          *(undefined4 *)(param_1 + 100) = uVar3;
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");
          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
          FUN_00122b5a(uVar5);
          FUN_00122b5a(puVar7);
        }
        else {
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");
        }
      }
      else if (iVar14 < 0x21) {
        if (iVar14 == 0x18) {
          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {
            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);
            uVar9 = 0xffffffffffffffff;
            pcVar8 = pcVar6;
            do {
              if (uVar9 == 0) break;
              uVar9 = uVar9 - 1;
              cVar2 = *pcVar8;
              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
            } while (cVar2 != '\0');
            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);
            *puVar7 = 0xff;
            puVar7[1] = 0xfa;
            puVar7[2] = 0x18;
            puVar7[3] = 0;
            cVar2 = *pcVar6;
            if (cVar2 == '\0') {
              iVar14 = 0;
              lVar10 = 0;
            }
            else {
              lVar11 = 1;
              do {
                lVar10 = lVar11;
                if ((byte)(cVar2 + 0x9fU) < 0x1a) {
                  cVar2 = cVar2 + -0x20;
                }
                puVar7[lVar10 + 3] = cVar2;
                iVar14 = (int)lVar10;
                cVar2 = pcVar6[lVar10];
                lVar11 = lVar10 + 1;
              } while (cVar2 != '\0');
            }
            puVar7[lVar10 + 4] = 0xff;
            puVar7[lVar10 + 5] = 0xf0;
            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))
                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);
            *(undefined4 *)(param_1 + 100) = uVar3;
            puVar7[lVar10 + 4] = 0;
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");
            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
            FUN_00122b5a(uVar5);
            FUN_00122b5a(puVar7);
          }
          else {
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");
          }
        }
      }
      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {
        pcVar6 = *(char **)(param_1 + 0x78);
        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);
        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {
          uVar5 = FUN_0012b347();
          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
          FUN_00122b5a(uVar5);
          local_58 = true;
          local_60 = false;
          if (*(int *)(param_1 + 0x6c) == 0x24) {
            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);
            local_58 = iVar14 != 0;
            local_60 = !local_58;
            pcVar6 = pcVar6 + 1;
            if (pcVar6 < pcVar8) {
              do {
                cVar2 = *pcVar6;
                if (cVar2 == '\0') {
                  local_58 = true;
                  local_60 = false;
                }
                else {
                  if (cVar2 == '\x01') {
                    local_58 = false;
                  }
                  if (cVar2 == '\x01') {
                    local_60 = true;
                  }
                }
                pcVar6 = pcVar6 + 1;
              } while (pcVar8 != pcVar6);
            }
          }
          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);
          if (pcVar8 == (char *)0x0) {
            iVar14 = 0x14;
          }
          else {
            iVar14 = 0x14;
            do {
              lVar10 = -1;
              pcVar6 = local_48;
              do {
                if (lVar10 == 0) break;
                lVar10 = lVar10 + -1;
                cVar2 = *pcVar6;
                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
              } while (cVar2 != '\0');
              lVar11 = -1;
              do {
                if (lVar11 == 0) break;
                lVar11 = lVar11 + -1;
                cVar2 = *pcVar8;
                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
              } while (cVar2 != '\0');
              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;
              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)
              ;
            } while (pcVar8 != (char *)0x0);
          }
          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));
          if (pcVar8 != (char *)0x0) {
            lVar10 = -1;
            pcVar6 = pcVar8;
            do {
              if (lVar10 == 0) break;
              lVar10 = lVar10 + -1;
              cVar2 = *pcVar6;
              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
            } while (cVar2 != '\0');
            iVar14 = iVar14 + 5 + ~(uint)lVar10;
          }
          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);
          *puVar7 = 0xff;
          puVar7[1] = 0xfa;
          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);
          puVar7[3] = 0;
          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);
          if (pcVar6 == (char *)0x0) {
            iVar14 = 4;
          }
          else {
            iVar14 = 4;
            do {
              iVar12 = iVar14 + 1;
              puVar7[iVar14] = local_60;
              cVar2 = *local_48;
              if (cVar2 != '\0') {
                lVar10 = (long)(iVar14 + 2);
                do {
                  iVar12 = (int)lVar10;
                  puVar7[lVar10 + -1] = cVar2;
                  lVar10 = lVar10 + 1;
                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];
                } while (cVar2 != '\0');
              }
              iVar14 = iVar12 + 1;
              puVar7[iVar12] = local_58;
              cVar2 = *pcVar6;
              if (cVar2 != '\0') {
                lVar10 = (long)(iVar12 + 2);
                do {
                  iVar14 = (int)lVar10;
                  puVar7[lVar10 + -1] = cVar2;
                  lVar10 = lVar10 + 1;
                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];
                } while (cVar2 != '\0');
              }
              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)
              ;
            } while (pcVar6 != (char *)0x0);
          }
          iVar12 = iVar14;
          if (pcVar8 != (char *)0x0) {
            puVar7[iVar14] = local_60;
            puVar7[iVar14 + 1] = 0x55;
            puVar7[iVar14 + 2] = 0x53;
            puVar7[iVar14 + 3] = 0x45;
            puVar7[iVar14 + 4] = 0x52;
            iVar12 = iVar14 + 6;
            puVar7[iVar14 + 5] = local_58;
            cVar2 = *pcVar8;
            if (cVar2 != '\0') {
              lVar10 = (long)(iVar14 + 7);
              do {
                iVar12 = (int)lVar10;
                puVar7[lVar10 + -1] = cVar2;
                lVar10 = lVar10 + 1;
                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];
              } while (cVar2 != '\0');
            }
          }
          puVar7[iVar12] = 0xff;
          puVar7[iVar12 + 1] = 0xf0;
          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))
                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);
          *(undefined4 *)(param_1 + 100) = uVar3;
          if (iVar12 + 2 == 6) {
            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));
            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
            FUN_00122b5a(uVar5);
          }
          else {
            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));
            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
            FUN_00122b5a(uVar5);
            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);
            while (lVar10 != 0) {
              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);
              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
              FUN_00122b5a(uVar5);
              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);
            }
            if (pcVar8 != (char *)0x0) {
              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);
              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
              FUN_00122b5a(uVar5);
            }
          }
          FUN_00122b5a(puVar7);
          FUN_00122b5a(pcVar8);
        }
      }
      *(undefined4 *)(param_1 + 0x88) = 0;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  default:
    goto switchD_0012c4c9_caseD_a;
  }
  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {
    iVar14 = *(int *)(param_1 + 0x80) + 0x400;
    *(int *)(param_1 + 0x80) = iVar14;
    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);
    *(undefined8 *)(param_1 + 0x78) = uVar5;
  }
  iVar14 = *(int *)(param_1 + 0x70);
  *(int *)(param_1 + 0x70) = iVar14 + 1;
  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;
  *(undefined4 *)(param_1 + 0x88) = 7;
  goto switchD_0012c4c9_caseD_a;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV RBX,RDI
MOV R15,RDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x48],RAX
XOR EAX,EAX
TEST ESI,ESI
JZ 0x0012c1dd
MOV dword ptr [RDI + 0x68],0x1
MOV dword ptr [RBX + 0x84],0x1
MOV ECX,ECX
LEA RAX,[R15 + RCX*0x1]
MOV qword ptr [RSP + 0x8],RAX
MOV dword ptr [RSP + 0x14],0x0
MOV R14D,0x0
MOV qword ptr [RSP],0x0
LEA R13,[0x17efd4]
LEA RAX,[RSP + 0x40]
MOV qword ptr [RSP + 0x18],RAX
JMP 0x0012c49c
TEST EBP,EBP
JNZ 0x0012c227
CMP EDX,0x9
JZ 0x0012c25f
CMP EBP,0xff
JZ 0x0012c26e
CMP dword ptr [RBX + 0x68],0x0
JNZ 0x0012c29f
CMP R14D,dword ptr [RSP + 0x14]
JGE 0x0012c27d
MOVSXD RAX,R14D
MOV RCX,qword ptr [RSP]
MOV byte ptr [RCX + RAX*0x1],R12B
LEA R14D,[R14 + 0x1]
CMP EBP,0xd
JZ 0x0012c2b0
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x1
JMP 0x0012c49c
LEA EAX,[R14 + 0x100]
MOV dword ptr [RSP + 0x14],EAX
MOVSXD RSI,EAX
MOV EDX,0x1
MOV RDI,qword ptr [RSP]
CALL 0x001226ba
MOV qword ptr [RSP],RAX
JMP 0x0012c23c
CMP EBP,0xf2
JNZ 0x0012c24b
MOV dword ptr [RBX + 0x68],0x0
JMP 0x0012c250
CMP dword ptr [RBX + 0x54],0x1
JZ 0x0012c250
MOV dword ptr [RBX + 0x88],0x9
JMP 0x0012c49c
CMP EBP,0xfd
JZ 0x0012c30c
CMP EBP,0xfe
JZ 0x0012c31b
CMP EBP,0xfb
JZ 0x0012c32a
CMP EBP,0xfc
JZ 0x0012c339
CMP EBP,0xfa
JZ 0x0012c348
CMP EBP,0xf2
JZ 0x0012c357
CMP EBP,0xff
JZ 0x0012c36d
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x4
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x5
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x2
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x3
JMP 0x0012c49c
MOV dword ptr [RBX + 0x88],0x6
JMP 0x0012c49c
MOV dword ptr [RBX + 0x68],0x0
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
CMP R14D,dword ptr [RSP + 0x14]
JGE 0x0012c388
MOVSXD RAX,R14D
MOV RCX,qword ptr [RSP]
MOV byte ptr [RCX + RAX*0x1],R12B
LEA R14D,[R14 + 0x1]
JMP 0x0012c2fd
LEA EAX,[R14 + 0x100]
MOV dword ptr [RSP + 0x14],EAX
MOVSXD RSI,EAX
MOV EDX,0x1
MOV RDI,qword ptr [RSP]
CALL 0x001226ba
MOV qword ptr [RSP],RAX
JMP 0x0012c374
MOV EDX,EBP
MOV ESI,0xfb
MOV RDI,RBX
CALL 0x0012c01f
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV EDX,EBP
MOV ESI,0xfc
MOV RDI,RBX
CALL 0x0012c01f
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV EDX,EBP
MOV ESI,0xfd
MOV RDI,RBX
CALL 0x0012c01f
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV EDX,EBP
MOV ESI,0xfe
MOV RDI,RBX
CALL 0x0012c01f
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
MOV dword ptr [RBX + 0x6c],EBP
MOV dword ptr [RBX + 0x70],0x0
MOV dword ptr [RBX + 0x88],0x7
JMP 0x0012c49c
CMP EBP,0xff
JNZ 0x0012c474
MOV dword ptr [RBX + 0x88],0x8
JMP 0x0012c49c
ADD ESI,0x400
MOV dword ptr [RBX + 0x80],ESI
MOVSXD RSI,ESI
MOV RDI,qword ptr [RBX + 0x78]
MOV EDX,0x1
CALL 0x001226ba
MOV qword ptr [RBX + 0x78],RAX
JMP 0x0012c47f
CMP EBP,0xf0
JZ 0x0012c4cb
MOV ESI,dword ptr [RBX + 0x80]
CMP dword ptr [RBX + 0x70],ESI
JGE 0x0012c449
MOV RDX,qword ptr [RBX + 0x78]
MOV EAX,dword ptr [RBX + 0x70]
LEA ECX,[RAX + 0x1]
MOV dword ptr [RBX + 0x70],ECX
CDQE
MOV byte ptr [RDX + RAX*0x1],R12B
MOV dword ptr [RBX + 0x88],0x7
CMP R15,qword ptr [RSP + 0x8]
JZ 0x0012cb9c
ADD R15,0x1
MOVZX R12D,byte ptr [R15 + -0x1]
MOVZX EBP,R12B
MOV EDX,dword ptr [RBX + 0x88]
CMP EDX,0x9
JA 0x0012c49c
MOV EAX,EDX
MOVSXD RAX,dword ptr [R13 + RAX*0x4]
ADD RAX,R13
JMP RAX
MOV EDI,dword ptr [RBX + 0x6c]
CMP EDI,0x20
JZ 0x0012c520
JG 0x0012c4ff
CMP EDI,0x18
JNZ 0x0012c511
CMP dword ptr [RBX + 0x70],0x1
JNZ 0x0012c4ed
MOV RAX,qword ptr [RBX + 0x78]
CMP byte ptr [RAX],0x1
JZ 0x0012c618
MOV RDI,qword ptr [RBX + 0x18]
LEA RSI,[0x17f168]
CALL 0x0014a676
JMP 0x0012c511
CMP EDI,0x24
JZ 0x0012c714
CMP EDI,0x27
JZ 0x0012c714
MOV dword ptr [RBX + 0x88],0x0
JMP 0x0012c49c
CMP dword ptr [RBX + 0x70],0x1
JNZ 0x0012c52f
MOV RAX,qword ptr [RBX + 0x78]
CMP byte ptr [RAX],0x1
JZ 0x0012c541
MOV RDI,qword ptr [RBX + 0x18]
LEA RSI,[0x17f140]
CALL 0x0014a676
JMP 0x0012c511
MOV RDI,qword ptr [RBX + 0x90]
MOV ESI,0x31
CALL 0x0011571e
MOV R12,RAX
MOV RCX,-0x1
MOV RDI,RAX
MOV EAX,0x0
SCASB.REPNE RDI
NOT RCX
LEA RDI,[RCX + 0x13]
MOV ESI,0x1
CALL 0x001222ee
MOV RBP,RAX
MOV byte ptr [RAX],0xff
MOV byte ptr [RAX + 0x1],0xfa
MOV byte ptr [RAX + 0x2],0x20
MOV byte ptr [RAX + 0x3],0x0
LEA RDI,[RAX + 0x4]
MOV RSI,R12
CALL 0x00110f80
MOV RCX,-0x1
MOV RDI,R12
MOV EAX,0x0
SCASB.REPNE RDI
NOT RCX
LEA RAX,[RCX + -0x1]
LEA EDX,[RAX + 0x4]
MOVSXD RDX,EDX
MOV byte ptr [RBP + RDX*0x1],0xff
MOV byte ptr [RBP + RDX*0x1 + 0x1],0xf0
MOV RDI,qword ptr [RBX + 0x8]
LEA EDX,[RAX + 0x6]
MOV RAX,qword ptr [RDI]
MOV RSI,RBP
CALL qword ptr [RAX + 0x10]
MOV dword ptr [RBX + 0x64],EAX
MOV RDI,qword ptr [RBX + 0x18]
LEA RSI,[0x17ea3c]
CALL 0x0014a676
MOV RSI,R12
LEA RDI,[0x17ea53]
MOV EAX,0x0
CALL 0x0012292d
MOV R12,RAX
MOV RDI,qword ptr [RBX + 0x18]
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,R12
CALL 0x00122b5a
MOV RDI,RBP
CALL 0x00122b5a
JMP 0x0012c511
MOV RDI,qword ptr [RBX + 0x90]
MOV ESI,0x30
CALL 0x0011571e
MOV R12,RAX
MOV RCX,-0x1
MOV RDI,RAX
MOV EAX,0x0
SCASB.REPNE RDI
NOT RCX
LEA RDI,[RCX + 0x13]
MOV ESI,0x1
CALL 0x001222ee
MOV RBP,RAX
MOV byte ptr [RAX],0xff
MOV byte ptr [RAX + 0x1],0xfa
MOV byte ptr [RAX + 0x2],0x18
MOV byte ptr [RAX + 0x3],0x0
MOVZX EAX,byte ptr [R12]
TEST AL,AL
JZ 0x0012c708
MOV ECX,0x1
JMP 0x0012c677
MOV RCX,RDX
LEA ESI,[RAX + -0x61]
LEA EDX,[RAX + -0x20]
CMP SIL,0x1a
CMOVC EAX,EDX
MOV byte ptr [RBP + RCX*0x1 + 0x3],AL
MOV ESI,ECX
LEA RDX,[RCX + 0x1]
MOVZX EAX,byte ptr [R12 + RDX*0x1 + -0x1]
TEST AL,AL
JNZ 0x0012c674
LEA R12,[RBP + RCX*0x1 + 0x4]
MOV byte ptr [R12],0xff
MOV byte ptr [RBP + RCX*0x1 + 0x5],0xf0
MOV RDI,qword ptr [RBX + 0x8]
LEA EDX,[RSI + 0x6]
MOV RAX,qword ptr [RDI]
MOV RSI,RBP
CALL qword ptr [RAX + 0x10]
MOV dword ptr [RBX + 0x64],EAX
MOV byte ptr [R12],0x0
MOV RDI,qword ptr [RBX + 0x18]
LEA RSI,[0x17ea6b]
CALL 0x0014a676
LEA RSI,[RBP + 0x4]
LEA RDI,[0x17ea81]
MOV EAX,0x0
CALL 0x0012292d
MOV R12,RAX
MOV RDI,qword ptr [RBX + 0x18]
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,R12
CALL 0x00122b5a
MOV RDI,RBP
CALL 0x00122b5a
JMP 0x0012c511
MOV ESI,0x0
MOV ECX,0x0
JMP 0x0012c698
MOV RBP,qword ptr [RBX + 0x78]
MOVSXD RAX,dword ptr [RBX + 0x70]
LEA R12,[RBP + RAX*0x1]
CMP RBP,R12
JNC 0x0012c511
CMP byte ptr [RBP],0x1
JNZ 0x0012c511
CALL 0x0012b347
MOV RSI,RAX
LEA RDI,[0x17ea98]
MOV EAX,0x0
CALL 0x0012292d
MOV RDI,qword ptr [RBX + 0x18]
MOV qword ptr [RSP + 0x20],RAX
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00122b5a
MOV dword ptr [RSP + 0x30],0x1
MOV dword ptr [RSP + 0x28],0x0
CMP dword ptr [RBX + 0x6c],0x24
JZ 0x0012cac3
MOV RDI,qword ptr [RBX + 0x90]
MOV R12,qword ptr [RSP + 0x18]
MOV RCX,R12
MOV EDX,0x0
MOV ESI,0x33
CALL 0x001158c4
MOV RSI,RAX
TEST RAX,RAX
JZ 0x0012cb49
MOV EBP,0x14
MOV RDX,qword ptr [RSP + 0x40]
MOV RCX,-0x1
MOV RDI,RDX
MOV EAX,0x0
SCASB.REPNE RDI
MOV R8,RCX
MOV RCX,-0x1
MOV RDI,RSI
SCASB.REPNE RDI
NOT RCX
SUB EBP,R8D
LEA EBP,[RBP + RCX*0x1 + -0x1]
MOV RDI,qword ptr [RBX + 0x90]
MOV RCX,R12
MOV ESI,0x33
CALL 0x001158c4
MOV RSI,RAX
TEST RAX,RAX
JNZ 0x0012c7b1
MOV RDI,qword ptr [RBX + 0x90]
CALL 0x00127e35
MOV RDI,RAX
MOV qword ptr [RSP + 0x20],RAX
TEST RAX,RAX
JZ 0x0012c82a
MOV RCX,-0x1
MOV EAX,0x0
SCASB.REPNE RDI
NOT RCX
LEA EBP,[RBP + RCX*0x1 + 0x5]
MOVSXD RDI,EBP
MOV ESI,0x1
CALL 0x001222ee
MOV R12,RAX
MOV byte ptr [RAX],0xff
MOV byte ptr [RAX + 0x1],0xfa
MOV EAX,dword ptr [RBX + 0x6c]
MOV byte ptr [R12 + 0x2],AL
MOV byte ptr [R12 + 0x3],0x0
MOV RDI,qword ptr [RBX + 0x90]
MOV RCX,qword ptr [RSP + 0x18]
MOV EDX,0x0
MOV ESI,0x33
CALL 0x001158c4
TEST RAX,RAX
JZ 0x0012cb53
MOV EBP,0x4
MOV dword ptr [RSP + 0x34],R14D
MOV R14D,dword ptr [RSP + 0x28]
MOV qword ptr [RSP + 0x38],R15
MOV R15D,dword ptr [RSP + 0x30]
LEA EDX,[RBP + 0x1]
MOVSXD RDI,EBP
MOV byte ptr [R12 + RDI*0x1],R14B
MOV RSI,qword ptr [RSP + 0x40]
MOVZX ECX,byte ptr [RSI]
TEST CL,CL
JZ 0x0012c8bf
ADD EBP,0x2
MOVSXD RBP,EBP
SUB RSI,RDI
MOV EDX,EBP
MOV byte ptr [R12 + RBP*0x1 + -0x1],CL
ADD RBP,0x1
MOVZX ECX,byte ptr [RSI + RBP*0x1 + -0x2]
TEST CL,CL
JNZ 0x0012c8ab
LEA EBP,[RDX + 0x1]
MOVSXD RSI,EDX
MOV byte ptr [R12 + RSI*0x1],R15B
MOVZX ECX,byte ptr [RAX]
TEST CL,CL
JZ 0x0012c8ed
ADD EDX,0x2
MOVSXD RDX,EDX
SUB RAX,RSI
MOV EBP,EDX
MOV byte ptr [R12 + RDX*0x1 + -0x1],CL
ADD RDX,0x1
MOVZX ECX,byte ptr [RAX + RDX*0x1 + -0x2]
TEST CL,CL
JNZ 0x0012c8d9
MOV RDI,qword ptr [RBX + 0x90]
MOV RCX,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [RSP + 0x40]
MOV ESI,0x33
CALL 0x001158c4
TEST RAX,RAX
JNZ 0x0012c88c
MOV R14D,dword ptr [RSP + 0x34]
MOV R15,qword ptr [RSP + 0x38]
MOV RDI,qword ptr [RSP + 0x20]
TEST RDI,RDI
JZ 0x0012c994
MOVSXD RCX,EBP
MOVZX EAX,byte ptr [RSP + 0x28]
MOV byte ptr [R12 + RCX*0x1],AL
LEA EAX,[RBP + 0x1]
CDQE
MOV byte ptr [R12 + RAX*0x1],0x55
LEA EAX,[RBP + 0x2]
CDQE
MOV byte ptr [R12 + RAX*0x1],0x53
LEA EAX,[RBP + 0x3]
CDQE
MOV byte ptr [R12 + RAX*0x1],0x45
LEA EAX,[RBP + 0x4]
CDQE
MOV byte ptr [R12 + RAX*0x1],0x52
LEA ESI,[RBP + 0x6]
LEA EAX,[RBP + 0x5]
CDQE
MOVZX EDX,byte ptr [RSP + 0x30]
MOV byte ptr [R12 + RAX*0x1],DL
MOVZX EDX,byte ptr [RDI]
TEST DL,DL
JZ 0x0012cb5d
LEA EAX,[RBP + 0x7]
CDQE
SUB RDI,RCX
MOV RCX,RDI
MOV EBP,EAX
MOV byte ptr [R12 + RAX*0x1 + -0x1],DL
ADD RAX,0x1
MOVZX EDX,byte ptr [RCX + RAX*0x1 + -0x7]
TEST DL,DL
JNZ 0x0012c980
MOVSXD RAX,EBP
MOV byte ptr [R12 + RAX*0x1],0xff
LEA ECX,[RBP + 0x2]
LEA EAX,[RBP + 0x1]
CDQE
MOV byte ptr [R12 + RAX*0x1],0xf0
MOV RDI,qword ptr [RBX + 0x8]
MOV RAX,qword ptr [RDI]
MOV EBP,ECX
MOV EDX,ECX
MOV RSI,R12
CALL qword ptr [RAX + 0x10]
MOV dword ptr [RBX + 0x64],EAX
CMP EBP,0x6
JZ 0x0012cb64
MOV EDI,dword ptr [RBX + 0x6c]
CALL 0x0012b347
MOV RSI,RAX
LEA RDI,[0x17eac6]
MOV EAX,0x0
CALL 0x0012292d
MOV RBP,RAX
MOV RDI,qword ptr [RBX + 0x18]
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,RBP
CALL 0x00122b5a
MOV RDI,qword ptr [RBX + 0x90]
MOV RBP,qword ptr [RSP + 0x18]
MOV RCX,RBP
MOV EDX,0x0
MOV ESI,0x33
CALL 0x001158c4
TEST RAX,RAX
JZ 0x0012ca77
MOV qword ptr [RSP + 0x28],R12
MOV R12,RBP
MOV RDX,RAX
MOV RSI,qword ptr [RSP + 0x40]
LEA RDI,[0x17ead8]
MOV EAX,0x0
CALL 0x0012292d
MOV RBP,RAX
MOV RDI,qword ptr [RBX + 0x18]
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,RBP
CALL 0x00122b5a
MOV RDI,qword ptr [RBX + 0x90]
MOV RCX,R12
MOV RDX,qword ptr [RSP + 0x40]
MOV ESI,0x33
CALL 0x001158c4
TEST RAX,RAX
JNZ 0x0012ca24
MOV R12,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x0012caac
MOV RSI,RAX
LEA RDI,[0x17eadf]
MOV EAX,0x0
CALL 0x0012292d
MOV RBP,RAX
MOV RDI,qword ptr [RBX + 0x18]
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,RBP
CALL 0x00122b5a
MOV RDI,R12
CALL 0x00122b5a
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00122b5a
JMP 0x0012c511
MOV RDI,qword ptr [RBX + 0x90]
MOV ESI,0x37
CALL 0x0011558e
MOV dword ptr [RSP + 0x30],EAX
TEST EAX,EAX
JNZ 0x0012cb05
MOV dword ptr [RSP + 0x28],0x1
ADD RBP,0x1
CMP R12,RBP
JBE 0x0012c782
MOV ECX,0x0
MOV EDX,0x1
MOV ESI,dword ptr [RSP + 0x28]
MOV EDI,dword ptr [RSP + 0x30]
JMP 0x0012cb2a
MOV dword ptr [RSP + 0x30],0x1
MOV dword ptr [RSP + 0x28],0x0
JMP 0x0012cae4
MOV EDI,0x1
MOV ESI,0x0
ADD RBP,0x1
CMP R12,RBP
JZ 0x0012cb3c
MOVZX EAX,byte ptr [RBP]
TEST AL,AL
JZ 0x0012cb17
CMP AL,0x1
CMOVZ EDI,ECX
CMOVZ ESI,EDX
JMP 0x0012cb21
MOV dword ptr [RSP + 0x28],ESI
MOV dword ptr [RSP + 0x30],EDI
JMP 0x0012c782
MOV EBP,0x14
JMP 0x0012c7fc
MOV EBP,0x4
JMP 0x0012c91b
MOV EBP,ESI
JMP 0x0012c994
MOV EDI,dword ptr [RBX + 0x6c]
CALL 0x0012b347
MOV RSI,RAX
LEA RDI,[0x17eaab]
MOV EAX,0x0
CALL 0x0012292d
MOV RBP,RAX
MOV RDI,qword ptr [RBX + 0x18]
MOV RSI,RAX
CALL 0x0014a676
MOV RDI,RBP
CALL 0x00122b5a
JMP 0x0012caac
TEST R14D,R14D
JNZ 0x0012cbc9
MOV RDI,qword ptr [RSP]
CALL 0x00122b5a
MOV RAX,qword ptr [RSP + 0x48]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x0012cbf7
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [RBX + 0x18]
MOV ECX,R14D
MOV RDX,qword ptr [RSP]
MOV ESI,0x0
CALL 0x0014a603
MOV RDI,qword ptr [RBX + 0x8]
CMP EAX,0x1000
SETG SIL
MOVZX ESI,SIL
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x30]
JMP 0x0012cba1
CALL 0x001111e0
(translation_unit "void FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}\n\n" (function_definition "void FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" primitive_type (function_declarator "FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)" identifier (parameter_list "(long param_1,int param_2,byte *param_3,uint param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "bool local_60;" primitive_type identifier ;) (declaration "bool local_58;" primitive_type identifier ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0x68) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "pbVar15 = param_3;" (assignment_expression "pbVar15 = param_3" identifier = identifier) ;) (labeled_statement "switchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(pbVar15 == param_3 + param_4)" ( (binary_expression "pbVar15 == param_3 + param_4" identifier == (binary_expression "param_3 + param_4" identifier + identifier)) )) (compound_statement "{\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { (if_statement "if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }" { (expression_statement "iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);" (assignment_expression "iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" identifier = (call_expression "FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (expression_statement "(**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);" (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x30))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x30)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x30)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x30)" ( (binary_expression "**(long **)(param_1 + 8) + 0x30" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),0x1000 < iVar4)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (binary_expression "0x1000 < iVar4" number_literal < identifier) ))) ;) })) (expression_statement "FUN_00122b5a(local_88);" (call_expression "FUN_00122b5a(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "pbVar16 = pbVar15 + 1;" (assignment_expression "pbVar16 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "uVar13 = (uint)bVar1;" (assignment_expression "uVar13 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" identifier = identifier) ;) (switch_statement "switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" switch (parenthesized_expression "(*(int *)(param_1 + 0x88))" ( (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) )) (compound_statement "{\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (if_statement "if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" if (parenthesized_expression "((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9))" ( (binary_expression "(uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x88) == 9)" ( (binary_expression "*(int *)(param_1 + 0x88) == 9" (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" else (compound_statement "{\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" { (if_statement "if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" if (parenthesized_expression "(uVar13 != 0xff)" ( (binary_expression "uVar13 != 0xff" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" { (if_statement "if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x68) == 0)" ( (binary_expression "*(int *)(param_1 + 0x68) == 0" (pointer_expression "*(int *)(param_1 + 0x68)" * (cast_expression "(int *)(param_1 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }" { (if_statement "if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }" if (parenthesized_expression "(local_74 <= iVar4)" ( (binary_expression "local_74 <= iVar4" identifier <= identifier) )) (compound_statement "{\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }" { (expression_statement "local_74 = iVar4 + 0x100;" (assignment_expression "local_74 = iVar4 + 0x100" identifier = (binary_expression "iVar4 + 0x100" identifier + number_literal)) ;) (expression_statement "local_88 = FUN_001226ba(local_88,(long)local_74,1);" (assignment_expression "local_88 = FUN_001226ba(local_88,(long)local_74,1)" identifier = (call_expression "FUN_001226ba(local_88,(long)local_74,1)" identifier (argument_list "(local_88,(long)local_74,1)" ( identifier , (cast_expression "(long)local_74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) })) (expression_statement "*(byte *)(local_88 + iVar4) = bVar1;" (assignment_expression "*(byte *)(local_88 + iVar4) = bVar1" (pointer_expression "*(byte *)(local_88 + iVar4)" * (cast_expression "(byte *)(local_88 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + iVar4)" ( (binary_expression "local_88 + iVar4" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" statement_identifier : (if_statement "if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" if (parenthesized_expression "((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1))" ( (binary_expression "(uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)" (parenthesized_expression "(uVar13 == 0xd)" ( (binary_expression "uVar13 == 0xd" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x54) != 1)" ( (binary_expression "*(int *)(param_1 + 0x54) != 1" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 9;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 9" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) }))) }) (else_clause "else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" else (compound_statement "{\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" { (if_statement "if (uVar13 != 0xf2) goto LAB_0012c24b;" if (parenthesized_expression "(uVar13 != 0xf2)" ( (binary_expression "uVar13 != 0xf2" identifier != number_literal) )) (goto_statement "goto LAB_0012c24b;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (if_statement "if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfd)" ( (binary_expression "uVar13 == 0xfd" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 4;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 4" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfe)" ( (binary_expression "uVar13 == 0xfe" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 5;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 5" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfb)" ( (binary_expression "uVar13 == 0xfb" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfc)" ( (binary_expression "uVar13 == 0xfc" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfa)" ( (binary_expression "uVar13 == 0xfa" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 6;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 6" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xf2)" ( (binary_expression "uVar13 == 0xf2" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (compound_statement "{\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" { (if_statement "if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }" if (parenthesized_expression "(uVar13 == 0xff)" ( (binary_expression "uVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }" { (if_statement "if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }" if (parenthesized_expression "(local_74 <= iVar4)" ( (binary_expression "local_74 <= iVar4" identifier <= identifier) )) (compound_statement "{\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }" { (expression_statement "local_74 = iVar4 + 0x100;" (assignment_expression "local_74 = iVar4 + 0x100" identifier = (binary_expression "iVar4 + 0x100" identifier + number_literal)) ;) (expression_statement "local_88 = FUN_001226ba(local_88,(long)local_74,1);" (assignment_expression "local_88 = FUN_001226ba(local_88,(long)local_74,1)" identifier = (call_expression "FUN_001226ba(local_88,(long)local_74,1)" identifier (argument_list "(local_88,(long)local_74,1)" ( identifier , (cast_expression "(long)local_74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) })) (expression_statement "*(byte *)(local_88 + iVar4) = bVar1;" (assignment_expression "*(byte *)(local_88 + iVar4) = bVar1" (pointer_expression "*(byte *)(local_88 + iVar4)" * (cast_expression "(byte *)(local_88 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + iVar4)" ( (binary_expression "local_88 + iVar4" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }))))))))))))) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfb,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfb,uVar13)" identifier (argument_list "(param_1,0xfb,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfc,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfc,uVar13)" identifier (argument_list "(param_1,0xfc,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfd,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfd,uVar13)" identifier (argument_list "(param_1,0xfd,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfe,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfe,uVar13)" identifier (argument_list "(param_1,0xfe,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "*(uint *)(param_1 + 0x6c) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x6c) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x6c)" * (cast_expression "(uint *)(param_1 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x70) = 0" (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) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 7;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 7" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" case number_literal : (if_statement "if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" if (parenthesized_expression "(uVar13 == 0xff)" ( (binary_expression "uVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 8;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 8" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" case number_literal : (if_statement "if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" if (parenthesized_expression "(uVar13 == 0xf0)" ( (binary_expression "uVar13 == 0xf0" identifier == number_literal) )) (compound_statement "{\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" { (expression_statement "iVar14 = *(int *)(param_1 + 0x6c);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x6c)" identifier = (pointer_expression "*(int *)(param_1 + 0x6c)" * (cast_expression "(int *)(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" if (parenthesized_expression "(iVar14 == 0x20)" ( (binary_expression "iVar14 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }" { (if_statement "if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" if (parenthesized_expression "((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01'))" ( (binary_expression "(*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')" (parenthesized_expression "(*(int *)(param_1 + 0x70) == 1)" ( (binary_expression "*(int *)(param_1 + 0x70) == 1" (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(**(char **)(param_1 + 0x78) == '\x01')" ( (binary_expression "**(char **)(param_1 + 0x78) == '\x01'" (pointer_expression "**(char **)(param_1 + 0x78)" * (pointer_expression "*(char **)(param_1 + 0x78)" * (cast_expression "(char **)(param_1 + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }" { (expression_statement "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);" (assignment_expression "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" identifier = (cast_expression "(char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x31)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" do (compound_statement "{\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" identifier = (cast_expression "(undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001222ee(~uVar9 + 0x13,1)" identifier (argument_list "(~uVar9 + 0x13,1)" ( (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" ~ identifier) + number_literal) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x20;" (assignment_expression "puVar7[2] = 0x20" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "strcpy(puVar7 + 4,pcVar6);" (call_expression "strcpy(puVar7 + 4,pcVar6)" identifier (argument_list "(puVar7 + 4,pcVar6)" ( (binary_expression "puVar7 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" do (compound_statement "{\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar11 = (long)(int)(~(uint)lVar10 + 3);" (assignment_expression "lVar11 = (long)(int)(~(uint)lVar10 + 3)" identifier = (cast_expression "(long)(int)(~(uint)lVar10 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(~(uint)lVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(~(uint)lVar10 + 3)" ( (binary_expression "~(uint)lVar10 + 3" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar7[lVar11] = 0xff;" (assignment_expression "puVar7[lVar11] = 0xff" (subscript_expression "puVar7[lVar11]" identifier [ identifier ]) = number_literal) ;) (expression_statement "puVar7[lVar11 + 1] = 0xf0;" (assignment_expression "puVar7[lVar11 + 1] = 0xf0" (subscript_expression "puVar7[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" identifier = (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" ( (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , (binary_expression "~(uint)lVar10 + 5" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) + number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TSPEED SEND"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6)" identifier = (call_expression "FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6)" identifier (argument_list "("client:\tSB TSPEED IS %s",pcVar6)" ( (string_literal ""client:\tSB TSPEED IS %s"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) }) (else_clause "else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" else (compound_statement "{\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" { (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TSPEED <something weird>"" " string_content escape_sequence string_content ") ))) ;) }))) }) (else_clause "else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" else (if_statement "if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" if (parenthesized_expression "(iVar14 < 0x21)" ( (binary_expression "iVar14 < 0x21" identifier < number_literal) )) (compound_statement "{\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }" { (if_statement "if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" if (parenthesized_expression "(iVar14 == 0x18)" ( (binary_expression "iVar14 == 0x18" identifier == number_literal) )) (compound_statement "{\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" { (if_statement "if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" if (parenthesized_expression "((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01'))" ( (binary_expression "(*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')" (parenthesized_expression "(*(int *)(param_1 + 0x70) == 1)" ( (binary_expression "*(int *)(param_1 + 0x70) == 1" (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(**(char **)(param_1 + 0x78) == '\x01')" ( (binary_expression "**(char **)(param_1 + 0x78) == '\x01'" (pointer_expression "**(char **)(param_1 + 0x78)" * (pointer_expression "*(char **)(param_1 + 0x78)" * (cast_expression "(char **)(param_1 + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }" { (expression_statement "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);" (assignment_expression "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" identifier = (cast_expression "(char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x30)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" do (compound_statement "{\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" identifier = (cast_expression "(undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001222ee(~uVar9 + 0x13,1)" identifier (argument_list "(~uVar9 + 0x13,1)" ( (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" ~ identifier) + number_literal) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x18;" (assignment_expression "puVar7[2] = 0x18" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar14 = 0;\n              lVar10 = 0;\n            }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" else (compound_statement "{\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" { (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;) (do_statement "do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              }" { (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (if_statement "if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }" if (parenthesized_expression "((byte)(cVar2 + 0x9fU) < 0x1a)" ( (binary_expression "(byte)(cVar2 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar2 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x9fU)" ( (binary_expression "cVar2 + 0x9fU" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n                  cVar2 = cVar2 + -0x20;\n                }" { (expression_statement "cVar2 = cVar2 + -0x20;" (assignment_expression "cVar2 = cVar2 + -0x20" identifier = (binary_expression "cVar2 + -0x20" identifier + number_literal)) ;) })) (expression_statement "puVar7[lVar10 + 3] = cVar2;" (assignment_expression "puVar7[lVar10 + 3] = cVar2" (subscript_expression "puVar7[lVar10 + 3]" identifier [ (binary_expression "lVar10 + 3" identifier + number_literal) ]) = identifier) ;) (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar2 = pcVar6[lVar10];" (assignment_expression "cVar2 = pcVar6[lVar10]" identifier = (subscript_expression "pcVar6[lVar10]" identifier [ identifier ])) ;) (expression_statement "lVar11 = lVar10 + 1;" (assignment_expression "lVar11 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "puVar7[lVar10 + 4] = 0xff;" (assignment_expression "puVar7[lVar10 + 4] = 0xff" (subscript_expression "puVar7[lVar10 + 4]" identifier [ (binary_expression "lVar10 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[lVar10 + 5] = 0xf0;" (assignment_expression "puVar7[lVar10 + 5] = 0xf0" (subscript_expression "puVar7[lVar10 + 5]" identifier [ (binary_expression "lVar10 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6)" identifier = (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" ( (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),puVar7,iVar14 + 6)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , (binary_expression "iVar14 + 6" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[lVar10 + 4] = 0;" (assignment_expression "puVar7[lVar10 + 4] = 0" (subscript_expression "puVar7[lVar10 + 4]" identifier [ (binary_expression "lVar10 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TTYPE SEND"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4)" identifier = (call_expression "FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4)" identifier (argument_list "("client:\tSB TTYPE IS %s",puVar7 + 4)" ( (string_literal ""client:\tSB TTYPE IS %s"" " string_content escape_sequence string_content ") , (binary_expression "puVar7 + 4" identifier + number_literal) )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) }) (else_clause "else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" else (compound_statement "{\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" { (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TTYPE <something weird>\r\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) }))) })) }) (else_clause "else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" else (if_statement "if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" if (parenthesized_expression "((iVar14 == 0x24) || (iVar14 == 0x27))" ( (binary_expression "(iVar14 == 0x24) || (iVar14 == 0x27)" (parenthesized_expression "(iVar14 == 0x24)" ( (binary_expression "iVar14 == 0x24" identifier == number_literal) )) || (parenthesized_expression "(iVar14 == 0x27)" ( (binary_expression "iVar14 == 0x27" identifier == number_literal) ))) )) (compound_statement "{\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" { (expression_statement "pcVar6 = *(char **)(param_1 + 0x78);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0x78)" identifier = (pointer_expression "*(char **)(param_1 + 0x78)" * (cast_expression "(char **)(param_1 + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);" (assignment_expression "pcVar8 = pcVar6 + *(int *)(param_1 + 0x70)" identifier = (binary_expression "pcVar6 + *(int *)(param_1 + 0x70)" identifier + (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))))) ;) (if_statement "if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }" if (parenthesized_expression "((pcVar6 < pcVar8) && (*pcVar6 == '\x01'))" ( (binary_expression "(pcVar6 < pcVar8) && (*pcVar6 == '\x01')" (parenthesized_expression "(pcVar6 < pcVar8)" ( (binary_expression "pcVar6 < pcVar8" identifier < identifier) )) && (parenthesized_expression "(*pcVar6 == '\x01')" ( (binary_expression "*pcVar6 == '\x01'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }" { (expression_statement "uVar5 = FUN_0012b347();" (assignment_expression "uVar5 = FUN_0012b347()" identifier = (call_expression "FUN_0012b347()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5)" identifier = (call_expression "FUN_0012292d("server:\tSB %s SEND",uVar5)" identifier (argument_list "("server:\tSB %s SEND",uVar5)" ( (string_literal ""server:\tSB %s SEND"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" identifier = true) ;) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" identifier = false) ;) (if_statement "if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }" if (parenthesized_expression "(*(int *)(param_1 + 0x6c) == 0x24)" ( (binary_expression "*(int *)(param_1 + 0x6c) == 0x24" (pointer_expression "*(int *)(param_1 + 0x6c)" * (cast_expression "(int *)(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }" { (expression_statement "iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);" (assignment_expression "iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x37)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "local_58 = iVar14 != 0;" (assignment_expression "local_58 = iVar14 != 0" identifier = (binary_expression "iVar14 != 0" identifier != number_literal)) ;) (expression_statement "local_60 = !local_58;" (assignment_expression "local_60 = !local_58" identifier = (unary_expression "!local_58" ! identifier)) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }" if (parenthesized_expression "(pcVar6 < pcVar8)" ( (binary_expression "pcVar6 < pcVar8" identifier < identifier) )) (compound_statement "{\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }" { (do_statement "do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);" do (compound_statement "{\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_58 = true;\n                  local_60 = false;\n                }" { (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" identifier = true) ;) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" identifier = false) ;) }) (else_clause "else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" else (compound_statement "{\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" { (if_statement "if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    local_58 = false;\n                  }" { (expression_statement "local_58 = false;" (assignment_expression "local_58 = false" identifier = false) ;) })) (if_statement "if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    local_60 = true;\n                  }" { (expression_statement "local_60 = true;" (assignment_expression "local_60 = true" identifier = true) ;) })) }))) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar8 != pcVar6)" ( (binary_expression "pcVar8 != pcVar6" identifier != identifier) )) ;) })) })) (expression_statement "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_48" & identifier) ))))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar14 = 0x14;\n          }" { (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" else (compound_statement "{\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" { (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" identifier = number_literal) ;) (do_statement "do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);" do (compound_statement "{\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar6 = local_48;" (assignment_expression "pcVar6 = local_48" identifier = identifier) ;) (do_statement "do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" identifier = number_literal) ;) (do_statement "do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;" (assignment_expression "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" identifier = (binary_expression "(iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" (binary_expression "(iVar14 - (int)lVar10) + -1" (parenthesized_expression "(iVar14 - (int)lVar10)" ( (binary_expression "iVar14 - (int)lVar10" identifier - (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (unary_expression "~(uint)lVar11" ~ (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (expression_statement "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;" (assignment_expression "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , identifier , (pointer_expression "&local_48" & identifier) ))))) ;) }) while (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));" (assignment_expression "pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" identifier = (cast_expression "(char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) ))))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar8;" (assignment_expression "pcVar6 = pcVar8" identifier = identifier) ;) (do_statement "do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" do (compound_statement "{\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar14 = iVar14 + 5 + ~(uint)lVar10;" (assignment_expression "iVar14 = iVar14 + 5 + ~(uint)lVar10" identifier = (binary_expression "iVar14 + 5 + ~(uint)lVar10" (binary_expression "iVar14 + 5" identifier + number_literal) + (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) })) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1)" identifier = (cast_expression "(undefined1 *)FUN_001222ee((long)iVar14,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001222ee((long)iVar14,1)" identifier (argument_list "((long)iVar14,1)" ( (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);" (assignment_expression "puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "char" primitive_type) ) (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) )))))) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_48" & identifier) ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar14 = 4;\n          }" { (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) }) (else_clause "else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" else (compound_statement "{\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" { (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) (do_statement "do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);" do (compound_statement "{\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            }" { (expression_statement "iVar12 = iVar14 + 1;" (assignment_expression "iVar12 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar2 = *local_48;" (assignment_expression "cVar2 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" { (expression_statement "lVar10 = (long)(iVar14 + 2);" (assignment_expression "lVar10 = (long)(iVar14 + 2)" identifier = (cast_expression "(long)(iVar14 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar14 + 2)" ( (binary_expression "iVar14 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                }" { (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];" (assignment_expression "cVar2 = local_48[lVar10 + (-2 - (long)iVar14)]" identifier = (subscript_expression "local_48[lVar10 + (-2 - (long)iVar14)]" identifier [ (binary_expression "lVar10 + (-2 - (long)iVar14)" identifier + (parenthesized_expression "(-2 - (long)iVar14)" ( (binary_expression "-2 - (long)iVar14" number_literal - (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "iVar14 = iVar12 + 1;" (assignment_expression "iVar14 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[iVar12] = local_58;" (assignment_expression "puVar7[iVar12] = local_58" (subscript_expression "puVar7[iVar12]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" { (expression_statement "lVar10 = (long)(iVar12 + 2);" (assignment_expression "lVar10 = (long)(iVar12 + 2)" identifier = (cast_expression "(long)(iVar12 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar12 + 2)" ( (binary_expression "iVar12 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                }" { (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];" (assignment_expression "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)]" identifier = (subscript_expression "pcVar6[lVar10 + (-2 - (long)iVar12)]" identifier [ (binary_expression "lVar10 + (-2 - (long)iVar12)" identifier + (parenthesized_expression "(-2 - (long)iVar12)" ( (binary_expression "-2 - (long)iVar12" number_literal - (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;" (assignment_expression "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , identifier , (pointer_expression "&local_48" & identifier) ))))) ;) }) while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "iVar12 = iVar14;" (assignment_expression "iVar12 = iVar14" identifier = identifier) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" { (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "puVar7[iVar14 + 1] = 0x55;" (assignment_expression "puVar7[iVar14 + 1] = 0x55" (subscript_expression "puVar7[iVar14 + 1]" identifier [ (binary_expression "iVar14 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 2] = 0x53;" (assignment_expression "puVar7[iVar14 + 2] = 0x53" (subscript_expression "puVar7[iVar14 + 2]" identifier [ (binary_expression "iVar14 + 2" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 3] = 0x45;" (assignment_expression "puVar7[iVar14 + 3] = 0x45" (subscript_expression "puVar7[iVar14 + 3]" identifier [ (binary_expression "iVar14 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 4] = 0x52;" (assignment_expression "puVar7[iVar14 + 4] = 0x52" (subscript_expression "puVar7[iVar14 + 4]" identifier [ (binary_expression "iVar14 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar12 = iVar14 + 6;" (assignment_expression "iVar12 = iVar14 + 6" identifier = (binary_expression "iVar14 + 6" identifier + number_literal)) ;) (expression_statement "puVar7[iVar14 + 5] = local_58;" (assignment_expression "puVar7[iVar14 + 5] = local_58" (subscript_expression "puVar7[iVar14 + 5]" identifier [ (binary_expression "iVar14 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" { (expression_statement "lVar10 = (long)(iVar14 + 7);" (assignment_expression "lVar10 = (long)(iVar14 + 7)" identifier = (cast_expression "(long)(iVar14 + 7)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar14 + 7)" ( (binary_expression "iVar14 + 7" identifier + number_literal) )))) ;) (do_statement "do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');" do (compound_statement "{\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              }" { (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];" (assignment_expression "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)]" identifier = (subscript_expression "pcVar8[lVar10 + (-7 - (long)iVar14)]" identifier [ (binary_expression "lVar10 + (-7 - (long)iVar14)" identifier + (parenthesized_expression "(-7 - (long)iVar14)" ( (binary_expression "-7 - (long)iVar14" number_literal - (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "puVar7[iVar12] = 0xff;" (assignment_expression "puVar7[iVar12] = 0xff" (subscript_expression "puVar7[iVar12]" identifier [ identifier ]) = number_literal) ;) (expression_statement "puVar7[iVar12 + 1] = 0xf0;" (assignment_expression "puVar7[iVar12 + 1] = 0xf0" (subscript_expression "puVar7[iVar12 + 1]" identifier [ (binary_expression "iVar12 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2)" identifier = (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" ( (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),puVar7,iVar12 + 2)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , (binary_expression "iVar12 + 2" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" if (parenthesized_expression "(iVar12 + 2 == 6)" ( (binary_expression "iVar12 + 2 == 6" (binary_expression "iVar12 + 2" identifier + number_literal) == number_literal) )) (compound_statement "{\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }" { (expression_statement "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));" (assignment_expression "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier = (call_expression "FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x6c))" ( (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) )))) )))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5)" identifier = (call_expression "FUN_0012292d("client:\tSB %s IS <nothing>",uVar5)" identifier (argument_list "("client:\tSB %s IS <nothing>",uVar5)" ( (string_literal ""client:\tSB %s IS <nothing>"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) }) (else_clause "else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" else (compound_statement "{\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" { (expression_statement "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));" (assignment_expression "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier = (call_expression "FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x6c))" ( (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) )))) )))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5)" identifier = (call_expression "FUN_0012292d("client:\tSB %s IS:",uVar5)" identifier (argument_list "("client:\tSB %s IS:",uVar5)" ( (string_literal ""client:\tSB %s IS:"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier = (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_48" & identifier) )))) ;) (while_statement "while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }" while (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }" { (expression_statement "uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);" (assignment_expression "uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10)" identifier = (call_expression "FUN_0012292d("\t%s=%s",local_48,lVar10)" identifier (argument_list "("\t%s=%s",local_48,lVar10)" ( (string_literal ""\t%s=%s"" " escape_sequence string_content ") , identifier , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);" (assignment_expression "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier = (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , identifier , (pointer_expression "&local_48" & identifier) )))) ;) })) (if_statement "if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }" { (expression_statement "uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);" (assignment_expression "uVar5 = FUN_0012292d("\tUSER=%s",pcVar8)" identifier = (call_expression "FUN_0012292d("\tUSER=%s",pcVar8)" identifier (argument_list "("\tUSER=%s",pcVar8)" ( (string_literal ""\tUSER=%s"" " escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) })) }))) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "FUN_00122b5a(pcVar8);" (call_expression "FUN_00122b5a(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) })))))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    goto switchD_0012c4c9_caseD_a;" default : (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70))" ( (binary_expression "*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) <= (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }" { (expression_statement "iVar14 = *(int *)(param_1 + 0x80) + 0x400;" (assignment_expression "iVar14 = *(int *)(param_1 + 0x80) + 0x400" identifier = (binary_expression "*(int *)(param_1 + 0x80) + 0x400" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x80) = iVar14;" (assignment_expression "*(int *)(param_1 + 0x80) = iVar14" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);" (assignment_expression "uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" identifier = (call_expression "FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x78)" * (cast_expression "(undefined8 *)(param_1 + 0x78)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) , (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x78) = uVar5;" (assignment_expression "*(undefined8 *)(param_1 + 0x78) = uVar5" (pointer_expression "*(undefined8 *)(param_1 + 0x78)" * (cast_expression "(undefined8 *)(param_1 + 0x78)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar14 = *(int *)(param_1 + 0x70);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x70)" identifier = (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x70) = iVar14 + 1;" (assignment_expression "*(int *)(param_1 + 0x70) = iVar14 + 1" (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;" (assignment_expression "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14)" * (cast_expression "(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x78) + (long)iVar14)" ( (binary_expression "*(long *)(param_1 + 0x78) + (long)iVar14" (pointer_expression "*(long *)(param_1 + 0x78)" * (cast_expression "(long *)(param_1 + 0x78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) + (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 7;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 7" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid telnet_receive(Plug plug,int urgent,char *data,int len)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  wchar_t wVar4;\n  plug_function_table *ppVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint option;\n  plug_function_table *ppVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_88;\n  wchar_t local_74;\n  bool local_60;\n  bool local_58;\n  char *ekey;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (urgent != 0) {\n    *(undefined4 *)(plug + 0xd) = 1;\n  }\n  *(undefined4 *)((long)plug + 0x84) = 1;\n  local_74 = L'\0';\n  wVar4 = L'\0';\n  local_88 = (char *)0x0;\n  pbVar15 = (byte *)data;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == (byte *)(data + (uint)len)) {\n    if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }\n    safefree(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  option = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(plug + 0x11)) {\n  case 0:\n  case 9:\n    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    proc_rec_opt((Telnet)plug,0xfb,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    proc_rec_opt((Telnet)plug,0xfc,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    proc_rec_opt((Telnet)plug,0xfd,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    proc_rec_opt((Telnet)plug,0xfe,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)((long)plug + 0x6c) = option;\n    *(undefined4 *)(plug + 0xe) = 0;\n    *(undefined4 *)(plug + 0x11) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(plug + 0x10) <= *(int *)(plug + 0xe)) {\n    iVar14 = *(int *)(plug + 0x10) + 0x400;\n    *(int *)(plug + 0x10) = iVar14;\n    ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);\n    plug[0xf] = ppVar5;\n  }\n  iVar14 = *(int *)(plug + 0xe);\n  *(int *)(plug + 0xe) = iVar14 + 1;\n  *(byte *)((long)&plug[0xf]->log + (long)iVar14) = bVar1;\n  *(undefined4 *)(plug + 0x11) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}\n\n" comment (function_definition "void telnet_receive(Plug plug,int urgent,char *data,int len)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  wchar_t wVar4;\n  plug_function_table *ppVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint option;\n  plug_function_table *ppVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_88;\n  wchar_t local_74;\n  bool local_60;\n  bool local_58;\n  char *ekey;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (urgent != 0) {\n    *(undefined4 *)(plug + 0xd) = 1;\n  }\n  *(undefined4 *)((long)plug + 0x84) = 1;\n  local_74 = L'\0';\n  wVar4 = L'\0';\n  local_88 = (char *)0x0;\n  pbVar15 = (byte *)data;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == (byte *)(data + (uint)len)) {\n    if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }\n    safefree(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  option = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(plug + 0x11)) {\n  case 0:\n  case 9:\n    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    proc_rec_opt((Telnet)plug,0xfb,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    proc_rec_opt((Telnet)plug,0xfc,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    proc_rec_opt((Telnet)plug,0xfd,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    proc_rec_opt((Telnet)plug,0xfe,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)((long)plug + 0x6c) = option;\n    *(undefined4 *)(plug + 0xe) = 0;\n    *(undefined4 *)(plug + 0x11) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(plug + 0x10) <= *(int *)(plug + 0xe)) {\n    iVar14 = *(int *)(plug + 0x10) + 0x400;\n    *(int *)(plug + 0x10) = iVar14;\n    ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);\n    plug[0xf] = ppVar5;\n  }\n  iVar14 = *(int *)(plug + 0xe);\n  *(int *)(plug + 0xe) = iVar14 + 1;\n  *(byte *)((long)&plug[0xf]->log + (long)iVar14) = bVar1;\n  *(undefined4 *)(plug + 0x11) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" primitive_type (function_declarator "telnet_receive(Plug plug,int urgent,char *data,int len)" identifier (parameter_list "(Plug plug,int urgent,char *data,int len)" ( (parameter_declaration "Plug plug" type_identifier identifier) , (parameter_declaration "int urgent" primitive_type identifier) , (parameter_declaration "char *data" primitive_type (pointer_declarator "*data" * identifier)) , (parameter_declaration "int len" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  wchar_t wVar4;\n  plug_function_table *ppVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint option;\n  plug_function_table *ppVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_88;\n  wchar_t local_74;\n  bool local_60;\n  bool local_58;\n  char *ekey;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (urgent != 0) {\n    *(undefined4 *)(plug + 0xd) = 1;\n  }\n  *(undefined4 *)((long)plug + 0x84) = 1;\n  local_74 = L'\0';\n  wVar4 = L'\0';\n  local_88 = (char *)0x0;\n  pbVar15 = (byte *)data;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == (byte *)(data + (uint)len)) {\n    if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }\n    safefree(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  option = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(plug + 0x11)) {\n  case 0:\n  case 9:\n    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    proc_rec_opt((Telnet)plug,0xfb,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    proc_rec_opt((Telnet)plug,0xfc,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    proc_rec_opt((Telnet)plug,0xfd,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    proc_rec_opt((Telnet)plug,0xfe,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)((long)plug + 0x6c) = option;\n    *(undefined4 *)(plug + 0xe) = 0;\n    *(undefined4 *)(plug + 0x11) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(plug + 0x10) <= *(int *)(plug + 0xe)) {\n    iVar14 = *(int *)(plug + 0x10) + 0x400;\n    *(int *)(plug + 0x10) = iVar14;\n    ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);\n    plug[0xf] = ppVar5;\n  }\n  iVar14 = *(int *)(plug + 0xe);\n  *(int *)(plug + 0xe) = iVar14 + 1;\n  *(byte *)((long)&plug[0xf]->log + (long)iVar14) = bVar1;\n  *(undefined4 *)(plug + 0x11) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "wchar_t wVar4;" type_identifier identifier ;) (declaration "plug_function_table *ppVar5;" type_identifier (pointer_declarator "*ppVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint option;" type_identifier identifier ;) (declaration "plug_function_table *ppVar13;" type_identifier (pointer_declarator "*ppVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "wchar_t local_74;" type_identifier identifier ;) (declaration "bool local_60;" primitive_type identifier ;) (declaration "bool local_58;" primitive_type identifier ;) (declaration "char *ekey;" primitive_type (pointer_declarator "*ekey" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (urgent != 0) {\n    *(undefined4 *)(plug + 0xd) = 1;\n  }" if (parenthesized_expression "(urgent != 0)" ( (binary_expression "urgent != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(plug + 0xd) = 1;\n  }" { (expression_statement "*(undefined4 *)(plug + 0xd) = 1;" (assignment_expression "*(undefined4 *)(plug + 0xd) = 1" (pointer_expression "*(undefined4 *)(plug + 0xd)" * (cast_expression "(undefined4 *)(plug + 0xd)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xd)" ( (binary_expression "plug + 0xd" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)((long)plug + 0x84) = 1;" (assignment_expression "*(undefined4 *)((long)plug + 0x84) = 1" (pointer_expression "*(undefined4 *)((long)plug + 0x84)" * (cast_expression "(undefined4 *)((long)plug + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x84)" ( (binary_expression "(long)plug + 0x84" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_74 = L'\0';" (assignment_expression "local_74 = L'\0'" identifier = (char_literal "L'\0'" L' escape_sequence ')) ;) (expression_statement "wVar4 = L'\0';" (assignment_expression "wVar4 = L'\0'" identifier = (char_literal "L'\0'" L' escape_sequence ')) ;) (expression_statement "local_88 = (char *)0x0;" (assignment_expression "local_88 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar15 = (byte *)data;" (assignment_expression "pbVar15 = (byte *)data" identifier = (cast_expression "(byte *)data" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "switchD_0012c4c9_caseD_a:\n  if (pbVar15 == (byte *)(data + (uint)len)) {\n    if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }\n    safefree(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (pbVar15 == (byte *)(data + (uint)len)) {\n    if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }\n    safefree(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(pbVar15 == (byte *)(data + (uint)len))" ( (binary_expression "pbVar15 == (byte *)(data + (uint)len)" identifier == (cast_expression "(byte *)(data + (uint)len)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(data + (uint)len)" ( (binary_expression "data + (uint)len" identifier + (cast_expression "(uint)len" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) )) (compound_statement "{\n    if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }\n    safefree(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { (if_statement "if (wVar4 != L'\0') {\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }" if (parenthesized_expression "(wVar4 != L'\0')" ( (binary_expression "wVar4 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n      wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);\n      (**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);\n    }" { (expression_statement "wVar4 = from_backend(plug[3],L'\0',local_88,wVar4);" (assignment_expression "wVar4 = from_backend(plug[3],L'\0',local_88,wVar4)" identifier = (call_expression "from_backend(plug[3],L'\0',local_88,wVar4)" identifier (argument_list "(plug[3],L'\0',local_88,wVar4)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , (char_literal "L'\0'" L' escape_sequence ') , identifier , identifier )))) ;) (expression_statement "(**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4);" (call_expression "(**(code **)(plug[1]->log + 0x30))(plug[1],L'က' < wVar4)" (parenthesized_expression "(**(code **)(plug[1]->log + 0x30))" ( (pointer_expression "**(code **)(plug[1]->log + 0x30)" * (pointer_expression "*(code **)(plug[1]->log + 0x30)" * (cast_expression "(code **)(plug[1]->log + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plug[1]->log + 0x30)" ( (binary_expression "plug[1]->log + 0x30" (field_expression "plug[1]->log" (subscript_expression "plug[1]" identifier [ number_literal ]) -> field_identifier) + number_literal) ))))) )) (argument_list "(plug[1],L'က' < wVar4)" ( (subscript_expression "plug[1]" identifier [ number_literal ]) , (binary_expression "L'က' < wVar4" (char_literal "L'က'" L' character ') < identifier) ))) ;) })) (expression_statement "safefree(local_88);" (call_expression "safefree(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "pbVar16 = pbVar15 + 1;" (assignment_expression "pbVar16 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "option = (uint)bVar1;" (assignment_expression "option = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" identifier = identifier) ;) (switch_statement "switch(*(int *)(plug + 0x11)) {\n  case 0:\n  case 9:\n    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    proc_rec_opt((Telnet)plug,0xfb,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    proc_rec_opt((Telnet)plug,0xfc,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    proc_rec_opt((Telnet)plug,0xfd,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    proc_rec_opt((Telnet)plug,0xfe,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)((long)plug + 0x6c) = option;\n    *(undefined4 *)(plug + 0xe) = 0;\n    *(undefined4 *)(plug + 0x11) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" switch (parenthesized_expression "(*(int *)(plug + 0x11))" ( (pointer_expression "*(int *)(plug + 0x11)" * (cast_expression "(int *)(plug + 0x11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) )) (compound_statement "{\n  case 0:\n  case 9:\n    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    proc_rec_opt((Telnet)plug,0xfb,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    proc_rec_opt((Telnet)plug,0xfc,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    proc_rec_opt((Telnet)plug,0xfd,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    proc_rec_opt((Telnet)plug,0xfe,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)((long)plug + 0x6c) = option;\n    *(undefined4 *)(plug + 0xe) = 0;\n    *(undefined4 *)(plug + 0x11) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 9:\n    if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (if_statement "if ((option == 0) && (*(int *)(plug + 0x11) == 9)) {\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }" if (parenthesized_expression "((option == 0) && (*(int *)(plug + 0x11) == 9))" ( (binary_expression "(option == 0) && (*(int *)(plug + 0x11) == 9)" (parenthesized_expression "(option == 0)" ( (binary_expression "option == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(plug + 0x11) == 9)" ( (binary_expression "*(int *)(plug + 0x11) == 9" (pointer_expression "*(int *)(plug + 0x11)" * (cast_expression "(int *)(plug + 0x11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }" else (compound_statement "{\n      if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(plug + 0x11) = 1;\n    }" { (if_statement "if (option != 0xff) {\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" if (parenthesized_expression "(option != 0xff)" ( (binary_expression "option != 0xff" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }\n        *(undefined4 *)(plug + 0x11) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" { (if_statement "if (*(int *)(plug + 0xd) == 0) {\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }" if (parenthesized_expression "(*(int *)(plug + 0xd) == 0)" ( (binary_expression "*(int *)(plug + 0xd) == 0" (pointer_expression "*(int *)(plug + 0xd)" * (cast_expression "(int *)(plug + 0xd)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xd)" ( (binary_expression "plug + 0xd" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }\n          local_88[wVar4] = bVar1;\n          wVar4 = wVar4 + L'\x01';\nLAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }" { (if_statement "if (local_74 <= wVar4) {\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }" if (parenthesized_expression "(local_74 <= wVar4)" ( (binary_expression "local_74 <= wVar4" identifier <= identifier) )) (compound_statement "{\n            local_74 = wVar4 + L'Ā';\n            local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n          }" { (expression_statement "local_74 = wVar4 + L'Ā';" (assignment_expression "local_74 = wVar4 + L'Ā'" identifier = (binary_expression "wVar4 + L'Ā'" identifier + (char_literal "L'Ā'" L' character '))) ;) (expression_statement "local_88 = (char *)saferealloc(local_88,(long)local_74,1);" (assignment_expression "local_88 = (char *)saferealloc(local_88,(long)local_74,1)" identifier = (cast_expression "(char *)saferealloc(local_88,(long)local_74,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(local_88,(long)local_74,1)" identifier (argument_list "(local_88,(long)local_74,1)" ( identifier , (cast_expression "(long)local_74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) })) (expression_statement "local_88[wVar4] = bVar1;" (assignment_expression "local_88[wVar4] = bVar1" (subscript_expression "local_88[wVar4]" identifier [ identifier ]) = identifier) ;) (expression_statement "wVar4 = wVar4 + L'\x01';" (assignment_expression "wVar4 = wVar4 + L'\x01'" identifier = (binary_expression "wVar4 + L'\x01'" identifier + (char_literal "L'\x01'" L' escape_sequence '))) ;) (labeled_statement "LAB_0012c24b:\n          if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" statement_identifier : (if_statement "if ((option == 0xd) && (*(int *)((long)plug + 0x54) != 1)) {\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" if (parenthesized_expression "((option == 0xd) && (*(int *)((long)plug + 0x54) != 1))" ( (binary_expression "(option == 0xd) && (*(int *)((long)plug + 0x54) != 1)" (parenthesized_expression "(option == 0xd)" ( (binary_expression "option == 0xd" identifier == number_literal) )) && (parenthesized_expression "(*(int *)((long)plug + 0x54) != 1)" ( (binary_expression "*(int *)((long)plug + 0x54) != 1" (pointer_expression "*(int *)((long)plug + 0x54)" * (cast_expression "(int *)((long)plug + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x54)" ( (binary_expression "(long)plug + 0x54" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            *(undefined4 *)(plug + 0x11) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 9;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 9" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) }))) }) (else_clause "else {\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }" else (compound_statement "{\n          if (option != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(plug + 0xd) = 0;\n        }" { (if_statement "if (option != 0xf2) goto LAB_0012c24b;" if (parenthesized_expression "(option != 0xf2)" ( (binary_expression "option != 0xf2" identifier != number_literal) )) (goto_statement "goto LAB_0012c24b;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(plug + 0xd) = 0;" (assignment_expression "*(undefined4 *)(plug + 0xd) = 0" (pointer_expression "*(undefined4 *)(plug + 0xd)" * (cast_expression "(undefined4 *)(plug + 0xd)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xd)" ( (binary_expression "plug + 0xd" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(plug + 0x11) = 1;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 1" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 1:\n    if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (if_statement "if (option == 0xfd) {\n      *(undefined4 *)(plug + 0x11) = 4;\n    }\n    else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" if (parenthesized_expression "(option == 0xfd)" ( (binary_expression "option == 0xfd" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 4;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 4;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 4" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" else (if_statement "if (option == 0xfe) {\n      *(undefined4 *)(plug + 0x11) = 5;\n    }\n    else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" if (parenthesized_expression "(option == 0xfe)" ( (binary_expression "option == 0xfe" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 5;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 5;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 5" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" else (if_statement "if (option == 0xfb) {\n      *(undefined4 *)(plug + 0x11) = 2;\n    }\n    else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" if (parenthesized_expression "(option == 0xfb)" ( (binary_expression "option == 0xfb" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 2;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 2;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 2" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" else (if_statement "if (option == 0xfc) {\n      *(undefined4 *)(plug + 0x11) = 3;\n    }\n    else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" if (parenthesized_expression "(option == 0xfc)" ( (binary_expression "option == 0xfc" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 3;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 3;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 3" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" else (if_statement "if (option == 0xfa) {\n      *(undefined4 *)(plug + 0x11) = 6;\n    }\n    else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" if (parenthesized_expression "(option == 0xfa)" ( (binary_expression "option == 0xfa" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 6;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 6;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 6" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" else (if_statement "if (option == 0xf2) {\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }\n    else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" if (parenthesized_expression "(option == 0xf2)" ( (binary_expression "option == 0xf2" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0xd) = 0;\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" { (expression_statement "*(undefined4 *)(plug + 0xd) = 0;" (assignment_expression "*(undefined4 *)(plug + 0xd) = 0" (pointer_expression "*(undefined4 *)(plug + 0xd)" * (cast_expression "(undefined4 *)(plug + 0xd)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xd)" ( (binary_expression "plug + 0xd" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" else (compound_statement "{\n      if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n    }" { (if_statement "if (option == 0xff) {\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }" if (parenthesized_expression "(option == 0xff)" ( (binary_expression "option == 0xff" identifier == number_literal) )) (compound_statement "{\n        if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }\n        local_88[wVar4] = bVar1;\n        wVar4 = wVar4 + L'\x01';\n      }" { (if_statement "if (local_74 <= wVar4) {\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }" if (parenthesized_expression "(local_74 <= wVar4)" ( (binary_expression "local_74 <= wVar4" identifier <= identifier) )) (compound_statement "{\n          local_74 = wVar4 + L'Ā';\n          local_88 = (char *)saferealloc(local_88,(long)local_74,1);\n        }" { (expression_statement "local_74 = wVar4 + L'Ā';" (assignment_expression "local_74 = wVar4 + L'Ā'" identifier = (binary_expression "wVar4 + L'Ā'" identifier + (char_literal "L'Ā'" L' character '))) ;) (expression_statement "local_88 = (char *)saferealloc(local_88,(long)local_74,1);" (assignment_expression "local_88 = (char *)saferealloc(local_88,(long)local_74,1)" identifier = (cast_expression "(char *)saferealloc(local_88,(long)local_74,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(local_88,(long)local_74,1)" identifier (argument_list "(local_88,(long)local_74,1)" ( identifier , (cast_expression "(long)local_74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) })) (expression_statement "local_88[wVar4] = bVar1;" (assignment_expression "local_88[wVar4] = bVar1" (subscript_expression "local_88[wVar4]" identifier [ identifier ]) = identifier) ;) (expression_statement "wVar4 = wVar4 + L'\x01';" (assignment_expression "wVar4 = wVar4 + L'\x01'" identifier = (binary_expression "wVar4 + L'\x01'" identifier + (char_literal "L'\x01'" L' escape_sequence '))) ;) })) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) }))))))))))))) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 2:\n    proc_rec_opt((Telnet)plug,0xfb,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "proc_rec_opt((Telnet)plug,0xfb,option);" (call_expression "proc_rec_opt((Telnet)plug,0xfb,option)" identifier (argument_list "((Telnet)plug,0xfb,option)" ( (cast_expression "(Telnet)plug" ( (type_descriptor "Telnet" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 3:\n    proc_rec_opt((Telnet)plug,0xfc,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "proc_rec_opt((Telnet)plug,0xfc,option);" (call_expression "proc_rec_opt((Telnet)plug,0xfc,option)" identifier (argument_list "((Telnet)plug,0xfc,option)" ( (cast_expression "(Telnet)plug" ( (type_descriptor "Telnet" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 4:\n    proc_rec_opt((Telnet)plug,0xfd,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "proc_rec_opt((Telnet)plug,0xfd,option);" (call_expression "proc_rec_opt((Telnet)plug,0xfd,option)" identifier (argument_list "((Telnet)plug,0xfd,option)" ( (cast_expression "(Telnet)plug" ( (type_descriptor "Telnet" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 5:\n    proc_rec_opt((Telnet)plug,0xfe,option);\n    *(undefined4 *)(plug + 0x11) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "proc_rec_opt((Telnet)plug,0xfe,option);" (call_expression "proc_rec_opt((Telnet)plug,0xfe,option)" identifier (argument_list "((Telnet)plug,0xfe,option)" ( (cast_expression "(Telnet)plug" ( (type_descriptor "Telnet" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 6:\n    *(uint *)((long)plug + 0x6c) = option;\n    *(undefined4 *)(plug + 0xe) = 0;\n    *(undefined4 *)(plug + 0x11) = 7;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "*(uint *)((long)plug + 0x6c) = option;" (assignment_expression "*(uint *)((long)plug + 0x6c) = option" (pointer_expression "*(uint *)((long)plug + 0x6c)" * (cast_expression "(uint *)((long)plug + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x6c)" ( (binary_expression "(long)plug + 0x6c" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(plug + 0xe) = 0;" (assignment_expression "*(undefined4 *)(plug + 0xe) = 0" (pointer_expression "*(undefined4 *)(plug + 0xe)" * (cast_expression "(undefined4 *)(plug + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 7;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 7" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 7:\n    if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" case number_literal : (if_statement "if (option == 0xff) {\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" if (parenthesized_expression "(option == 0xff)" ( (binary_expression "option == 0xff" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(plug + 0x11) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" { (expression_statement "*(undefined4 *)(plug + 0x11) = 8;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 8" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 8:\n    if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" case number_literal : (if_statement "if (option == 0xf0) {\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" if (parenthesized_expression "(option == 0xf0)" ( (binary_expression "option == 0xf0" identifier == number_literal) )) (compound_statement "{\n      iVar14 = *(int *)((long)plug + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }\n      *(undefined4 *)(plug + 0x11) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" { (expression_statement "iVar14 = *(int *)((long)plug + 0x6c);" (assignment_expression "iVar14 = *(int *)((long)plug + 0x6c)" identifier = (pointer_expression "*(int *)((long)plug + 0x6c)" * (cast_expression "(int *)((long)plug + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x6c)" ( (binary_expression "(long)plug + 0x6c" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar14 == 0x20) {\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }" if (parenthesized_expression "(iVar14 == 0x20)" ( (binary_expression "iVar14 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }\n      }" { (if_statement "if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }\n        else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }" if (parenthesized_expression "((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01'))" ( (binary_expression "(*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')" (parenthesized_expression "(*(int *)(plug + 0xe) == 1)" ( (binary_expression "*(int *)(plug + 0xe) == 1" (pointer_expression "*(int *)(plug + 0xe)" * (cast_expression "(int *)(plug + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)&plug[0xf]->log == '\x01')" ( (binary_expression "*(char *)&plug[0xf]->log == '\x01'" (pointer_expression "*(char *)&plug[0xf]->log" * (cast_expression "(char *)&plug[0xf]->log" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&plug[0xf]->log" & (field_expression "plug[0xf]->log" (subscript_expression "plug[0xf]" identifier [ number_literal ]) -> field_identifier)))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          logevent(plug[3],"server:\tSB TSPEED SEND");\n          pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          safefree(puVar7);\n        }" { (expression_statement "pcVar6 = conf_get_str((Conf *)plug[0x12],0x31);" (assignment_expression "pcVar6 = conf_get_str((Conf *)plug[0x12],0x31)" identifier = (call_expression "conf_get_str((Conf *)plug[0x12],0x31)" identifier (argument_list "((Conf *)plug[0x12],0x31)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal )))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" do (compound_statement "{\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1)" identifier = (cast_expression "(undefined1 *)safemalloc(~uVar9 + 0x13,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(~uVar9 + 0x13,1)" identifier (argument_list "(~uVar9 + 0x13,1)" ( (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" ~ identifier) + number_literal) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x20;" (assignment_expression "puVar7[2] = 0x20" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "strcpy(puVar7 + 4,pcVar6);" (call_expression "strcpy(puVar7 + 4,pcVar6)" identifier (argument_list "(puVar7 + 4,pcVar6)" ( (binary_expression "puVar7 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" do (compound_statement "{\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar11 = (long)(int)(~(uint)lVar10 + 3);" (assignment_expression "lVar11 = (long)(int)(~(uint)lVar10 + 3)" identifier = (cast_expression "(long)(int)(~(uint)lVar10 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(~(uint)lVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(~(uint)lVar10 + 3)" ( (binary_expression "~(uint)lVar10 + 3" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar7[lVar11] = 0xff;" (assignment_expression "puVar7[lVar11] = 0xff" (subscript_expression "puVar7[lVar11]" identifier [ identifier ]) = number_literal) ;) (expression_statement "puVar7[lVar11 + 1] = 0xf0;" (assignment_expression "puVar7[lVar11 + 1] = 0xf0" (subscript_expression "puVar7[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5);" (assignment_expression "uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5)" identifier = (call_expression "(**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,~(uint)lVar10 + 5)" (parenthesized_expression "(**(code **)(plug[1]->log + 0x10))" ( (pointer_expression "**(code **)(plug[1]->log + 0x10)" * (pointer_expression "*(code **)(plug[1]->log + 0x10)" * (cast_expression "(code **)(plug[1]->log + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plug[1]->log + 0x10)" ( (binary_expression "plug[1]->log + 0x10" (field_expression "plug[1]->log" (subscript_expression "plug[1]" identifier [ number_literal ]) -> field_identifier) + number_literal) ))))) )) (argument_list "(plug[1],puVar7,~(uint)lVar10 + 5)" ( (subscript_expression "plug[1]" identifier [ number_literal ]) , identifier , (binary_expression "~(uint)lVar10 + 5" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((long)plug + 100) = uVar3;" (assignment_expression "*(undefined4 *)((long)plug + 100) = uVar3" (pointer_expression "*(undefined4 *)((long)plug + 100)" * (cast_expression "(undefined4 *)((long)plug + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 100)" ( (binary_expression "(long)plug + 100" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "logevent(plug[3],"server:\tSB TSPEED SEND");" (call_expression "logevent(plug[3],"server:\tSB TSPEED SEND")" identifier (argument_list "(plug[3],"server:\tSB TSPEED SEND")" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , (string_literal ""server:\tSB TSPEED SEND"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6);" (assignment_expression "pcVar8 = dupprintf("client:\tSB TSPEED IS %s",pcVar6)" identifier = (call_expression "dupprintf("client:\tSB TSPEED IS %s",pcVar6)" identifier (argument_list "("client:\tSB TSPEED IS %s",pcVar6)" ( (string_literal ""client:\tSB TSPEED IS %s"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "logevent(plug[3],pcVar8);" (call_expression "logevent(plug[3],pcVar8)" identifier (argument_list "(plug[3],pcVar8)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar8);" (call_expression "safefree(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "safefree(puVar7);" (call_expression "safefree(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) }) (else_clause "else {\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }" else (compound_statement "{\n          logevent(plug[3],"server:\tSB TSPEED <something weird>");\n        }" { (expression_statement "logevent(plug[3],"server:\tSB TSPEED <something weird>");" (call_expression "logevent(plug[3],"server:\tSB TSPEED <something weird>")" identifier (argument_list "(plug[3],"server:\tSB TSPEED <something weird>")" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , (string_literal ""server:\tSB TSPEED <something weird>"" " string_content escape_sequence string_content ") ))) ;) }))) }) (else_clause "else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }" else (if_statement "if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }" if (parenthesized_expression "(iVar14 < 0x21)" ( (binary_expression "iVar14 < 0x21" identifier < number_literal) )) (compound_statement "{\n        if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }" { (if_statement "if (iVar14 == 0x18) {\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" if (parenthesized_expression "(iVar14 == 0x18)" ( (binary_expression "iVar14 == 0x18" identifier == number_literal) )) (compound_statement "{\n          if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" { (if_statement "if ((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')) {\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }\n          else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }" if (parenthesized_expression "((*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01'))" ( (binary_expression "(*(int *)(plug + 0xe) == 1) && (*(char *)&plug[0xf]->log == '\x01')" (parenthesized_expression "(*(int *)(plug + 0xe) == 1)" ( (binary_expression "*(int *)(plug + 0xe) == 1" (pointer_expression "*(int *)(plug + 0xe)" * (cast_expression "(int *)(plug + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)&plug[0xf]->log == '\x01')" ( (binary_expression "*(char *)&plug[0xf]->log == '\x01'" (pointer_expression "*(char *)&plug[0xf]->log" * (cast_expression "(char *)&plug[0xf]->log" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&plug[0xf]->log" & (field_expression "plug[0xf]->log" (subscript_expression "plug[0xf]" identifier [ number_literal ]) -> field_identifier)))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n            pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);\n            *(undefined4 *)((long)plug + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            logevent(plug[3],"server:\tSB TTYPE SEND");\n            pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);\n            logevent(plug[3],pcVar8);\n            safefree(pcVar8);\n            safefree(puVar7);\n          }" { (expression_statement "pcVar6 = conf_get_str((Conf *)plug[0x12],0x30);" (assignment_expression "pcVar6 = conf_get_str((Conf *)plug[0x12],0x30)" identifier = (call_expression "conf_get_str((Conf *)plug[0x12],0x30)" identifier (argument_list "((Conf *)plug[0x12],0x30)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal )))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" do (compound_statement "{\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)safemalloc(~uVar9 + 0x13,1)" identifier = (cast_expression "(undefined1 *)safemalloc(~uVar9 + 0x13,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(~uVar9 + 0x13,1)" identifier (argument_list "(~uVar9 + 0x13,1)" ( (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" ~ identifier) + number_literal) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x18;" (assignment_expression "puVar7[2] = 0x18" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar14 = 0;\n              lVar10 = 0;\n            }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" else (compound_statement "{\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" { (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;) (do_statement "do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              }" { (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (if_statement "if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }" if (parenthesized_expression "((byte)(cVar2 + 0x9fU) < 0x1a)" ( (binary_expression "(byte)(cVar2 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar2 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x9fU)" ( (binary_expression "cVar2 + 0x9fU" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n                  cVar2 = cVar2 + -0x20;\n                }" { (expression_statement "cVar2 = cVar2 + -0x20;" (assignment_expression "cVar2 = cVar2 + -0x20" identifier = (binary_expression "cVar2 + -0x20" identifier + number_literal)) ;) })) (expression_statement "puVar7[lVar10 + 3] = cVar2;" (assignment_expression "puVar7[lVar10 + 3] = cVar2" (subscript_expression "puVar7[lVar10 + 3]" identifier [ (binary_expression "lVar10 + 3" identifier + number_literal) ]) = identifier) ;) (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar2 = pcVar6[lVar10];" (assignment_expression "cVar2 = pcVar6[lVar10]" identifier = (subscript_expression "pcVar6[lVar10]" identifier [ identifier ])) ;) (expression_statement "lVar11 = lVar10 + 1;" (assignment_expression "lVar11 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "puVar7[lVar10 + 4] = 0xff;" (assignment_expression "puVar7[lVar10 + 4] = 0xff" (subscript_expression "puVar7[lVar10 + 4]" identifier [ (binary_expression "lVar10 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[lVar10 + 5] = 0xf0;" (assignment_expression "puVar7[lVar10 + 5] = 0xf0" (subscript_expression "puVar7[lVar10 + 5]" identifier [ (binary_expression "lVar10 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6);" (assignment_expression "uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6)" identifier = (call_expression "(**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar14 + 6)" (parenthesized_expression "(**(code **)(plug[1]->log + 0x10))" ( (pointer_expression "**(code **)(plug[1]->log + 0x10)" * (pointer_expression "*(code **)(plug[1]->log + 0x10)" * (cast_expression "(code **)(plug[1]->log + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plug[1]->log + 0x10)" ( (binary_expression "plug[1]->log + 0x10" (field_expression "plug[1]->log" (subscript_expression "plug[1]" identifier [ number_literal ]) -> field_identifier) + number_literal) ))))) )) (argument_list "(plug[1],puVar7,iVar14 + 6)" ( (subscript_expression "plug[1]" identifier [ number_literal ]) , identifier , (binary_expression "iVar14 + 6" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)((long)plug + 100) = uVar3;" (assignment_expression "*(undefined4 *)((long)plug + 100) = uVar3" (pointer_expression "*(undefined4 *)((long)plug + 100)" * (cast_expression "(undefined4 *)((long)plug + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 100)" ( (binary_expression "(long)plug + 100" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar7[lVar10 + 4] = 0;" (assignment_expression "puVar7[lVar10 + 4] = 0" (subscript_expression "puVar7[lVar10 + 4]" identifier [ (binary_expression "lVar10 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "logevent(plug[3],"server:\tSB TTYPE SEND");" (call_expression "logevent(plug[3],"server:\tSB TTYPE SEND")" identifier (argument_list "(plug[3],"server:\tSB TTYPE SEND")" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , (string_literal ""server:\tSB TTYPE SEND"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4);" (assignment_expression "pcVar8 = dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4)" identifier = (call_expression "dupprintf("client:\tSB TTYPE IS %s",puVar7 + 4)" identifier (argument_list "("client:\tSB TTYPE IS %s",puVar7 + 4)" ( (string_literal ""client:\tSB TTYPE IS %s"" " string_content escape_sequence string_content ") , (binary_expression "puVar7 + 4" identifier + number_literal) )))) ;) (expression_statement "logevent(plug[3],pcVar8);" (call_expression "logevent(plug[3],pcVar8)" identifier (argument_list "(plug[3],pcVar8)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar8);" (call_expression "safefree(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "safefree(puVar7);" (call_expression "safefree(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) }) (else_clause "else {\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }" else (compound_statement "{\n            logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");\n          }" { (expression_statement "logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n");" (call_expression "logevent(plug[3],"server:\tSB TTYPE <something weird>\r\n")" identifier (argument_list "(plug[3],"server:\tSB TTYPE <something weird>\r\n")" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , (string_literal ""server:\tSB TTYPE <something weird>\r\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) }))) })) }) (else_clause "else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }" else (if_statement "if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }" if (parenthesized_expression "((iVar14 == 0x24) || (iVar14 == 0x27))" ( (binary_expression "(iVar14 == 0x24) || (iVar14 == 0x27)" (parenthesized_expression "(iVar14 == 0x24)" ( (binary_expression "iVar14 == 0x24" identifier == number_literal) )) || (parenthesized_expression "(iVar14 == 0x27)" ( (binary_expression "iVar14 == 0x27" identifier == number_literal) ))) )) (compound_statement "{\n        ppVar13 = plug[0xf];\n        ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));\n        if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }\n      }" { (expression_statement "ppVar13 = plug[0xf];" (assignment_expression "ppVar13 = plug[0xf]" identifier = (subscript_expression "plug[0xf]" identifier [ number_literal ])) ;) (expression_statement "ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe));" (assignment_expression "ppVar5 = (plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe))" identifier = (cast_expression "(plug_function_table *)((long)&ppVar13->log + (long)*(int *)(plug + 0xe))" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&ppVar13->log + (long)*(int *)(plug + 0xe))" ( (binary_expression "(long)&ppVar13->log + (long)*(int *)(plug + 0xe)" (cast_expression "(long)&ppVar13->log" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&ppVar13->log" & (field_expression "ppVar13->log" identifier -> field_identifier))) + (cast_expression "(long)*(int *)(plug + 0xe)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(plug + 0xe)" * (cast_expression "(int *)(plug + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) )))))) )))) ;) (if_statement "if ((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')) {\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }" if (parenthesized_expression "((ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01'))" ( (binary_expression "(ppVar13 < ppVar5) && (*(char *)&ppVar13->log == '\x01')" (parenthesized_expression "(ppVar13 < ppVar5)" ( (binary_expression "ppVar13 < ppVar5" identifier < identifier) )) && (parenthesized_expression "(*(char *)&ppVar13->log == '\x01')" ( (binary_expression "*(char *)&ppVar13->log == '\x01'" (pointer_expression "*(char *)&ppVar13->log" * (cast_expression "(char *)&ppVar13->log" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar13->log" & (field_expression "ppVar13->log" identifier -> field_identifier)))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pcVar8 = telopt(iVar14);\n          pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);\n          logevent(plug[3],pcVar8);\n          safefree(pcVar8);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }\n          pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = get_remote_username((Conf *)plug[0x12]);\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)safemalloc((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);\n          *(undefined4 *)((long)plug + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }\n          safefree(puVar7);\n          safefree(pcVar8);\n        }" { (expression_statement "pcVar8 = telopt(iVar14);" (assignment_expression "pcVar8 = telopt(iVar14)" identifier = (call_expression "telopt(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8);" (assignment_expression "pcVar8 = dupprintf("server:\tSB %s SEND",pcVar8)" identifier = (call_expression "dupprintf("server:\tSB %s SEND",pcVar8)" identifier (argument_list "("server:\tSB %s SEND",pcVar8)" ( (string_literal ""server:\tSB %s SEND"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "logevent(plug[3],pcVar8);" (call_expression "logevent(plug[3],pcVar8)" identifier (argument_list "(plug[3],pcVar8)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar8);" (call_expression "safefree(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" identifier = true) ;) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" identifier = false) ;) (if_statement "if (*(int *)((long)plug + 0x6c) == 0x24) {\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }" if (parenthesized_expression "(*(int *)((long)plug + 0x6c) == 0x24)" ( (binary_expression "*(int *)((long)plug + 0x6c) == 0x24" (pointer_expression "*(int *)((long)plug + 0x6c)" * (cast_expression "(int *)((long)plug + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x6c)" ( (binary_expression "(long)plug + 0x6c" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar14 = conf_get_int((Conf *)plug[0x12],0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n            if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }\n          }" { (expression_statement "iVar14 = conf_get_int((Conf *)plug[0x12],0x37);" (assignment_expression "iVar14 = conf_get_int((Conf *)plug[0x12],0x37)" identifier = (call_expression "conf_get_int((Conf *)plug[0x12],0x37)" identifier (argument_list "((Conf *)plug[0x12],0x37)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal )))) ;) (expression_statement "local_58 = iVar14 != 0;" (assignment_expression "local_58 = iVar14 != 0" identifier = (binary_expression "iVar14 != 0" identifier != number_literal)) ;) (expression_statement "local_60 = !local_58;" (assignment_expression "local_60 = !local_58" identifier = (unary_expression "!local_58" ! identifier)) ;) (expression_statement "ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);" (assignment_expression "ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1)" identifier = (cast_expression "(plug_function_table *)((long)&ppVar13->log + 1)" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&ppVar13->log + 1)" ( (binary_expression "(long)&ppVar13->log + 1" (cast_expression "(long)&ppVar13->log" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&ppVar13->log" & (field_expression "ppVar13->log" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (ppVar13 < ppVar5) {\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }" if (parenthesized_expression "(ppVar13 < ppVar5)" ( (binary_expression "ppVar13 < ppVar5" identifier < identifier) )) (compound_statement "{\n              do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);\n            }" { (do_statement "do {\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              } while (ppVar5 != ppVar13);" do (compound_statement "{\n                cVar2 = *(char *)&ppVar13->log;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);\n              }" { (expression_statement "cVar2 = *(char *)&ppVar13->log;" (assignment_expression "cVar2 = *(char *)&ppVar13->log" identifier = (pointer_expression "*(char *)&ppVar13->log" * (cast_expression "(char *)&ppVar13->log" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar13->log" & (field_expression "ppVar13->log" identifier -> field_identifier))))) ;) (if_statement "if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_58 = true;\n                  local_60 = false;\n                }" { (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" identifier = true) ;) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" identifier = false) ;) }) (else_clause "else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" else (compound_statement "{\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" { (if_statement "if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    local_58 = false;\n                  }" { (expression_statement "local_58 = false;" (assignment_expression "local_58 = false" identifier = false) ;) })) (if_statement "if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    local_60 = true;\n                  }" { (expression_statement "local_60 = true;" (assignment_expression "local_60 = true" identifier = true) ;) })) }))) (expression_statement "ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1);" (assignment_expression "ppVar13 = (plug_function_table *)((long)&ppVar13->log + 1)" identifier = (cast_expression "(plug_function_table *)((long)&ppVar13->log + 1)" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&ppVar13->log + 1)" ( (binary_expression "(long)&ppVar13->log + 1" (cast_expression "(long)&ppVar13->log" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&ppVar13->log" & (field_expression "ppVar13->log" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(ppVar5 != ppVar13)" ( (binary_expression "ppVar5 != ppVar13" identifier != identifier) )) ;) })) })) (expression_statement "pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);" (assignment_expression "pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" identifier = (call_expression "conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" identifier (argument_list "((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&ekey" & identifier) )))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar14 = 0x14;\n          }" { (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }" else (compound_statement "{\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);\n          }" { (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" identifier = number_literal) ;) (do_statement "do {\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar8 != (char *)0x0);" do (compound_statement "{\n              lVar10 = -1;\n              pcVar6 = ekey;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar6 = ekey;" (assignment_expression "pcVar6 = ekey" identifier = identifier) ;) (do_statement "do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" identifier = number_literal) ;) (do_statement "do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;" (assignment_expression "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" identifier = (binary_expression "(iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" (binary_expression "(iVar14 - (int)lVar10) + -1" (parenthesized_expression "(iVar14 - (int)lVar10)" ( (binary_expression "iVar14 - (int)lVar10" identifier - (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (unary_expression "~(uint)lVar11" ~ (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (expression_statement "pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);" (assignment_expression "pcVar8 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey)" identifier = (call_expression "conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey)" identifier (argument_list "((Conf *)plug[0x12],0x33,ekey,&ekey)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal , identifier , (pointer_expression "&ekey" & identifier) )))) ;) }) while (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "pcVar8 = get_remote_username((Conf *)plug[0x12]);" (assignment_expression "pcVar8 = get_remote_username((Conf *)plug[0x12])" identifier = (call_expression "get_remote_username((Conf *)plug[0x12])" identifier (argument_list "((Conf *)plug[0x12])" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) )))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar8;" (assignment_expression "pcVar6 = pcVar8" identifier = identifier) ;) (do_statement "do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" do (compound_statement "{\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar14 = iVar14 + 5 + ~(uint)lVar10;" (assignment_expression "iVar14 = iVar14 + 5 + ~(uint)lVar10" identifier = (binary_expression "iVar14 + 5 + ~(uint)lVar10" (binary_expression "iVar14 + 5" identifier + number_literal) + (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) })) (expression_statement "puVar7 = (undefined1 *)safemalloc((long)iVar14,1);" (assignment_expression "puVar7 = (undefined1 *)safemalloc((long)iVar14,1)" identifier = (cast_expression "(undefined1 *)safemalloc((long)iVar14,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc((long)iVar14,1)" identifier (argument_list "((long)iVar14,1)" ( (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c);" (assignment_expression "puVar7[2] = (char)*(undefined4 *)((long)plug + 0x6c)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)((long)plug + 0x6c)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)((long)plug + 0x6c)" * (cast_expression "(undefined4 *)((long)plug + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x6c)" ( (binary_expression "(long)plug + 0x6c" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);" (assignment_expression "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" identifier = (call_expression "conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" identifier (argument_list "((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&ekey" & identifier) )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar14 = 4;\n          }" { (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) }) (else_clause "else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }" else (compound_statement "{\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);\n          }" { (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) (do_statement "do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            } while (pcVar6 != (char *)0x0);" do (compound_statement "{\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *ekey;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }" { (expression_statement "iVar12 = iVar14 + 1;" (assignment_expression "iVar12 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar2 = *ekey;" (assignment_expression "cVar2 = *ekey" identifier = (pointer_expression "*ekey" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" { (expression_statement "lVar10 = (long)(iVar14 + 2);" (assignment_expression "lVar10 = (long)(iVar14 + 2)" identifier = (cast_expression "(long)(iVar14 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar14 + 2)" ( (binary_expression "iVar14 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];\n                }" { (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = ekey[lVar10 + (-2 - (long)iVar14)];" (assignment_expression "cVar2 = ekey[lVar10 + (-2 - (long)iVar14)]" identifier = (subscript_expression "ekey[lVar10 + (-2 - (long)iVar14)]" identifier [ (binary_expression "lVar10 + (-2 - (long)iVar14)" identifier + (parenthesized_expression "(-2 - (long)iVar14)" ( (binary_expression "-2 - (long)iVar14" number_literal - (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "iVar14 = iVar12 + 1;" (assignment_expression "iVar14 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[iVar12] = local_58;" (assignment_expression "puVar7[iVar12] = local_58" (subscript_expression "puVar7[iVar12]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" { (expression_statement "lVar10 = (long)(iVar12 + 2);" (assignment_expression "lVar10 = (long)(iVar12 + 2)" identifier = (cast_expression "(long)(iVar12 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar12 + 2)" ( (binary_expression "iVar12 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                }" { (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];" (assignment_expression "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)]" identifier = (subscript_expression "pcVar6[lVar10 + (-2 - (long)iVar12)]" identifier [ (binary_expression "lVar10 + (-2 - (long)iVar12)" identifier + (parenthesized_expression "(-2 - (long)iVar12)" ( (binary_expression "-2 - (long)iVar12" number_literal - (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);" (assignment_expression "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey)" identifier = (call_expression "conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey)" identifier (argument_list "((Conf *)plug[0x12],0x33,ekey,&ekey)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal , identifier , (pointer_expression "&ekey" & identifier) )))) ;) }) while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "iVar12 = iVar14;" (assignment_expression "iVar12 = iVar14" identifier = identifier) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" { (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "puVar7[iVar14 + 1] = 0x55;" (assignment_expression "puVar7[iVar14 + 1] = 0x55" (subscript_expression "puVar7[iVar14 + 1]" identifier [ (binary_expression "iVar14 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 2] = 0x53;" (assignment_expression "puVar7[iVar14 + 2] = 0x53" (subscript_expression "puVar7[iVar14 + 2]" identifier [ (binary_expression "iVar14 + 2" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 3] = 0x45;" (assignment_expression "puVar7[iVar14 + 3] = 0x45" (subscript_expression "puVar7[iVar14 + 3]" identifier [ (binary_expression "iVar14 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 4] = 0x52;" (assignment_expression "puVar7[iVar14 + 4] = 0x52" (subscript_expression "puVar7[iVar14 + 4]" identifier [ (binary_expression "iVar14 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar12 = iVar14 + 6;" (assignment_expression "iVar12 = iVar14 + 6" identifier = (binary_expression "iVar14 + 6" identifier + number_literal)) ;) (expression_statement "puVar7[iVar14 + 5] = local_58;" (assignment_expression "puVar7[iVar14 + 5] = local_58" (subscript_expression "puVar7[iVar14 + 5]" identifier [ (binary_expression "iVar14 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" { (expression_statement "lVar10 = (long)(iVar14 + 7);" (assignment_expression "lVar10 = (long)(iVar14 + 7)" identifier = (cast_expression "(long)(iVar14 + 7)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar14 + 7)" ( (binary_expression "iVar14 + 7" identifier + number_literal) )))) ;) (do_statement "do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');" do (compound_statement "{\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              }" { (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];" (assignment_expression "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)]" identifier = (subscript_expression "pcVar8[lVar10 + (-7 - (long)iVar14)]" identifier [ (binary_expression "lVar10 + (-7 - (long)iVar14)" identifier + (parenthesized_expression "(-7 - (long)iVar14)" ( (binary_expression "-7 - (long)iVar14" number_literal - (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "puVar7[iVar12] = 0xff;" (assignment_expression "puVar7[iVar12] = 0xff" (subscript_expression "puVar7[iVar12]" identifier [ identifier ]) = number_literal) ;) (expression_statement "puVar7[iVar12 + 1] = 0xf0;" (assignment_expression "puVar7[iVar12 + 1] = 0xf0" (subscript_expression "puVar7[iVar12 + 1]" identifier [ (binary_expression "iVar12 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2);" (assignment_expression "uVar3 = (**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2)" identifier = (call_expression "(**(code **)(plug[1]->log + 0x10))(plug[1],puVar7,iVar12 + 2)" (parenthesized_expression "(**(code **)(plug[1]->log + 0x10))" ( (pointer_expression "**(code **)(plug[1]->log + 0x10)" * (pointer_expression "*(code **)(plug[1]->log + 0x10)" * (cast_expression "(code **)(plug[1]->log + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plug[1]->log + 0x10)" ( (binary_expression "plug[1]->log + 0x10" (field_expression "plug[1]->log" (subscript_expression "plug[1]" identifier [ number_literal ]) -> field_identifier) + number_literal) ))))) )) (argument_list "(plug[1],puVar7,iVar12 + 2)" ( (subscript_expression "plug[1]" identifier [ number_literal ]) , identifier , (binary_expression "iVar12 + 2" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)((long)plug + 100) = uVar3;" (assignment_expression "*(undefined4 *)((long)plug + 100) = uVar3" (pointer_expression "*(undefined4 *)((long)plug + 100)" * (cast_expression "(undefined4 *)((long)plug + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 100)" ( (binary_expression "(long)plug + 100" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 + 2 == 6) {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }\n          else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }" if (parenthesized_expression "(iVar12 + 2 == 6)" ( (binary_expression "iVar12 + 2 == 6" (binary_expression "iVar12 + 2" identifier + number_literal) == number_literal) )) (compound_statement "{\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n          }" { (expression_statement "pcVar6 = telopt(*(int *)((long)plug + 0x6c));" (assignment_expression "pcVar6 = telopt(*(int *)((long)plug + 0x6c))" identifier = (call_expression "telopt(*(int *)((long)plug + 0x6c))" identifier (argument_list "(*(int *)((long)plug + 0x6c))" ( (pointer_expression "*(int *)((long)plug + 0x6c)" * (cast_expression "(int *)((long)plug + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x6c)" ( (binary_expression "(long)plug + 0x6c" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6);" (assignment_expression "pcVar6 = dupprintf("client:\tSB %s IS <nothing>",pcVar6)" identifier = (call_expression "dupprintf("client:\tSB %s IS <nothing>",pcVar6)" identifier (argument_list "("client:\tSB %s IS <nothing>",pcVar6)" ( (string_literal ""client:\tSB %s IS <nothing>"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "logevent(plug[3],pcVar6);" (call_expression "logevent(plug[3],pcVar6)" identifier (argument_list "(plug[3],pcVar6)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar6);" (call_expression "safefree(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) }) (else_clause "else {\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }" else (compound_statement "{\n            pcVar6 = telopt(*(int *)((long)plug + 0x6c));\n            pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);\n            logevent(plug[3],pcVar6);\n            safefree(pcVar6);\n            pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);\n            while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }\n            if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }\n          }" { (expression_statement "pcVar6 = telopt(*(int *)((long)plug + 0x6c));" (assignment_expression "pcVar6 = telopt(*(int *)((long)plug + 0x6c))" identifier = (call_expression "telopt(*(int *)((long)plug + 0x6c))" identifier (argument_list "(*(int *)((long)plug + 0x6c))" ( (pointer_expression "*(int *)((long)plug + 0x6c)" * (cast_expression "(int *)((long)plug + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plug + 0x6c)" ( (binary_expression "(long)plug + 0x6c" (cast_expression "(long)plug" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6);" (assignment_expression "pcVar6 = dupprintf("client:\tSB %s IS:",pcVar6)" identifier = (call_expression "dupprintf("client:\tSB %s IS:",pcVar6)" identifier (argument_list "("client:\tSB %s IS:",pcVar6)" ( (string_literal ""client:\tSB %s IS:"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "logevent(plug[3],pcVar6);" (call_expression "logevent(plug[3],pcVar6)" identifier (argument_list "(plug[3],pcVar6)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar6);" (call_expression "safefree(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey);" (assignment_expression "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" identifier = (call_expression "conf_get_str_strs((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" identifier (argument_list "((Conf *)plug[0x12],0x33,(char *)0x0,&ekey)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&ekey" & identifier) )))) ;) (while_statement "while (pcVar6 != (char *)0x0) {\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }" while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n              pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);\n            }" { (expression_statement "pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6);" (assignment_expression "pcVar6 = dupprintf("\t%s=%s",ekey,pcVar6)" identifier = (call_expression "dupprintf("\t%s=%s",ekey,pcVar6)" identifier (argument_list "("\t%s=%s",ekey,pcVar6)" ( (string_literal ""\t%s=%s"" " escape_sequence string_content ") , identifier , identifier )))) ;) (expression_statement "logevent(plug[3],pcVar6);" (call_expression "logevent(plug[3],pcVar6)" identifier (argument_list "(plug[3],pcVar6)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar6);" (call_expression "safefree(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey);" (assignment_expression "pcVar6 = conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey)" identifier = (call_expression "conf_get_str_strs((Conf *)plug[0x12],0x33,ekey,&ekey)" identifier (argument_list "((Conf *)plug[0x12],0x33,ekey,&ekey)" ( (cast_expression "(Conf *)plug[0x12]" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plug[0x12]" identifier [ number_literal ])) , number_literal , identifier , (pointer_expression "&ekey" & identifier) )))) ;) })) (if_statement "if (pcVar8 != (char *)0x0) {\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar6 = dupprintf("\tUSER=%s",pcVar8);\n              logevent(plug[3],pcVar6);\n              safefree(pcVar6);\n            }" { (expression_statement "pcVar6 = dupprintf("\tUSER=%s",pcVar8);" (assignment_expression "pcVar6 = dupprintf("\tUSER=%s",pcVar8)" identifier = (call_expression "dupprintf("\tUSER=%s",pcVar8)" identifier (argument_list "("\tUSER=%s",pcVar8)" ( (string_literal ""\tUSER=%s"" " escape_sequence string_content ") , identifier )))) ;) (expression_statement "logevent(plug[3],pcVar6);" (call_expression "logevent(plug[3],pcVar6)" identifier (argument_list "(plug[3],pcVar6)" ( (subscript_expression "plug[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "safefree(pcVar6);" (call_expression "safefree(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) }))) (expression_statement "safefree(puVar7);" (call_expression "safefree(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "safefree(pcVar8);" (call_expression "safefree(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) })))))) (expression_statement "*(undefined4 *)(plug + 0x11) = 0;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 0" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    goto switchD_0012c4c9_caseD_a;" default : (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(plug + 0x10) <= *(int *)(plug + 0xe)) {\n    iVar14 = *(int *)(plug + 0x10) + 0x400;\n    *(int *)(plug + 0x10) = iVar14;\n    ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);\n    plug[0xf] = ppVar5;\n  }" if (parenthesized_expression "(*(int *)(plug + 0x10) <= *(int *)(plug + 0xe))" ( (binary_expression "*(int *)(plug + 0x10) <= *(int *)(plug + 0xe)" (pointer_expression "*(int *)(plug + 0x10)" * (cast_expression "(int *)(plug + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x10)" ( (binary_expression "plug + 0x10" identifier + number_literal) )))) <= (pointer_expression "*(int *)(plug + 0xe)" * (cast_expression "(int *)(plug + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar14 = *(int *)(plug + 0x10) + 0x400;\n    *(int *)(plug + 0x10) = iVar14;\n    ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);\n    plug[0xf] = ppVar5;\n  }" { (expression_statement "iVar14 = *(int *)(plug + 0x10) + 0x400;" (assignment_expression "iVar14 = *(int *)(plug + 0x10) + 0x400" identifier = (binary_expression "*(int *)(plug + 0x10) + 0x400" (pointer_expression "*(int *)(plug + 0x10)" * (cast_expression "(int *)(plug + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x10)" ( (binary_expression "plug + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(plug + 0x10) = iVar14;" (assignment_expression "*(int *)(plug + 0x10) = iVar14" (pointer_expression "*(int *)(plug + 0x10)" * (cast_expression "(int *)(plug + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x10)" ( (binary_expression "plug + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1);" (assignment_expression "ppVar5 = (plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1)" identifier = (cast_expression "(plug_function_table *)saferealloc(plug[0xf],(long)iVar14,1)" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(plug[0xf],(long)iVar14,1)" identifier (argument_list "(plug[0xf],(long)iVar14,1)" ( (subscript_expression "plug[0xf]" identifier [ number_literal ]) , (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) (expression_statement "plug[0xf] = ppVar5;" (assignment_expression "plug[0xf] = ppVar5" (subscript_expression "plug[0xf]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iVar14 = *(int *)(plug + 0xe);" (assignment_expression "iVar14 = *(int *)(plug + 0xe)" identifier = (pointer_expression "*(int *)(plug + 0xe)" * (cast_expression "(int *)(plug + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(plug + 0xe) = iVar14 + 1;" (assignment_expression "*(int *)(plug + 0xe) = iVar14 + 1" (pointer_expression "*(int *)(plug + 0xe)" * (cast_expression "(int *)(plug + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0xe)" ( (binary_expression "plug + 0xe" identifier + number_literal) )))) = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)((long)&plug[0xf]->log + (long)iVar14) = bVar1;" (assignment_expression "*(byte *)((long)&plug[0xf]->log + (long)iVar14) = bVar1" (pointer_expression "*(byte *)((long)&plug[0xf]->log + (long)iVar14)" * (cast_expression "(byte *)((long)&plug[0xf]->log + (long)iVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&plug[0xf]->log + (long)iVar14)" ( (binary_expression "(long)&plug[0xf]->log + (long)iVar14" (cast_expression "(long)&plug[0xf]->log" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&plug[0xf]->log" & (field_expression "plug[0xf]->log" (subscript_expression "plug[0xf]" identifier [ number_literal ]) -> field_identifier))) + (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(plug + 0x11) = 7;" (assignment_expression "*(undefined4 *)(plug + 0x11) = 7" (pointer_expression "*(undefined4 *)(plug + 0x11)" * (cast_expression "(undefined4 *)(plug + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plug + 0x11)" ( (binary_expression "plug + 0x11" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })))
(translation_unit "void FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}\n\n" (function_definition "void FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" primitive_type (function_declarator "FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)" identifier (parameter_list "(long param_1,int param_2,byte *param_3,uint param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "bool local_60;" primitive_type identifier ;) (declaration "bool local_58;" primitive_type identifier ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0x68) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "pbVar15 = param_3;" (assignment_expression "pbVar15 = param_3" identifier = identifier) ;) (labeled_statement "switchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(pbVar15 == param_3 + param_4)" ( (binary_expression "pbVar15 == param_3 + param_4" identifier == (binary_expression "param_3 + param_4" identifier + identifier)) )) (compound_statement "{\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }" { (if_statement "if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }" { (expression_statement "iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);" (assignment_expression "iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" identifier = (call_expression "FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (expression_statement "(**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);" (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x30))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x30)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x30)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x30)" ( (binary_expression "**(long **)(param_1 + 8) + 0x30" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),0x1000 < iVar4)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (binary_expression "0x1000 < iVar4" number_literal < identifier) ))) ;) })) (expression_statement "FUN_00122b5a(local_88);" (call_expression "FUN_00122b5a(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "pbVar16 = pbVar15 + 1;" (assignment_expression "pbVar16 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "uVar13 = (uint)bVar1;" (assignment_expression "uVar13 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" identifier = identifier) ;) (switch_statement "switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" switch (parenthesized_expression "(*(int *)(param_1 + 0x88))" ( (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) )) (compound_statement "{\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (if_statement "if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" if (parenthesized_expression "((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9))" ( (binary_expression "(uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x88) == 9)" ( (binary_expression "*(int *)(param_1 + 0x88) == 9" (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" else (compound_statement "{\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" { (if_statement "if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" if (parenthesized_expression "(uVar13 != 0xff)" ( (binary_expression "uVar13 != 0xff" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" { (if_statement "if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x68) == 0)" ( (binary_expression "*(int *)(param_1 + 0x68) == 0" (pointer_expression "*(int *)(param_1 + 0x68)" * (cast_expression "(int *)(param_1 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }" { (if_statement "if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }" if (parenthesized_expression "(local_74 <= iVar4)" ( (binary_expression "local_74 <= iVar4" identifier <= identifier) )) (compound_statement "{\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }" { (expression_statement "local_74 = iVar4 + 0x100;" (assignment_expression "local_74 = iVar4 + 0x100" identifier = (binary_expression "iVar4 + 0x100" identifier + number_literal)) ;) (expression_statement "local_88 = FUN_001226ba(local_88,(long)local_74,1);" (assignment_expression "local_88 = FUN_001226ba(local_88,(long)local_74,1)" identifier = (call_expression "FUN_001226ba(local_88,(long)local_74,1)" identifier (argument_list "(local_88,(long)local_74,1)" ( identifier , (cast_expression "(long)local_74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) })) (expression_statement "*(byte *)(local_88 + iVar4) = bVar1;" (assignment_expression "*(byte *)(local_88 + iVar4) = bVar1" (pointer_expression "*(byte *)(local_88 + iVar4)" * (cast_expression "(byte *)(local_88 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + iVar4)" ( (binary_expression "local_88 + iVar4" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" statement_identifier : (if_statement "if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" if (parenthesized_expression "((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1))" ( (binary_expression "(uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)" (parenthesized_expression "(uVar13 == 0xd)" ( (binary_expression "uVar13 == 0xd" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x54) != 1)" ( (binary_expression "*(int *)(param_1 + 0x54) != 1" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 9;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 9" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) }))) }) (else_clause "else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" else (compound_statement "{\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" { (if_statement "if (uVar13 != 0xf2) goto LAB_0012c24b;" if (parenthesized_expression "(uVar13 != 0xf2)" ( (binary_expression "uVar13 != 0xf2" identifier != number_literal) )) (goto_statement "goto LAB_0012c24b;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (if_statement "if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfd)" ( (binary_expression "uVar13 == 0xfd" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 4;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 4" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfe)" ( (binary_expression "uVar13 == 0xfe" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 5;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 5" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfb)" ( (binary_expression "uVar13 == 0xfb" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfc)" ( (binary_expression "uVar13 == 0xfc" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xfa)" ( (binary_expression "uVar13 == 0xfa" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 6;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 6" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (if_statement "if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" if (parenthesized_expression "(uVar13 == 0xf2)" ( (binary_expression "uVar13 == 0xf2" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" else (compound_statement "{\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" { (if_statement "if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }" if (parenthesized_expression "(uVar13 == 0xff)" ( (binary_expression "uVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }" { (if_statement "if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }" if (parenthesized_expression "(local_74 <= iVar4)" ( (binary_expression "local_74 <= iVar4" identifier <= identifier) )) (compound_statement "{\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }" { (expression_statement "local_74 = iVar4 + 0x100;" (assignment_expression "local_74 = iVar4 + 0x100" identifier = (binary_expression "iVar4 + 0x100" identifier + number_literal)) ;) (expression_statement "local_88 = FUN_001226ba(local_88,(long)local_74,1);" (assignment_expression "local_88 = FUN_001226ba(local_88,(long)local_74,1)" identifier = (call_expression "FUN_001226ba(local_88,(long)local_74,1)" identifier (argument_list "(local_88,(long)local_74,1)" ( identifier , (cast_expression "(long)local_74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) })) (expression_statement "*(byte *)(local_88 + iVar4) = bVar1;" (assignment_expression "*(byte *)(local_88 + iVar4) = bVar1" (pointer_expression "*(byte *)(local_88 + iVar4)" * (cast_expression "(byte *)(local_88 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + iVar4)" ( (binary_expression "local_88 + iVar4" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) }))))))))))))) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfb,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfb,uVar13)" identifier (argument_list "(param_1,0xfb,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfc,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfc,uVar13)" identifier (argument_list "(param_1,0xfc,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfd,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfd,uVar13)" identifier (argument_list "(param_1,0xfd,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "FUN_0012c01f(param_1,0xfe,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfe,uVar13)" identifier (argument_list "(param_1,0xfe,uVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;" case number_literal : (expression_statement "*(uint *)(param_1 + 0x6c) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x6c) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x6c)" * (cast_expression "(uint *)(param_1 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x70) = 0" (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) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 7;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 7" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) (case_statement "case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" case number_literal : (if_statement "if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" if (parenthesized_expression "(uVar13 == 0xff)" ( (binary_expression "uVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x88) = 8;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 8" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" case number_literal : (if_statement "if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" if (parenthesized_expression "(uVar13 == 0xf0)" ( (binary_expression "uVar13 == 0xf0" identifier == number_literal) )) (compound_statement "{\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" { (expression_statement "iVar14 = *(int *)(param_1 + 0x6c);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x6c)" identifier = (pointer_expression "*(int *)(param_1 + 0x6c)" * (cast_expression "(int *)(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" if (parenthesized_expression "(iVar14 == 0x20)" ( (binary_expression "iVar14 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }" { (if_statement "if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" if (parenthesized_expression "((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01'))" ( (binary_expression "(*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')" (parenthesized_expression "(*(int *)(param_1 + 0x70) == 1)" ( (binary_expression "*(int *)(param_1 + 0x70) == 1" (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(**(char **)(param_1 + 0x78) == '\x01')" ( (binary_expression "**(char **)(param_1 + 0x78) == '\x01'" (pointer_expression "**(char **)(param_1 + 0x78)" * (pointer_expression "*(char **)(param_1 + 0x78)" * (cast_expression "(char **)(param_1 + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }" { (expression_statement "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);" (assignment_expression "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" identifier = (cast_expression "(char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x31)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" do (compound_statement "{\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" identifier = (cast_expression "(undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001222ee(~uVar9 + 0x13,1)" identifier (argument_list "(~uVar9 + 0x13,1)" ( (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" ~ identifier) + number_literal) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x20;" (assignment_expression "puVar7[2] = 0x20" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "strcpy(puVar7 + 4,pcVar6);" (call_expression "strcpy(puVar7 + 4,pcVar6)" identifier (argument_list "(puVar7 + 4,pcVar6)" ( (binary_expression "puVar7 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" do (compound_statement "{\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar11 = (long)(int)(~(uint)lVar10 + 3);" (assignment_expression "lVar11 = (long)(int)(~(uint)lVar10 + 3)" identifier = (cast_expression "(long)(int)(~(uint)lVar10 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(~(uint)lVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(~(uint)lVar10 + 3)" ( (binary_expression "~(uint)lVar10 + 3" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar7[lVar11] = 0xff;" (assignment_expression "puVar7[lVar11] = 0xff" (subscript_expression "puVar7[lVar11]" identifier [ identifier ]) = number_literal) ;) (expression_statement "puVar7[lVar11 + 1] = 0xf0;" (assignment_expression "puVar7[lVar11 + 1] = 0xf0" (subscript_expression "puVar7[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" identifier = (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" ( (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , (binary_expression "~(uint)lVar10 + 5" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) + number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TSPEED SEND"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6)" identifier = (call_expression "FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6)" identifier (argument_list "("client:\tSB TSPEED IS %s",pcVar6)" ( (string_literal ""client:\tSB TSPEED IS %s"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) }) (else_clause "else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" else (compound_statement "{\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" { (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TSPEED <something weird>"" " string_content escape_sequence string_content ") ))) ;) }))) }) (else_clause "else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" else (if_statement "if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" if (parenthesized_expression "(iVar14 < 0x21)" ( (binary_expression "iVar14 < 0x21" identifier < number_literal) )) (compound_statement "{\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }" { (if_statement "if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" if (parenthesized_expression "(iVar14 == 0x18)" ( (binary_expression "iVar14 == 0x18" identifier == number_literal) )) (compound_statement "{\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" { (if_statement "if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" if (parenthesized_expression "((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01'))" ( (binary_expression "(*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')" (parenthesized_expression "(*(int *)(param_1 + 0x70) == 1)" ( (binary_expression "*(int *)(param_1 + 0x70) == 1" (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(**(char **)(param_1 + 0x78) == '\x01')" ( (binary_expression "**(char **)(param_1 + 0x78) == '\x01'" (pointer_expression "**(char **)(param_1 + 0x78)" * (pointer_expression "*(char **)(param_1 + 0x78)" * (cast_expression "(char **)(param_1 + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }" { (expression_statement "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);" (assignment_expression "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" identifier = (cast_expression "(char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x30)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" do (compound_statement "{\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" identifier = (cast_expression "(undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001222ee(~uVar9 + 0x13,1)" identifier (argument_list "(~uVar9 + 0x13,1)" ( (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" ~ identifier) + number_literal) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x18;" (assignment_expression "puVar7[2] = 0x18" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar14 = 0;\n              lVar10 = 0;\n            }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" else (compound_statement "{\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" { (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;) (do_statement "do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              }" { (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (if_statement "if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }" if (parenthesized_expression "((byte)(cVar2 + 0x9fU) < 0x1a)" ( (binary_expression "(byte)(cVar2 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar2 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x9fU)" ( (binary_expression "cVar2 + 0x9fU" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n                  cVar2 = cVar2 + -0x20;\n                }" { (expression_statement "cVar2 = cVar2 + -0x20;" (assignment_expression "cVar2 = cVar2 + -0x20" identifier = (binary_expression "cVar2 + -0x20" identifier + number_literal)) ;) })) (expression_statement "puVar7[lVar10 + 3] = cVar2;" (assignment_expression "puVar7[lVar10 + 3] = cVar2" (subscript_expression "puVar7[lVar10 + 3]" identifier [ (binary_expression "lVar10 + 3" identifier + number_literal) ]) = identifier) ;) (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar2 = pcVar6[lVar10];" (assignment_expression "cVar2 = pcVar6[lVar10]" identifier = (subscript_expression "pcVar6[lVar10]" identifier [ identifier ])) ;) (expression_statement "lVar11 = lVar10 + 1;" (assignment_expression "lVar11 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "puVar7[lVar10 + 4] = 0xff;" (assignment_expression "puVar7[lVar10 + 4] = 0xff" (subscript_expression "puVar7[lVar10 + 4]" identifier [ (binary_expression "lVar10 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[lVar10 + 5] = 0xf0;" (assignment_expression "puVar7[lVar10 + 5] = 0xf0" (subscript_expression "puVar7[lVar10 + 5]" identifier [ (binary_expression "lVar10 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6)" identifier = (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" ( (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),puVar7,iVar14 + 6)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , (binary_expression "iVar14 + 6" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[lVar10 + 4] = 0;" (assignment_expression "puVar7[lVar10 + 4] = 0" (subscript_expression "puVar7[lVar10 + 4]" identifier [ (binary_expression "lVar10 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TTYPE SEND"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4)" identifier = (call_expression "FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4)" identifier (argument_list "("client:\tSB TTYPE IS %s",puVar7 + 4)" ( (string_literal ""client:\tSB TTYPE IS %s"" " string_content escape_sequence string_content ") , (binary_expression "puVar7 + 4" identifier + number_literal) )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) }) (else_clause "else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" else (compound_statement "{\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" { (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n")" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n")" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (string_literal ""server:\tSB TTYPE <something weird>\r\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) }))) })) }) (else_clause "else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" else (if_statement "if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" if (parenthesized_expression "((iVar14 == 0x24) || (iVar14 == 0x27))" ( (binary_expression "(iVar14 == 0x24) || (iVar14 == 0x27)" (parenthesized_expression "(iVar14 == 0x24)" ( (binary_expression "iVar14 == 0x24" identifier == number_literal) )) || (parenthesized_expression "(iVar14 == 0x27)" ( (binary_expression "iVar14 == 0x27" identifier == number_literal) ))) )) (compound_statement "{\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" { (expression_statement "pcVar6 = *(char **)(param_1 + 0x78);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0x78)" identifier = (pointer_expression "*(char **)(param_1 + 0x78)" * (cast_expression "(char **)(param_1 + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);" (assignment_expression "pcVar8 = pcVar6 + *(int *)(param_1 + 0x70)" identifier = (binary_expression "pcVar6 + *(int *)(param_1 + 0x70)" identifier + (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))))) ;) (if_statement "if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }" if (parenthesized_expression "((pcVar6 < pcVar8) && (*pcVar6 == '\x01'))" ( (binary_expression "(pcVar6 < pcVar8) && (*pcVar6 == '\x01')" (parenthesized_expression "(pcVar6 < pcVar8)" ( (binary_expression "pcVar6 < pcVar8" identifier < identifier) )) && (parenthesized_expression "(*pcVar6 == '\x01')" ( (binary_expression "*pcVar6 == '\x01'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }" { (expression_statement "uVar5 = FUN_0012b347();" (assignment_expression "uVar5 = FUN_0012b347()" identifier = (call_expression "FUN_0012b347()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5)" identifier = (call_expression "FUN_0012292d("server:\tSB %s SEND",uVar5)" identifier (argument_list "("server:\tSB %s SEND",uVar5)" ( (string_literal ""server:\tSB %s SEND"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" identifier = true) ;) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" identifier = false) ;) (if_statement "if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }" if (parenthesized_expression "(*(int *)(param_1 + 0x6c) == 0x24)" ( (binary_expression "*(int *)(param_1 + 0x6c) == 0x24" (pointer_expression "*(int *)(param_1 + 0x6c)" * (cast_expression "(int *)(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }" { (expression_statement "iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);" (assignment_expression "iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x37)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "local_58 = iVar14 != 0;" (assignment_expression "local_58 = iVar14 != 0" identifier = (binary_expression "iVar14 != 0" identifier != number_literal)) ;) (expression_statement "local_60 = !local_58;" (assignment_expression "local_60 = !local_58" identifier = (unary_expression "!local_58" ! identifier)) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }" if (parenthesized_expression "(pcVar6 < pcVar8)" ( (binary_expression "pcVar6 < pcVar8" identifier < identifier) )) (compound_statement "{\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }" { (do_statement "do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);" do (compound_statement "{\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_58 = true;\n                  local_60 = false;\n                }" { (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" identifier = true) ;) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" identifier = false) ;) }) (else_clause "else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" else (compound_statement "{\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" { (if_statement "if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    local_58 = false;\n                  }" { (expression_statement "local_58 = false;" (assignment_expression "local_58 = false" identifier = false) ;) })) (if_statement "if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    local_60 = true;\n                  }" { (expression_statement "local_60 = true;" (assignment_expression "local_60 = true" identifier = true) ;) })) }))) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar8 != pcVar6)" ( (binary_expression "pcVar8 != pcVar6" identifier != identifier) )) ;) })) })) (expression_statement "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_48" & identifier) ))))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar14 = 0x14;\n          }" { (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" else (compound_statement "{\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" { (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" identifier = number_literal) ;) (do_statement "do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);" do (compound_statement "{\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar6 = local_48;" (assignment_expression "pcVar6 = local_48" identifier = identifier) ;) (do_statement "do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" identifier = number_literal) ;) (do_statement "do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" do (compound_statement "{\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;" (assignment_expression "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" identifier = (binary_expression "(iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" (binary_expression "(iVar14 - (int)lVar10) + -1" (parenthesized_expression "(iVar14 - (int)lVar10)" ( (binary_expression "iVar14 - (int)lVar10" identifier - (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (unary_expression "~(uint)lVar11" ~ (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (expression_statement "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;" (assignment_expression "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , identifier , (pointer_expression "&local_48" & identifier) ))))) ;) }) while (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));" (assignment_expression "pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" identifier = (cast_expression "(char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) ))))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar8;" (assignment_expression "pcVar6 = pcVar8" identifier = identifier) ;) (do_statement "do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" do (compound_statement "{\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar14 = iVar14 + 5 + ~(uint)lVar10;" (assignment_expression "iVar14 = iVar14 + 5 + ~(uint)lVar10" identifier = (binary_expression "iVar14 + 5 + ~(uint)lVar10" (binary_expression "iVar14 + 5" identifier + number_literal) + (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) })) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1)" identifier = (cast_expression "(undefined1 *)FUN_001222ee((long)iVar14,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001222ee((long)iVar14,1)" identifier (argument_list "((long)iVar14,1)" ( (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);" (assignment_expression "puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "char" primitive_type) ) (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) )))))) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_48" & identifier) ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar14 = 4;\n          }" { (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) }) (else_clause "else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" else (compound_statement "{\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" { (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) (do_statement "do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);" do (compound_statement "{\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            }" { (expression_statement "iVar12 = iVar14 + 1;" (assignment_expression "iVar12 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar2 = *local_48;" (assignment_expression "cVar2 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" { (expression_statement "lVar10 = (long)(iVar14 + 2);" (assignment_expression "lVar10 = (long)(iVar14 + 2)" identifier = (cast_expression "(long)(iVar14 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar14 + 2)" ( (binary_expression "iVar14 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                }" { (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];" (assignment_expression "cVar2 = local_48[lVar10 + (-2 - (long)iVar14)]" identifier = (subscript_expression "local_48[lVar10 + (-2 - (long)iVar14)]" identifier [ (binary_expression "lVar10 + (-2 - (long)iVar14)" identifier + (parenthesized_expression "(-2 - (long)iVar14)" ( (binary_expression "-2 - (long)iVar14" number_literal - (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "iVar14 = iVar12 + 1;" (assignment_expression "iVar14 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[iVar12] = local_58;" (assignment_expression "puVar7[iVar12] = local_58" (subscript_expression "puVar7[iVar12]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" { (expression_statement "lVar10 = (long)(iVar12 + 2);" (assignment_expression "lVar10 = (long)(iVar12 + 2)" identifier = (cast_expression "(long)(iVar12 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar12 + 2)" ( (binary_expression "iVar12 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                }" { (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];" (assignment_expression "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)]" identifier = (subscript_expression "pcVar6[lVar10 + (-2 - (long)iVar12)]" identifier [ (binary_expression "lVar10 + (-2 - (long)iVar12)" identifier + (parenthesized_expression "(-2 - (long)iVar12)" ( (binary_expression "-2 - (long)iVar12" number_literal - (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;" (assignment_expression "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier = (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , identifier , (pointer_expression "&local_48" & identifier) ))))) ;) }) while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "iVar12 = iVar14;" (assignment_expression "iVar12 = iVar14" identifier = identifier) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" { (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "puVar7[iVar14 + 1] = 0x55;" (assignment_expression "puVar7[iVar14 + 1] = 0x55" (subscript_expression "puVar7[iVar14 + 1]" identifier [ (binary_expression "iVar14 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 2] = 0x53;" (assignment_expression "puVar7[iVar14 + 2] = 0x53" (subscript_expression "puVar7[iVar14 + 2]" identifier [ (binary_expression "iVar14 + 2" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 3] = 0x45;" (assignment_expression "puVar7[iVar14 + 3] = 0x45" (subscript_expression "puVar7[iVar14 + 3]" identifier [ (binary_expression "iVar14 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar7[iVar14 + 4] = 0x52;" (assignment_expression "puVar7[iVar14 + 4] = 0x52" (subscript_expression "puVar7[iVar14 + 4]" identifier [ (binary_expression "iVar14 + 4" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar12 = iVar14 + 6;" (assignment_expression "iVar12 = iVar14 + 6" identifier = (binary_expression "iVar14 + 6" identifier + number_literal)) ;) (expression_statement "puVar7[iVar14 + 5] = local_58;" (assignment_expression "puVar7[iVar14 + 5] = local_58" (subscript_expression "puVar7[iVar14 + 5]" identifier [ (binary_expression "iVar14 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" { (expression_statement "lVar10 = (long)(iVar14 + 7);" (assignment_expression "lVar10 = (long)(iVar14 + 7)" identifier = (cast_expression "(long)(iVar14 + 7)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar14 + 7)" ( (binary_expression "iVar14 + 7" identifier + number_literal) )))) ;) (do_statement "do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');" do (compound_statement "{\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              }" { (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" identifier = (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" identifier [ (binary_expression "lVar10 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];" (assignment_expression "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)]" identifier = (subscript_expression "pcVar8[lVar10 + (-7 - (long)iVar14)]" identifier [ (binary_expression "lVar10 + (-7 - (long)iVar14)" identifier + (parenthesized_expression "(-7 - (long)iVar14)" ( (binary_expression "-7 - (long)iVar14" number_literal - (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ])) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "puVar7[iVar12] = 0xff;" (assignment_expression "puVar7[iVar12] = 0xff" (subscript_expression "puVar7[iVar12]" identifier [ identifier ]) = number_literal) ;) (expression_statement "puVar7[iVar12 + 1] = 0xf0;" (assignment_expression "puVar7[iVar12 + 1] = 0xf0" (subscript_expression "puVar7[iVar12 + 1]" identifier [ (binary_expression "iVar12 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2)" identifier = (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" ( (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" * (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" * (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" ( (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(long **)(param_1 + 8),puVar7,iVar12 + 2)" ( (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , (binary_expression "iVar12 + 2" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" if (parenthesized_expression "(iVar12 + 2 == 6)" ( (binary_expression "iVar12 + 2 == 6" (binary_expression "iVar12 + 2" identifier + number_literal) == number_literal) )) (compound_statement "{\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }" { (expression_statement "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));" (assignment_expression "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier = (call_expression "FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x6c))" ( (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) )))) )))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5)" identifier = (call_expression "FUN_0012292d("client:\tSB %s IS <nothing>",uVar5)" identifier (argument_list "("client:\tSB %s IS <nothing>",uVar5)" ( (string_literal ""client:\tSB %s IS <nothing>"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) }) (else_clause "else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" else (compound_statement "{\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" { (expression_statement "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));" (assignment_expression "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier = (call_expression "FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x6c))" ( (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) )))) )))) ;) (expression_statement "uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5)" identifier = (call_expression "FUN_0012292d("client:\tSB %s IS:",uVar5)" identifier (argument_list "("client:\tSB %s IS:",uVar5)" ( (string_literal ""client:\tSB %s IS:"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier = (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_48" & identifier) )))) ;) (while_statement "while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }" while (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }" { (expression_statement "uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);" (assignment_expression "uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10)" identifier = (call_expression "FUN_0012292d("\t%s=%s",local_48,lVar10)" identifier (argument_list "("\t%s=%s",local_48,lVar10)" ( (string_literal ""\t%s=%s"" " escape_sequence string_content ") , identifier , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);" (assignment_expression "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier = (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x90)" * (cast_expression "(undefined8 *)(param_1 + 0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) , number_literal , identifier , (pointer_expression "&local_48" & identifier) )))) ;) })) (if_statement "if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }" { (expression_statement "uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);" (assignment_expression "uVar5 = FUN_0012292d("\tUSER=%s",pcVar8)" identifier = (call_expression "FUN_0012292d("\tUSER=%s",pcVar8)" identifier (argument_list "("\tUSER=%s",pcVar8)" ( (string_literal ""\tUSER=%s"" " escape_sequence string_content ") , identifier )))) ;) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x18)" * (cast_expression "(undefined8 *)(param_1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) })) }))) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "FUN_00122b5a(pcVar8);" (call_expression "FUN_00122b5a(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) })))))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    goto switchD_0012c4c9_caseD_a;" default : (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70))" ( (binary_expression "*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) <= (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }" { (expression_statement "iVar14 = *(int *)(param_1 + 0x80) + 0x400;" (assignment_expression "iVar14 = *(int *)(param_1 + 0x80) + 0x400" identifier = (binary_expression "*(int *)(param_1 + 0x80) + 0x400" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x80) = iVar14;" (assignment_expression "*(int *)(param_1 + 0x80) = iVar14" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);" (assignment_expression "uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" identifier = (call_expression "FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x78)" * (cast_expression "(undefined8 *)(param_1 + 0x78)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) , (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x78) = uVar5;" (assignment_expression "*(undefined8 *)(param_1 + 0x78) = uVar5" (pointer_expression "*(undefined8 *)(param_1 + 0x78)" * (cast_expression "(undefined8 *)(param_1 + 0x78)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar14 = *(int *)(param_1 + 0x70);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x70)" identifier = (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x70) = iVar14 + 1;" (assignment_expression "*(int *)(param_1 + 0x70) = iVar14 + 1" (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;" (assignment_expression "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14)" * (cast_expression "(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x78) + (long)iVar14)" ( (binary_expression "*(long *)(param_1 + 0x78) + (long)iVar14" (pointer_expression "*(long *)(param_1 + 0x78)" * (cast_expression "(long *)(param_1 + 0x78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) + (cast_expression "(long)iVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 7;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 7" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto switchD_0012c4c9_caseD_a;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , 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 * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression LIT < IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))))))))))))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (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) ))))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (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) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (unary_expression ~ IDENT) + LIT) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content escape_sequence string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content escape_sequence string_content ") ))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (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) ))))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (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) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (unary_expression ~ IDENT) + LIT) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content escape_sequence string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (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 = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression ! IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (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) )))) , LIT , LIT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (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) )))) , LIT , IDENT , (pointer_expression & IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) )))) , LIT , LIT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) (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) )))) , LIT , IDENT , (pointer_expression & IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , (pointer_expression & IDENT) )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , (pointer_expression & IDENT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( 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) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (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) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" (primitive_type "void") (function_declarator "FUN_0012c1ae(long param_1,int param_2,byte *param_3,uint param_4)" (identifier "FUN_0012c1ae") (parameter_list "(long param_1,int param_2,byte *param_3,uint param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined1 *puVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  long local_88;\n  int local_74;\n  bool local_60;\n  bool local_58;\n  char *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }\n  *(undefined4 *)(param_1 + 0x84) = 1;\n  local_74 = 0;\n  iVar4 = 0;\n  local_88 = 0;\n  pbVar15 = param_3;\nswitchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }\n  pbVar16 = pbVar15 + 1;\n  bVar1 = *pbVar15;\n  uVar13 = (uint)bVar1;\n  pbVar15 = pbVar16;\n  switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }\n  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }\n  iVar14 = *(int *)(param_1 + 0x70);\n  *(int *)(param_1 + 0x70) = iVar14 + 1;\n  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;\n  *(undefined4 *)(param_1 + 0x88) = 7;\n  goto switchD_0012c4c9_caseD_a;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "bool local_60;" (primitive_type "bool") (identifier "local_60") (; ";")) (declaration "bool local_58;" (primitive_type "bool") (identifier "local_58") (; ";")) (declaration "char *local_48;" (primitive_type "char") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_2 != 0) {\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(param_1 + 0x68) = 1;\n  }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x68) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar15 = param_3;" (assignment_expression "pbVar15 = param_3" (identifier "pbVar15") (= "=") (identifier "param_3")) (; ";")) (labeled_statement "switchD_0012c4c9_caseD_a:\n  if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "switchD_0012c4c9_caseD_a") (: ":") (if_statement "if (pbVar15 == param_3 + param_4) {\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(pbVar15 == param_3 + param_4)" (( "(") (binary_expression "pbVar15 == param_3 + param_4" (identifier "pbVar15") (== "==") (binary_expression "param_3 + param_4" (identifier "param_3") (+ "+") (identifier "param_4"))) () ")")) (compound_statement "{\n    if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }\n    FUN_00122b5a(local_88);\n    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }\n                    \n    __stack_chk_fail();\n  }" ({ "{") (if_statement "if (iVar4 != 0) {\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);\n      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);\n    }" ({ "{") (expression_statement "iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);" (assignment_expression "iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" (identifier "iVar4") (= "=") (call_expression "FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" (identifier "FUN_0014a603") (argument_list "(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "local_88") (, ",") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "(**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);" (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x30))" (( "(") (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x30)" (* "*") (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x30)" (* "*") (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(param_1 + 8) + 0x30)" (( "(") (binary_expression "**(long **)(param_1 + 8) + 0x30" (pointer_expression "**(long **)(param_1 + 8)" (* "*") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(*(long **)(param_1 + 8),0x1000 < iVar4)" (( "(") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "0x1000 < iVar4" (number_literal "0x1000") (< "<") (identifier "iVar4")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00122b5a(local_88);" (call_expression "FUN_00122b5a(local_88)" (identifier "FUN_00122b5a") (argument_list "(local_88)" (( "(") (identifier "local_88") () ")"))) (; ";")) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n      return;\n    }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "pbVar16 = pbVar15 + 1;" (assignment_expression "pbVar16 = pbVar15 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" (identifier "bVar1") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (; ";")) (expression_statement "uVar13 = (uint)bVar1;" (assignment_expression "uVar13 = (uint)bVar1" (identifier "uVar13") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" (identifier "pbVar15") (= "=") (identifier "pbVar16")) (; ";")) (switch_statement "switch(*(int *)(param_1 + 0x88)) {\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" (switch "switch") (parenthesized_expression "(*(int *)(param_1 + 0x88))" (( "(") (pointer_expression "*(int *)(param_1 + 0x88)" (* "*") (cast_expression "(int *)(param_1 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) () ")")) (compound_statement "{\n  case 0:\n  case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;\n  case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;\n  case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;\n  case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;\n  default:\n    goto switchD_0012c4c9_caseD_a;\n  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 9:\n    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "9") (: ":") (if_statement "if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" (if "if") (parenthesized_expression "((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9))" (( "(") (binary_expression "(uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)" (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x88) == 9)" (( "(") (binary_expression "*(int *)(param_1 + 0x88) == 9" (pointer_expression "*(int *)(param_1 + 0x88)" (* "*") (cast_expression "(int *)(param_1 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (== "==") (number_literal "9")) () ")"))) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" (else "else") (compound_statement "{\n      if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 1;\n    }" ({ "{") (if_statement "if (uVar13 != 0xff) {\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" (if "if") (parenthesized_expression "(uVar13 != 0xff)" (( "(") (binary_expression "uVar13 != 0xff" (identifier "uVar13") (!= "!=") (number_literal "0xff")) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }\n        *(undefined4 *)(param_1 + 0x88) = 0;\n        goto switchD_0012c4c9_caseD_a;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x68) == 0) {\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }\n        else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x68) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x68) == 0" (pointer_expression "*(int *)(param_1 + 0x68)" (* "*") (cast_expression "(int *)(param_1 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }\n          *(byte *)(local_88 + iVar4) = bVar1;\n          iVar4 = iVar4 + 1;\nLAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }\n        }" ({ "{") (if_statement "if (local_74 <= iVar4) {\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }" (if "if") (parenthesized_expression "(local_74 <= iVar4)" (( "(") (binary_expression "local_74 <= iVar4" (identifier "local_74") (<= "<=") (identifier "iVar4")) () ")")) (compound_statement "{\n            local_74 = iVar4 + 0x100;\n            local_88 = FUN_001226ba(local_88,(long)local_74,1);\n          }" ({ "{") (expression_statement "local_74 = iVar4 + 0x100;" (assignment_expression "local_74 = iVar4 + 0x100" (identifier "local_74") (= "=") (binary_expression "iVar4 + 0x100" (identifier "iVar4") (+ "+") (number_literal "0x100"))) (; ";")) (expression_statement "local_88 = FUN_001226ba(local_88,(long)local_74,1);" (assignment_expression "local_88 = FUN_001226ba(local_88,(long)local_74,1)" (identifier "local_88") (= "=") (call_expression "FUN_001226ba(local_88,(long)local_74,1)" (identifier "FUN_001226ba") (argument_list "(local_88,(long)local_74,1)" (( "(") (identifier "local_88") (, ",") (cast_expression "(long)local_74" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_74")) (, ",") (number_literal "1") () ")")))) (; ";")) (} "}"))) (expression_statement "*(byte *)(local_88 + iVar4) = bVar1;" (assignment_expression "*(byte *)(local_88 + iVar4) = bVar1" (pointer_expression "*(byte *)(local_88 + iVar4)" (* "*") (cast_expression "(byte *)(local_88 + iVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + iVar4)" (( "(") (binary_expression "local_88 + iVar4" (identifier "local_88") (+ "+") (identifier "iVar4")) () ")")))) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_0012c24b:\n          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" (statement_identifier "LAB_0012c24b") (: ":") (if_statement "if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" (if "if") (parenthesized_expression "((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1))" (( "(") (binary_expression "(uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)" (parenthesized_expression "(uVar13 == 0xd)" (( "(") (binary_expression "uVar13 == 0xd" (identifier "uVar13") (== "==") (number_literal "0xd")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x54) != 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x54) != 1" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x88) = 9;\n            goto switchD_0012c4c9_caseD_a;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 9;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 9" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "9")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" (else "else") (compound_statement "{\n          if (uVar13 != 0xf2) goto LAB_0012c24b;\n          *(undefined4 *)(param_1 + 0x68) = 0;\n        }" ({ "{") (if_statement "if (uVar13 != 0xf2) goto LAB_0012c24b;" (if "if") (parenthesized_expression "(uVar13 != 0xf2)" (( "(") (binary_expression "uVar13 != 0xf2" (identifier "uVar13") (!= "!=") (number_literal "0xf2")) () ")")) (goto_statement "goto LAB_0012c24b;" (goto "goto") (statement_identifier "LAB_0012c24b") (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 1:\n    if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "1") (: ":") (if_statement "if (uVar13 == 0xfd) {\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }\n    else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xfd)" (( "(") (binary_expression "uVar13 == 0xfd" (identifier "uVar13") (== "==") (number_literal "0xfd")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 4;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 4" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (else "else") (if_statement "if (uVar13 == 0xfe) {\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }\n    else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xfe)" (( "(") (binary_expression "uVar13 == 0xfe" (identifier "uVar13") (== "==") (number_literal "0xfe")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 5;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 5;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 5" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "5")) (; ";")) (} "}")) (else_clause "else if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (else "else") (if_statement "if (uVar13 == 0xfb) {\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }\n    else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xfb)" (( "(") (binary_expression "uVar13 == 0xfb" (identifier "uVar13") (== "==") (number_literal "0xfb")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 2;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (else "else") (if_statement "if (uVar13 == 0xfc) {\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }\n    else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xfc)" (( "(") (binary_expression "uVar13 == 0xfc" (identifier "uVar13") (== "==") (number_literal "0xfc")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 3;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (else "else") (if_statement "if (uVar13 == 0xfa) {\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }\n    else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xfa)" (( "(") (binary_expression "uVar13 == 0xfa" (identifier "uVar13") (== "==") (number_literal "0xfa")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 6;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 6;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 6" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (else "else") (if_statement "if (uVar13 == 0xf2) {\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }\n    else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xf2)" (( "(") (binary_expression "uVar13 == 0xf2" (identifier "uVar13") (== "==") (number_literal "0xf2")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x68) = 0;\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" (else "else") (compound_statement "{\n      if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n    }" ({ "{") (if_statement "if (uVar13 == 0xff) {\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }" (if "if") (parenthesized_expression "(uVar13 == 0xff)" (( "(") (binary_expression "uVar13 == 0xff" (identifier "uVar13") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }\n        *(byte *)(local_88 + iVar4) = bVar1;\n        iVar4 = iVar4 + 1;\n      }" ({ "{") (if_statement "if (local_74 <= iVar4) {\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }" (if "if") (parenthesized_expression "(local_74 <= iVar4)" (( "(") (binary_expression "local_74 <= iVar4" (identifier "local_74") (<= "<=") (identifier "iVar4")) () ")")) (compound_statement "{\n          local_74 = iVar4 + 0x100;\n          local_88 = FUN_001226ba(local_88,(long)local_74,1);\n        }" ({ "{") (expression_statement "local_74 = iVar4 + 0x100;" (assignment_expression "local_74 = iVar4 + 0x100" (identifier "local_74") (= "=") (binary_expression "iVar4 + 0x100" (identifier "iVar4") (+ "+") (number_literal "0x100"))) (; ";")) (expression_statement "local_88 = FUN_001226ba(local_88,(long)local_74,1);" (assignment_expression "local_88 = FUN_001226ba(local_88,(long)local_74,1)" (identifier "local_88") (= "=") (call_expression "FUN_001226ba(local_88,(long)local_74,1)" (identifier "FUN_001226ba") (argument_list "(local_88,(long)local_74,1)" (( "(") (identifier "local_88") (, ",") (cast_expression "(long)local_74" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_74")) (, ",") (number_literal "1") () ")")))) (; ";")) (} "}"))) (expression_statement "*(byte *)(local_88 + iVar4) = bVar1;" (assignment_expression "*(byte *)(local_88 + iVar4) = bVar1" (pointer_expression "*(byte *)(local_88 + iVar4)" (* "*") (cast_expression "(byte *)(local_88 + iVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + iVar4)" (( "(") (binary_expression "local_88 + iVar4" (identifier "local_88") (+ "+") (identifier "iVar4")) () ")")))) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))))))))))))) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 2:\n    FUN_0012c01f(param_1,0xfb,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "2") (: ":") (expression_statement "FUN_0012c01f(param_1,0xfb,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfb,uVar13)" (identifier "FUN_0012c01f") (argument_list "(param_1,0xfb,uVar13)" (( "(") (identifier "param_1") (, ",") (number_literal "0xfb") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 3:\n    FUN_0012c01f(param_1,0xfc,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "3") (: ":") (expression_statement "FUN_0012c01f(param_1,0xfc,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfc,uVar13)" (identifier "FUN_0012c01f") (argument_list "(param_1,0xfc,uVar13)" (( "(") (identifier "param_1") (, ",") (number_literal "0xfc") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 4:\n    FUN_0012c01f(param_1,0xfd,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "4") (: ":") (expression_statement "FUN_0012c01f(param_1,0xfd,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfd,uVar13)" (identifier "FUN_0012c01f") (argument_list "(param_1,0xfd,uVar13)" (( "(") (identifier "param_1") (, ",") (number_literal "0xfd") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 5:\n    FUN_0012c01f(param_1,0xfe,uVar13);\n    *(undefined4 *)(param_1 + 0x88) = 0;\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "5") (: ":") (expression_statement "FUN_0012c01f(param_1,0xfe,uVar13);" (call_expression "FUN_0012c01f(param_1,0xfe,uVar13)" (identifier "FUN_0012c01f") (argument_list "(param_1,0xfe,uVar13)" (( "(") (identifier "param_1") (, ",") (number_literal "0xfe") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 6:\n    *(uint *)(param_1 + 0x6c) = uVar13;\n    *(undefined4 *)(param_1 + 0x70) = 0;\n    *(undefined4 *)(param_1 + 0x88) = 7;\n    goto switchD_0012c4c9_caseD_a;" (case "case") (number_literal "6") (: ":") (expression_statement "*(uint *)(param_1 + 0x6c) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x6c) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x6c)" (* "*") (cast_expression "(uint *)(param_1 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x70) = 0" (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")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 7;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 7" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "7")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (case_statement "case 7:\n    if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" (case "case") (number_literal "7") (: ":") (if_statement "if (uVar13 == 0xff) {\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xff)" (( "(") (binary_expression "uVar13 == 0xff" (identifier "uVar13") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x88) = 8;\n      goto switchD_0012c4c9_caseD_a;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x88) = 8;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 8" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "8")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }\n    break;" (case "case") (number_literal "8") (: ":") (if_statement "if (uVar13 == 0xf0) {\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0xf0)" (( "(") (binary_expression "uVar13 == 0xf0" (identifier "uVar13") (== "==") (number_literal "0xf0")) () ")")) (compound_statement "{\n      iVar14 = *(int *)(param_1 + 0x6c);\n      if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }\n      *(undefined4 *)(param_1 + 0x88) = 0;\n      goto switchD_0012c4c9_caseD_a;\n    }" ({ "{") (expression_statement "iVar14 = *(int *)(param_1 + 0x6c);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x6c)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_1 + 0x6c)" (* "*") (cast_expression "(int *)(param_1 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (if_statement "if (iVar14 == 0x20) {\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }\n      else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" (if "if") (parenthesized_expression "(iVar14 == 0x20)" (( "(") (binary_expression "iVar14 == 0x20" (identifier "iVar14") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }\n      }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }\n        else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01'))" (( "(") (binary_expression "(*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')" (parenthesized_expression "(*(int *)(param_1 + 0x70) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x70) == 1" (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(**(char **)(param_1 + 0x78) == '\x01')" (( "(") (binary_expression "**(char **)(param_1 + 0x78) == '\x01'" (pointer_expression "**(char **)(param_1 + 0x78)" (* "*") (pointer_expression "*(char **)(param_1 + 0x78)" (* "*") (cast_expression "(char **)(param_1 + 0x78)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);\n          uVar9 = 0xffffffffffffffff;\n          pcVar8 = pcVar6;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = 0x20;\n          puVar7[3] = 0;\n          strcpy(puVar7 + 4,pcVar6);\n          lVar10 = -1;\n          pcVar8 = pcVar6;\n          do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');\n          lVar11 = (long)(int)(~(uint)lVar10 + 3);\n          puVar7[lVar11] = 0xff;\n          puVar7[lVar11 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");\n          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          FUN_00122b5a(puVar7);\n        }" ({ "{") (expression_statement "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);" (assignment_expression "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31)" (identifier "FUN_0011571e") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x31)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x31") () ")"))))) (; ";")) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (do_statement "do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" (do "do") (compound_statement "{\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" ({ "{") (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001222ee(~uVar9 + 0x13,1)" (identifier "FUN_001222ee") (argument_list "(~uVar9 + 0x13,1)" (( "(") (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" (~ "~") (identifier "uVar9")) (+ "+") (number_literal "0x13")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xfa")) (; ";")) (expression_statement "puVar7[2] = 0x20;" (assignment_expression "puVar7[2] = 0x20" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "strcpy(puVar7 + 4,pcVar6);" (call_expression "strcpy(puVar7 + 4,pcVar6)" (identifier "strcpy") (argument_list "(puVar7 + 4,pcVar6)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" (identifier "lVar10") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (do_statement "do {\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          } while (cVar2 != '\0');" (do "do") (compound_statement "{\n            if (lVar10 == 0) break;\n            lVar10 = lVar10 + -1;\n            cVar2 = *pcVar8;\n            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "lVar11 = (long)(int)(~(uint)lVar10 + 3);" (assignment_expression "lVar11 = (long)(int)(~(uint)lVar10 + 3)" (identifier "lVar11") (= "=") (cast_expression "(long)(int)(~(uint)lVar10 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(~(uint)lVar10 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(~(uint)lVar10 + 3)" (( "(") (binary_expression "~(uint)lVar10 + 3" (unary_expression "~(uint)lVar10" (~ "~") (cast_expression "(uint)lVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar10"))) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "puVar7[lVar11] = 0xff;" (assignment_expression "puVar7[lVar11] = 0xff" (subscript_expression "puVar7[lVar11]" (identifier "puVar7") ([ "[") (identifier "lVar11") (] "]")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "puVar7[lVar11 + 1] = 0xf0;" (assignment_expression "puVar7[lVar11 + 1] = 0xf0" (subscript_expression "puVar7[lVar11 + 1]" (identifier "puVar7") ([ "[") (binary_expression "lVar11 + 1" (identifier "lVar11") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0xf0")) (; ";")) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" (( "(") (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" (* "*") (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" (* "*") (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" (( "(") (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" (* "*") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5)" (( "(") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar7") (, ",") (binary_expression "~(uint)lVar10 + 5" (unary_expression "~(uint)lVar10" (~ "~") (cast_expression "(uint)lVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar10"))) (+ "+") (number_literal "5")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND")" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND")" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (string_literal ""server:\tSB TSPEED SEND"" (" """) (string_content "server:") (escape_sequence "\t") (string_content "SB TSPEED SEND") (" """)) () ")"))) (; ";")) (expression_statement "uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6)" (identifier "FUN_0012292d") (argument_list "("client:\tSB TSPEED IS %s",pcVar6)" (( "(") (string_literal ""client:\tSB TSPEED IS %s"" (" """) (string_content "client:") (escape_sequence "\t") (string_content "SB TSPEED IS %s") (" """)) (, ",") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" (identifier "FUN_00122b5a") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" (else "else") (compound_statement "{\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");\n        }" ({ "{") (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>")" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>")" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (string_literal ""server:\tSB TSPEED <something weird>"" (" """) (string_content "server:") (escape_sequence "\t") (string_content "SB TSPEED <something weird>") (" """)) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" (else "else") (if_statement "if (iVar14 < 0x21) {\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }\n      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" (if "if") (parenthesized_expression "(iVar14 < 0x21)" (( "(") (binary_expression "iVar14 < 0x21" (identifier "iVar14") (< "<") (number_literal "0x21")) () ")")) (compound_statement "{\n        if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }\n      }" ({ "{") (if_statement "if (iVar14 == 0x18) {\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" (if "if") (parenthesized_expression "(iVar14 == 0x18)" (( "(") (binary_expression "iVar14 == 0x18" (identifier "iVar14") (== "==") (number_literal "0x18")) () ")")) (compound_statement "{\n          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }\n        }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }\n          else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01'))" (( "(") (binary_expression "(*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')" (parenthesized_expression "(*(int *)(param_1 + 0x70) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x70) == 1" (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(**(char **)(param_1 + 0x78) == '\x01')" (( "(") (binary_expression "**(char **)(param_1 + 0x78) == '\x01'" (pointer_expression "**(char **)(param_1 + 0x78)" (* "*") (pointer_expression "*(char **)(param_1 + 0x78)" (* "*") (cast_expression "(char **)(param_1 + 0x78)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);\n            uVar9 = 0xffffffffffffffff;\n            pcVar8 = pcVar6;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);\n            *puVar7 = 0xff;\n            puVar7[1] = 0xfa;\n            puVar7[2] = 0x18;\n            puVar7[3] = 0;\n            cVar2 = *pcVar6;\n            if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }\n            puVar7[lVar10 + 4] = 0xff;\n            puVar7[lVar10 + 5] = 0xf0;\n            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);\n            *(undefined4 *)(param_1 + 100) = uVar3;\n            puVar7[lVar10 + 4] = 0;\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");\n            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            FUN_00122b5a(puVar7);\n          }" ({ "{") (expression_statement "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);" (assignment_expression "pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30)" (identifier "FUN_0011571e") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x30)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (do_statement "do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" (do "do") (compound_statement "{\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar2 = *pcVar8;\n              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)FUN_001222ee(~uVar9 + 0x13,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001222ee(~uVar9 + 0x13,1)" (identifier "FUN_001222ee") (argument_list "(~uVar9 + 0x13,1)" (( "(") (binary_expression "~uVar9 + 0x13" (unary_expression "~uVar9" (~ "~") (identifier "uVar9")) (+ "+") (number_literal "0x13")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xfa")) (; ";")) (expression_statement "puVar7[2] = 0x18;" (assignment_expression "puVar7[2] = 0x18" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x18")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (if_statement "if (cVar2 == '\0') {\n              iVar14 = 0;\n              lVar10 = 0;\n            }\n            else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar14 = 0;\n              lVar10 = 0;\n            }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" (else "else") (compound_statement "{\n              lVar11 = 1;\n              do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');\n            }" ({ "{") (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" (identifier "lVar11") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                lVar10 = lVar11;\n                if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }\n                puVar7[lVar10 + 3] = cVar2;\n                iVar14 = (int)lVar10;\n                cVar2 = pcVar6[lVar10];\n                lVar11 = lVar10 + 1;\n              }" ({ "{") (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" (identifier "lVar10") (= "=") (identifier "lVar11")) (; ";")) (if_statement "if ((byte)(cVar2 + 0x9fU) < 0x1a) {\n                  cVar2 = cVar2 + -0x20;\n                }" (if "if") (parenthesized_expression "((byte)(cVar2 + 0x9fU) < 0x1a)" (( "(") (binary_expression "(byte)(cVar2 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar2 + 0x9fU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 + 0x9fU)" (( "(") (binary_expression "cVar2 + 0x9fU" (identifier "cVar2") (+ "+") (number_literal "0x9fU")) () ")"))) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n                  cVar2 = cVar2 + -0x20;\n                }" ({ "{") (expression_statement "cVar2 = cVar2 + -0x20;" (assignment_expression "cVar2 = cVar2 + -0x20" (identifier "cVar2") (= "=") (binary_expression "cVar2 + -0x20" (identifier "cVar2") (+ "+") (number_literal "-0x20"))) (; ";")) (} "}"))) (expression_statement "puVar7[lVar10 + 3] = cVar2;" (assignment_expression "puVar7[lVar10 + 3] = cVar2" (subscript_expression "puVar7[lVar10 + 3]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + 3" (identifier "lVar10") (+ "+") (number_literal "3")) (] "]")) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" (identifier "iVar14") (= "=") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))) (; ";")) (expression_statement "cVar2 = pcVar6[lVar10];" (assignment_expression "cVar2 = pcVar6[lVar10]" (identifier "cVar2") (= "=") (subscript_expression "pcVar6[lVar10]" (identifier "pcVar6") ([ "[") (identifier "lVar10") (] "]"))) (; ";")) (expression_statement "lVar11 = lVar10 + 1;" (assignment_expression "lVar11 = lVar10 + 1" (identifier "lVar11") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}")))) (expression_statement "puVar7[lVar10 + 4] = 0xff;" (assignment_expression "puVar7[lVar10 + 4] = 0xff" (subscript_expression "puVar7[lVar10 + 4]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + 4" (identifier "lVar10") (+ "+") (number_literal "4")) (] "]")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "puVar7[lVar10 + 5] = 0xf0;" (assignment_expression "puVar7[lVar10 + 5] = 0xf0" (subscript_expression "puVar7[lVar10 + 5]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + 5" (identifier "lVar10") (+ "+") (number_literal "5")) (] "]")) (= "=") (number_literal "0xf0")) (; ";")) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" (( "(") (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" (* "*") (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" (* "*") (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" (( "(") (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" (* "*") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(*(long **)(param_1 + 8),puVar7,iVar14 + 6)" (( "(") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar7") (, ",") (binary_expression "iVar14 + 6" (identifier "iVar14") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar7[lVar10 + 4] = 0;" (assignment_expression "puVar7[lVar10 + 4] = 0" (subscript_expression "puVar7[lVar10 + 4]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + 4" (identifier "lVar10") (+ "+") (number_literal "4")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND")" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND")" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (string_literal ""server:\tSB TTYPE SEND"" (" """) (string_content "server:") (escape_sequence "\t") (string_content "SB TTYPE SEND") (" """)) () ")"))) (; ";")) (expression_statement "uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4)" (identifier "FUN_0012292d") (argument_list "("client:\tSB TTYPE IS %s",puVar7 + 4)" (( "(") (string_literal ""client:\tSB TTYPE IS %s"" (" """) (string_content "client:") (escape_sequence "\t") (string_content "SB TTYPE IS %s") (" """)) (, ",") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" (identifier "FUN_00122b5a") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" (else "else") (compound_statement "{\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");\n          }" ({ "{") (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n")" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n")" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (string_literal ""server:\tSB TTYPE <something weird>\r\n"" (" """) (string_content "server:") (escape_sequence "\t") (string_content "SB TTYPE <something weird>") (escape_sequence "\r") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" (else "else") (if_statement "if ((iVar14 == 0x24) || (iVar14 == 0x27)) {\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" (if "if") (parenthesized_expression "((iVar14 == 0x24) || (iVar14 == 0x27))" (( "(") (binary_expression "(iVar14 == 0x24) || (iVar14 == 0x27)" (parenthesized_expression "(iVar14 == 0x24)" (( "(") (binary_expression "iVar14 == 0x24" (identifier "iVar14") (== "==") (number_literal "0x24")) () ")")) (|| "||") (parenthesized_expression "(iVar14 == 0x27)" (( "(") (binary_expression "iVar14 == 0x27" (identifier "iVar14") (== "==") (number_literal "0x27")) () ")"))) () ")")) (compound_statement "{\n        pcVar6 = *(char **)(param_1 + 0x78);\n        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);\n        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }\n      }" ({ "{") (expression_statement "pcVar6 = *(char **)(param_1 + 0x78);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0x78)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_1 + 0x78)" (* "*") (cast_expression "(char **)(param_1 + 0x78)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);" (assignment_expression "pcVar8 = pcVar6 + *(int *)(param_1 + 0x70)" (identifier "pcVar8") (= "=") (binary_expression "pcVar6 + *(int *)(param_1 + 0x70)" (identifier "pcVar6") (+ "+") (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))))) (; ";")) (if_statement "if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }" (if "if") (parenthesized_expression "((pcVar6 < pcVar8) && (*pcVar6 == '\x01'))" (( "(") (binary_expression "(pcVar6 < pcVar8) && (*pcVar6 == '\x01')" (parenthesized_expression "(pcVar6 < pcVar8)" (( "(") (binary_expression "pcVar6 < pcVar8" (identifier "pcVar6") (< "<") (identifier "pcVar8")) () ")")) (&& "&&") (parenthesized_expression "(*pcVar6 == '\x01')" (( "(") (binary_expression "*pcVar6 == '\x01'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = FUN_0012b347();\n          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);\n          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n          FUN_00122b5a(uVar5);\n          local_58 = true;\n          local_60 = false;\n          if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }\n          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }\n          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));\n          if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }\n          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);\n          *puVar7 = 0xff;\n          puVar7[1] = 0xfa;\n          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);\n          puVar7[3] = 0;\n          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n          if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }\n          iVar12 = iVar14;\n          if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }\n          puVar7[iVar12] = 0xff;\n          puVar7[iVar12 + 1] = 0xf0;\n          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);\n          *(undefined4 *)(param_1 + 100) = uVar3;\n          if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }\n          FUN_00122b5a(puVar7);\n          FUN_00122b5a(pcVar8);\n        }" ({ "{") (expression_statement "uVar5 = FUN_0012b347();" (assignment_expression "uVar5 = FUN_0012b347()" (identifier "uVar5") (= "=") (call_expression "FUN_0012b347()" (identifier "FUN_0012b347") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("server:\tSB %s SEND",uVar5)" (identifier "FUN_0012292d") (argument_list "("server:\tSB %s SEND",uVar5)" (( "(") (string_literal ""server:\tSB %s SEND"" (" """) (string_content "server:") (escape_sequence "\t") (string_content "SB %s SEND") (" """)) (, ",") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" (identifier "local_58") (= "=") (true "true")) (; ";")) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" (identifier "local_60") (= "=") (false "false")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x6c) == 0x24) {\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x6c) == 0x24)" (( "(") (binary_expression "*(int *)(param_1 + 0x6c) == 0x24" (pointer_expression "*(int *)(param_1 + 0x6c)" (* "*") (cast_expression "(int *)(param_1 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")")))) (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);\n            local_58 = iVar14 != 0;\n            local_60 = !local_58;\n            pcVar6 = pcVar6 + 1;\n            if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }\n          }" ({ "{") (expression_statement "iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);" (assignment_expression "iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37)" (identifier "iVar14") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x37)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x37") () ")")))) (; ";")) (expression_statement "local_58 = iVar14 != 0;" (assignment_expression "local_58 = iVar14 != 0" (identifier "local_58") (= "=") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "local_60 = !local_58;" (assignment_expression "local_60 = !local_58" (identifier "local_60") (= "=") (unary_expression "!local_58" (! "!") (identifier "local_58"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pcVar6 < pcVar8) {\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }" (if "if") (parenthesized_expression "(pcVar6 < pcVar8)" (( "(") (binary_expression "pcVar6 < pcVar8" (identifier "pcVar6") (< "<") (identifier "pcVar8")) () ")")) (compound_statement "{\n              do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);\n            }" ({ "{") (do_statement "do {\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              } while (pcVar8 != pcVar6);" (do "do") (compound_statement "{\n                cVar2 = *pcVar6;\n                if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }\n                pcVar6 = pcVar6 + 1;\n              }" ({ "{") (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (if_statement "if (cVar2 == '\0') {\n                  local_58 = true;\n                  local_60 = false;\n                }\n                else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  local_58 = true;\n                  local_60 = false;\n                }" ({ "{") (expression_statement "local_58 = true;" (assignment_expression "local_58 = true" (identifier "local_58") (= "=") (true "true")) (; ";")) (expression_statement "local_60 = false;" (assignment_expression "local_60 = false" (identifier "local_60") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" (else "else") (compound_statement "{\n                  if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }\n                  if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }\n                }" ({ "{") (if_statement "if (cVar2 == '\x01') {\n                    local_58 = false;\n                  }" (if "if") (parenthesized_expression "(cVar2 == '\x01')" (( "(") (binary_expression "cVar2 == '\x01'" (identifier "cVar2") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                    local_58 = false;\n                  }" ({ "{") (expression_statement "local_58 = false;" (assignment_expression "local_58 = false" (identifier "local_58") (= "=") (false "false")) (; ";")) (} "}"))) (if_statement "if (cVar2 == '\x01') {\n                    local_60 = true;\n                  }" (if "if") (parenthesized_expression "(cVar2 == '\x01')" (( "(") (binary_expression "cVar2 == '\x01'" (identifier "cVar2") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                    local_60 = true;\n                  }" ({ "{") (expression_statement "local_60 = true;" (assignment_expression "local_60 = true" (identifier "local_60") (= "=") (true "true")) (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar8 != pcVar6)" (( "(") (binary_expression "pcVar8 != pcVar6" (identifier "pcVar8") (!= "!=") (identifier "pcVar6")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (identifier "pcVar8") (= "=") (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (identifier "FUN_001158c4") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x33") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))))) (; ";")) (if_statement "if (pcVar8 == (char *)0x0) {\n            iVar14 = 0x14;\n          }\n          else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" (if "if") (parenthesized_expression "(pcVar8 == (char *)0x0)" (( "(") (binary_expression "pcVar8 == (char *)0x0" (identifier "pcVar8") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar14 = 0x14;\n          }" ({ "{") (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" (identifier "iVar14") (= "=") (number_literal "0x14")) (; ";")) (} "}")) (else_clause "else {\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" (else "else") (compound_statement "{\n            iVar14 = 0x14;\n            do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);\n          }" ({ "{") (expression_statement "iVar14 = 0x14;" (assignment_expression "iVar14 = 0x14" (identifier "iVar14") (= "=") (number_literal "0x14")) (; ";")) (do_statement "do {\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar8 != (char *)0x0);" (do "do") (compound_statement "{\n              lVar10 = -1;\n              pcVar6 = local_48;\n              do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              lVar11 = -1;\n              do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');\n              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;\n              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            }" ({ "{") (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" (identifier "lVar10") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar6 = local_48;" (assignment_expression "pcVar6 = local_48" (identifier "pcVar6") (= "=") (identifier "local_48")) (; ";")) (do_statement "do {\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                if (lVar10 == 0) break;\n                lVar10 = lVar10 + -1;\n                cVar2 = *pcVar6;\n                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n              }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" (identifier "lVar11") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                if (lVar11 == 0) break;\n                lVar11 = lVar11 + -1;\n                cVar2 = *pcVar8;\n                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;\n              }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar17 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;" (assignment_expression "iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" (identifier "iVar14") (= "=") (binary_expression "(iVar14 - (int)lVar10) + -1 + ~(uint)lVar11" (binary_expression "(iVar14 - (int)lVar10) + -1" (parenthesized_expression "(iVar14 - (int)lVar10)" (( "(") (binary_expression "iVar14 - (int)lVar10" (identifier "iVar14") (- "-") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))) () ")")) (+ "+") (number_literal "-1")) (+ "+") (unary_expression "~(uint)lVar11" (~ "~") (cast_expression "(uint)lVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar11"))))) (; ";")) (expression_statement "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;" (assignment_expression "pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (identifier "pcVar8") (= "=") (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (identifier "FUN_001158c4") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x33") (, ",") (identifier "local_48") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar8 != (char *)0x0)" (( "(") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (expression_statement "pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));" (assignment_expression "pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" (identifier "pcVar8") (= "=") (cast_expression "(char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00127e35(*(undefined8 *)(param_1 + 0x90))" (identifier "FUN_00127e35") (argument_list "(*(undefined8 *)(param_1 + 0x90))" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) () ")"))))) (; ";")) (if_statement "if (pcVar8 != (char *)0x0) {\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" (if "if") (parenthesized_expression "(pcVar8 != (char *)0x0)" (( "(") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            lVar10 = -1;\n            pcVar6 = pcVar8;\n            do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');\n            iVar14 = iVar14 + 5 + ~(uint)lVar10;\n          }" ({ "{") (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" (identifier "lVar10") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar6 = pcVar8;" (assignment_expression "pcVar6 = pcVar8" (identifier "pcVar6") (= "=") (identifier "pcVar8")) (; ";")) (do_statement "do {\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar2 != '\0');" (do "do") (compound_statement "{\n              if (lVar10 == 0) break;\n              lVar10 = lVar10 + -1;\n              cVar2 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar14 = iVar14 + 5 + ~(uint)lVar10;" (assignment_expression "iVar14 = iVar14 + 5 + ~(uint)lVar10" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 5 + ~(uint)lVar10" (binary_expression "iVar14 + 5" (identifier "iVar14") (+ "+") (number_literal "5")) (+ "+") (unary_expression "~(uint)lVar10" (~ "~") (cast_expression "(uint)lVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar10"))))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);" (assignment_expression "puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)FUN_001222ee((long)iVar14,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001222ee((long)iVar14,1)" (identifier "FUN_001222ee") (argument_list "((long)iVar14,1)" (( "(") (cast_expression "(long)iVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar14")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0xff;" (assignment_expression "*puVar7 = 0xff" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "puVar7[1] = 0xfa;" (assignment_expression "puVar7[1] = 0xfa" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xfa")) (; ";")) (expression_statement "puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);" (assignment_expression "puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c)" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)*(undefined4 *)(param_1 + 0x6c)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (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")) () ")")))))) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (identifier "FUN_001158c4") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x33") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))))) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n            iVar14 = 4;\n          }\n          else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar14 = 4;\n          }" ({ "{") (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" (identifier "iVar14") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" (else "else") (compound_statement "{\n            iVar14 = 4;\n            do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);\n          }" ({ "{") (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" (identifier "iVar14") (= "=") (number_literal "4")) (; ";")) (do_statement "do {\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            } while (pcVar6 != (char *)0x0);" (do "do") (compound_statement "{\n              iVar12 = iVar14 + 1;\n              puVar7[iVar14] = local_60;\n              cVar2 = *local_48;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }\n              iVar14 = iVar12 + 1;\n              puVar7[iVar12] = local_58;\n              cVar2 = *pcVar6;\n              if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }\n              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;\n            }" ({ "{") (expression_statement "iVar12 = iVar14 + 1;" (assignment_expression "iVar12 = iVar14 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" (identifier "puVar7") ([ "[") (identifier "iVar14") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "cVar2 = *local_48;" (assignment_expression "cVar2 = *local_48" (identifier "cVar2") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                lVar10 = (long)(iVar14 + 2);\n                do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');\n              }" ({ "{") (expression_statement "lVar10 = (long)(iVar14 + 2);" (assignment_expression "lVar10 = (long)(iVar14 + 2)" (identifier "lVar10") (= "=") (cast_expression "(long)(iVar14 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar14 + 2)" (( "(") (binary_expression "iVar14 + 2" (identifier "iVar14") (+ "+") (number_literal "2")) () ")")))) (; ";")) (do_statement "do {\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                  iVar12 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];\n                }" ({ "{") (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" (identifier "iVar12") (= "=") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))) (; ";")) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1")) (] "]")) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];" (assignment_expression "cVar2 = local_48[lVar10 + (-2 - (long)iVar14)]" (identifier "cVar2") (= "=") (subscript_expression "local_48[lVar10 + (-2 - (long)iVar14)]" (identifier "local_48") ([ "[") (binary_expression "lVar10 + (-2 - (long)iVar14)" (identifier "lVar10") (+ "+") (parenthesized_expression "(-2 - (long)iVar14)" (( "(") (binary_expression "-2 - (long)iVar14" (number_literal "-2") (- "-") (cast_expression "(long)iVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar14"))) () ")"))) (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar14 = iVar12 + 1;" (assignment_expression "iVar14 = iVar12 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7[iVar12] = local_58;" (assignment_expression "puVar7[iVar12] = local_58" (subscript_expression "puVar7[iVar12]" (identifier "puVar7") ([ "[") (identifier "iVar12") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                lVar10 = (long)(iVar12 + 2);\n                do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');\n              }" ({ "{") (expression_statement "lVar10 = (long)(iVar12 + 2);" (assignment_expression "lVar10 = (long)(iVar12 + 2)" (identifier "lVar10") (= "=") (cast_expression "(long)(iVar12 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar12 + 2)" (( "(") (binary_expression "iVar12 + 2" (identifier "iVar12") (+ "+") (number_literal "2")) () ")")))) (; ";")) (do_statement "do {\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                  iVar14 = (int)lVar10;\n                  puVar7[lVar10 + -1] = cVar2;\n                  lVar10 = lVar10 + 1;\n                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];\n                }" ({ "{") (expression_statement "iVar14 = (int)lVar10;" (assignment_expression "iVar14 = (int)lVar10" (identifier "iVar14") (= "=") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))) (; ";")) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1")) (] "]")) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];" (assignment_expression "cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)]" (identifier "cVar2") (= "=") (subscript_expression "pcVar6[lVar10 + (-2 - (long)iVar12)]" (identifier "pcVar6") ([ "[") (binary_expression "lVar10 + (-2 - (long)iVar12)" (identifier "lVar10") (+ "+") (parenthesized_expression "(-2 - (long)iVar12)" (( "(") (binary_expression "-2 - (long)iVar12" (number_literal "-2") (- "-") (cast_expression "(long)iVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar12"))) () ")"))) (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)\n              ;" (assignment_expression "pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (identifier "FUN_001158c4") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x33") (, ",") (identifier "local_48") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (expression_statement "iVar12 = iVar14;" (assignment_expression "iVar12 = iVar14" (identifier "iVar12") (= "=") (identifier "iVar14")) (; ";")) (if_statement "if (pcVar8 != (char *)0x0) {\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" (if "if") (parenthesized_expression "(pcVar8 != (char *)0x0)" (( "(") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar7[iVar14] = local_60;\n            puVar7[iVar14 + 1] = 0x55;\n            puVar7[iVar14 + 2] = 0x53;\n            puVar7[iVar14 + 3] = 0x45;\n            puVar7[iVar14 + 4] = 0x52;\n            iVar12 = iVar14 + 6;\n            puVar7[iVar14 + 5] = local_58;\n            cVar2 = *pcVar8;\n            if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }\n          }" ({ "{") (expression_statement "puVar7[iVar14] = local_60;" (assignment_expression "puVar7[iVar14] = local_60" (subscript_expression "puVar7[iVar14]" (identifier "puVar7") ([ "[") (identifier "iVar14") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "puVar7[iVar14 + 1] = 0x55;" (assignment_expression "puVar7[iVar14 + 1] = 0x55" (subscript_expression "puVar7[iVar14 + 1]" (identifier "puVar7") ([ "[") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0x55")) (; ";")) (expression_statement "puVar7[iVar14 + 2] = 0x53;" (assignment_expression "puVar7[iVar14 + 2] = 0x53" (subscript_expression "puVar7[iVar14 + 2]" (identifier "puVar7") ([ "[") (binary_expression "iVar14 + 2" (identifier "iVar14") (+ "+") (number_literal "2")) (] "]")) (= "=") (number_literal "0x53")) (; ";")) (expression_statement "puVar7[iVar14 + 3] = 0x45;" (assignment_expression "puVar7[iVar14 + 3] = 0x45" (subscript_expression "puVar7[iVar14 + 3]" (identifier "puVar7") ([ "[") (binary_expression "iVar14 + 3" (identifier "iVar14") (+ "+") (number_literal "3")) (] "]")) (= "=") (number_literal "0x45")) (; ";")) (expression_statement "puVar7[iVar14 + 4] = 0x52;" (assignment_expression "puVar7[iVar14 + 4] = 0x52" (subscript_expression "puVar7[iVar14 + 4]" (identifier "puVar7") ([ "[") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) (] "]")) (= "=") (number_literal "0x52")) (; ";")) (expression_statement "iVar12 = iVar14 + 6;" (assignment_expression "iVar12 = iVar14 + 6" (identifier "iVar12") (= "=") (binary_expression "iVar14 + 6" (identifier "iVar14") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar7[iVar14 + 5] = local_58;" (assignment_expression "puVar7[iVar14 + 5] = local_58" (subscript_expression "puVar7[iVar14 + 5]" (identifier "puVar7") ([ "[") (binary_expression "iVar14 + 5" (identifier "iVar14") (+ "+") (number_literal "5")) (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              lVar10 = (long)(iVar14 + 7);\n              do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');\n            }" ({ "{") (expression_statement "lVar10 = (long)(iVar14 + 7);" (assignment_expression "lVar10 = (long)(iVar14 + 7)" (identifier "lVar10") (= "=") (cast_expression "(long)(iVar14 + 7)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar14 + 7)" (( "(") (binary_expression "iVar14 + 7" (identifier "iVar14") (+ "+") (number_literal "7")) () ")")))) (; ";")) (do_statement "do {\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                iVar12 = (int)lVar10;\n                puVar7[lVar10 + -1] = cVar2;\n                lVar10 = lVar10 + 1;\n                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];\n              }" ({ "{") (expression_statement "iVar12 = (int)lVar10;" (assignment_expression "iVar12 = (int)lVar10" (identifier "iVar12") (= "=") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))) (; ";")) (expression_statement "puVar7[lVar10 + -1] = cVar2;" (assignment_expression "puVar7[lVar10 + -1] = cVar2" (subscript_expression "puVar7[lVar10 + -1]" (identifier "puVar7") ([ "[") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1")) (] "]")) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];" (assignment_expression "cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)]" (identifier "cVar2") (= "=") (subscript_expression "pcVar8[lVar10 + (-7 - (long)iVar14)]" (identifier "pcVar8") ([ "[") (binary_expression "lVar10 + (-7 - (long)iVar14)" (identifier "lVar10") (+ "+") (parenthesized_expression "(-7 - (long)iVar14)" (( "(") (binary_expression "-7 - (long)iVar14" (number_literal "-7") (- "-") (cast_expression "(long)iVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar14"))) () ")"))) (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar7[iVar12] = 0xff;" (assignment_expression "puVar7[iVar12] = 0xff" (subscript_expression "puVar7[iVar12]" (identifier "puVar7") ([ "[") (identifier "iVar12") (] "]")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "puVar7[iVar12 + 1] = 0xf0;" (assignment_expression "puVar7[iVar12 + 1] = 0xf0" (subscript_expression "puVar7[iVar12 + 1]" (identifier "puVar7") ([ "[") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0xf0")) (; ";")) (expression_statement "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);" (assignment_expression "uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))\n                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2)" (parenthesized_expression "(**(code **)(**(long **)(param_1 + 8) + 0x10))" (( "(") (pointer_expression "**(code **)(**(long **)(param_1 + 8) + 0x10)" (* "*") (pointer_expression "*(code **)(**(long **)(param_1 + 8) + 0x10)" (* "*") (cast_expression "(code **)(**(long **)(param_1 + 8) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(param_1 + 8) + 0x10)" (( "(") (binary_expression "**(long **)(param_1 + 8) + 0x10" (pointer_expression "**(long **)(param_1 + 8)" (* "*") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(*(long **)(param_1 + 8),puVar7,iVar12 + 2)" (( "(") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar7") (, ",") (binary_expression "iVar12 + 2" (identifier "iVar12") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar3;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar3" (pointer_expression "*(undefined4 *)(param_1 + 100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (iVar12 + 2 == 6) {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }\n          else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" (if "if") (parenthesized_expression "(iVar12 + 2 == 6)" (( "(") (binary_expression "iVar12 + 2 == 6" (binary_expression "iVar12 + 2" (identifier "iVar12") (+ "+") (number_literal "2")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n          }" ({ "{") (expression_statement "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));" (assignment_expression "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" (identifier "uVar5") (= "=") (call_expression "FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" (identifier "FUN_0012b347") (argument_list "(*(undefined4 *)(param_1 + 0x6c))" (( "(") (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")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("client:\tSB %s IS <nothing>",uVar5)" (identifier "FUN_0012292d") (argument_list "("client:\tSB %s IS <nothing>",uVar5)" (( "(") (string_literal ""client:\tSB %s IS <nothing>"" (" """) (string_content "client:") (escape_sequence "\t") (string_content "SB %s IS <nothing>") (" """)) (, ",") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" (else "else") (compound_statement "{\n            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));\n            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);\n            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n            FUN_00122b5a(uVar5);\n            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);\n            while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }\n            if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }\n          }" ({ "{") (expression_statement "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));" (assignment_expression "uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" (identifier "uVar5") (= "=") (call_expression "FUN_0012b347(*(undefined4 *)(param_1 + 0x6c))" (identifier "FUN_0012b347") (argument_list "(*(undefined4 *)(param_1 + 0x6c))" (( "(") (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")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);" (assignment_expression "uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("client:\tSB %s IS:",uVar5)" (identifier "FUN_0012292d") (argument_list "("client:\tSB %s IS:",uVar5)" (( "(") (string_literal ""client:\tSB %s IS:"" (" """) (string_content "client:") (escape_sequence "\t") (string_content "SB %s IS:") (" """)) (, ",") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);" (assignment_expression "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (identifier "lVar10") (= "=") (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (identifier "FUN_001158c4") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x33") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (while_statement "while (lVar10 != 0) {\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }" (while "while") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);\n            }" ({ "{") (expression_statement "uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);" (assignment_expression "uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("\t%s=%s",local_48,lVar10)" (identifier "FUN_0012292d") (argument_list "("\t%s=%s",local_48,lVar10)" (( "(") (string_literal ""\t%s=%s"" (" """) (escape_sequence "\t") (string_content "%s=%s") (" """)) (, ",") (identifier "local_48") (, ",") (identifier "lVar10") () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);" (assignment_expression "lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (identifier "lVar10") (= "=") (call_expression "FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (identifier "FUN_001158c4") (argument_list "(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (, ",") (number_literal "0x33") (, ",") (identifier "local_48") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (} "}"))) (if_statement "if (pcVar8 != (char *)0x0) {\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }" (if "if") (parenthesized_expression "(pcVar8 != (char *)0x0)" (( "(") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);\n              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);\n              FUN_00122b5a(uVar5);\n            }" ({ "{") (expression_statement "uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);" (assignment_expression "uVar5 = FUN_0012292d("\tUSER=%s",pcVar8)" (identifier "uVar5") (= "=") (call_expression "FUN_0012292d("\tUSER=%s",pcVar8)" (identifier "FUN_0012292d") (argument_list "("\tUSER=%s",pcVar8)" (( "(") (string_literal ""\tUSER=%s"" (" """) (escape_sequence "\t") (string_content "USER=%s") (" """)) (, ",") (identifier "pcVar8") () ")")))) (; ";")) (expression_statement "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);" (call_expression "FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5)" (identifier "FUN_0014a676") (argument_list "(*(undefined8 *)(param_1 + 0x18),uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(uVar5);" (call_expression "FUN_00122b5a(uVar5)" (identifier "FUN_00122b5a") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00122b5a(puVar7);" (call_expression "FUN_00122b5a(puVar7)" (identifier "FUN_00122b5a") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";")) (expression_statement "FUN_00122b5a(pcVar8);" (call_expression "FUN_00122b5a(pcVar8)" (identifier "FUN_00122b5a") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (} "}"))) (} "}"))))))) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto switchD_0012c4c9_caseD_a;" (default "default") (: ":") (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";"))) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70))" (( "(") (binary_expression "*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)" (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (<= "<=") (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (compound_statement "{\n    iVar14 = *(int *)(param_1 + 0x80) + 0x400;\n    *(int *)(param_1 + 0x80) = iVar14;\n    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);\n    *(undefined8 *)(param_1 + 0x78) = uVar5;\n  }" ({ "{") (expression_statement "iVar14 = *(int *)(param_1 + 0x80) + 0x400;" (assignment_expression "iVar14 = *(int *)(param_1 + 0x80) + 0x400" (identifier "iVar14") (= "=") (binary_expression "*(int *)(param_1 + 0x80) + 0x400" (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (+ "+") (number_literal "0x400"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x80) = iVar14;" (assignment_expression "*(int *)(param_1 + 0x80) = iVar14" (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);" (assignment_expression "uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" (identifier "uVar5") (= "=") (call_expression "FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" (identifier "FUN_001226ba") (argument_list "(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (, ",") (cast_expression "(long)iVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar14")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x78) = uVar5;" (assignment_expression "*(undefined8 *)(param_1 + 0x78) = uVar5" (pointer_expression "*(undefined8 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (expression_statement "iVar14 = *(int *)(param_1 + 0x70);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x70)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 0x70) = iVar14 + 1;" (assignment_expression "*(int *)(param_1 + 0x70) = iVar14 + 1" (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;" (assignment_expression "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14)" (* "*") (cast_expression "(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x78) + (long)iVar14)" (( "(") (binary_expression "*(long *)(param_1 + 0x78) + (long)iVar14" (pointer_expression "*(long *)(param_1 + 0x78)" (* "*") (cast_expression "(long *)(param_1 + 0x78)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (+ "+") (cast_expression "(long)iVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar14"))) () ")")))) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 7;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 7" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "7")) (; ";")) (goto_statement "goto switchD_0012c4c9_caseD_a;" (goto "goto") (statement_identifier "switchD_0012c4c9_caseD_a") (; ";")) (} "}")))

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

void function_1(type_1 var_3,int var_2,char *var_5,int len)

{
  type_2 bVar1;
  char var_19;
  type_3 uVar3;
  type_4 var_6;
  type_5 *var_28;
  char *var_32;
  type_6 *var_22;
  char *var_18;
  type_7 var_17;
  long var_23;
  long var_24;
  int var_34;
  type_8 var_11;
  type_5 *var_27;
  int var_15;
  type_2 *var_4;
  type_2 *pbVar16;
  long var_1;
  type_2 bVar17;
  char *local_88;
  type_4 var_12;
  bool local_60;
  bool local_58;
  char *ekey;
  long var_9;
  
  bVar17 = 0;
  var_9 = *(long *)(var_1 + 0x28);
  if (var_2 != 0) {
    *(type_3 *)(var_3 + 0xd) = 1;
  }
  *(type_3 *)((long)var_3 + 0x84) = 1;
  var_12 = L'\0';
  var_6 = L'\0';
  local_88 = (char *)0x0;
  var_4 = (type_2 *)var_5;
switchD_0012c4c9_caseD_a:
  if (var_4 == (type_2 *)(var_5 + (type_8)len)) {
    if (var_6 != L'\0') {
      var_6 = var_7(var_3[3],L'\0',local_88,var_6);
      (**(type_9 **)(var_3[1]->log + 0x30))(var_3[1],L'က' < var_6);
    }
    var_8(local_88);
    if (var_9 == *(long *)(var_1 + 0x28)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    var_10();
  }
  pbVar16 = var_4 + 1;
  bVar1 = *var_4;
  var_11 = (type_8)bVar1;
  var_4 = pbVar16;
  switch(*(int *)(var_3 + 0x11)) {
  case 0:
  case 9:
    if ((var_11 == 0) && (*(int *)(var_3 + 0x11) == 9)) {
      *(type_3 *)(var_3 + 0x11) = 0;
    }
    else {
      if (var_11 != 0xff) {
        if (*(int *)(var_3 + 0xd) == 0) {
          if (var_12 <= var_6) {
            var_12 = var_6 + L'Ā';
            local_88 = (char *)var_13(local_88,(long)var_12,1);
          }
          local_88[var_6] = bVar1;
          var_6 = var_6 + L'\x01';
LAB_0012c24b:
          if ((var_11 == 0xd) && (*(int *)((long)var_3 + 0x54) != 1)) {
            *(type_3 *)(var_3 + 0x11) = 9;
            goto switchD_0012c4c9_caseD_a;
          }
        }
        else {
          if (var_11 != 0xf2) goto LAB_0012c24b;
          *(type_3 *)(var_3 + 0xd) = 0;
        }
        *(type_3 *)(var_3 + 0x11) = 0;
        goto switchD_0012c4c9_caseD_a;
      }
      *(type_3 *)(var_3 + 0x11) = 1;
    }
    goto switchD_0012c4c9_caseD_a;
  case 1:
    if (var_11 == 0xfd) {
      *(type_3 *)(var_3 + 0x11) = 4;
    }
    else if (var_11 == 0xfe) {
      *(type_3 *)(var_3 + 0x11) = 5;
    }
    else if (var_11 == 0xfb) {
      *(type_3 *)(var_3 + 0x11) = 2;
    }
    else if (var_11 == 0xfc) {
      *(type_3 *)(var_3 + 0x11) = 3;
    }
    else if (var_11 == 0xfa) {
      *(type_3 *)(var_3 + 0x11) = 6;
    }
    else if (var_11 == 0xf2) {
      *(type_3 *)(var_3 + 0xd) = 0;
      *(type_3 *)(var_3 + 0x11) = 0;
    }
    else {
      if (var_11 == 0xff) {
        if (var_12 <= var_6) {
          var_12 = var_6 + L'Ā';
          local_88 = (char *)var_13(local_88,(long)var_12,1);
        }
        local_88[var_6] = bVar1;
        var_6 = var_6 + L'\x01';
      }
      *(type_3 *)(var_3 + 0x11) = 0;
    }
    goto switchD_0012c4c9_caseD_a;
  case 2:
    var_14((type_10)var_3,0xfb,var_11);
    *(type_3 *)(var_3 + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 3:
    var_14((type_10)var_3,0xfc,var_11);
    *(type_3 *)(var_3 + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 4:
    var_14((type_10)var_3,0xfd,var_11);
    *(type_3 *)(var_3 + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 5:
    var_14((type_10)var_3,0xfe,var_11);
    *(type_3 *)(var_3 + 0x11) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 6:
    *(type_8 *)((long)var_3 + 0x6c) = var_11;
    *(type_3 *)(var_3 + 0xe) = 0;
    *(type_3 *)(var_3 + 0x11) = 7;
    goto switchD_0012c4c9_caseD_a;
  case 7:
    if (var_11 == 0xff) {
      *(type_3 *)(var_3 + 0x11) = 8;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  case 8:
    if (var_11 == 0xf0) {
      var_15 = *(int *)((long)var_3 + 0x6c);
      if (var_15 == 0x20) {
        if ((*(int *)(var_3 + 0xe) == 1) && (*(char *)&var_3[0xf]->log == '\x01')) {
          var_32 = var_16((type_11 *)var_3[0x12],0x31);
          var_17 = 0xffffffffffffffff;
          var_18 = var_32;
          do {
            if (var_17 == 0) break;
            var_17 = var_17 - 1;
            var_19 = *var_18;
            var_18 = var_18 + (type_7)bVar17 * -2 + 1;
          } while (var_19 != '\0');
          var_22 = (type_6 *)var_20(~var_17 + 0x13,1);
          *var_22 = 0xff;
          var_22[1] = 0xfa;
          var_22[2] = 0x20;
          var_22[3] = 0;
          var_21(var_22 + 4,var_32);
          var_23 = -1;
          var_18 = var_32;
          do {
            if (var_23 == 0) break;
            var_23 = var_23 + -1;
            var_19 = *var_18;
            var_18 = var_18 + (type_7)bVar17 * -2 + 1;
          } while (var_19 != '\0');
          var_24 = (long)(int)(~(type_8)var_23 + 3);
          var_22[var_24] = 0xff;
          var_22[var_24 + 1] = 0xf0;
          uVar3 = (**(type_9 **)(var_3[1]->log + 0x10))(var_3[1],var_22,~(type_8)var_23 + 5);
          *(type_3 *)((long)var_3 + 100) = uVar3;
          var_25(var_3[3],"server:\tSB TSPEED SEND");
          var_18 = var_26("client:\tSB TSPEED IS %s",var_32);
          var_25(var_3[3],var_18);
          var_8(var_18);
          var_8(var_22);
        }
        else {
          var_25(var_3[3],"server:\tSB TSPEED <something weird>");
        }
      }
      else if (var_15 < 0x21) {
        if (var_15 == 0x18) {
          if ((*(int *)(var_3 + 0xe) == 1) && (*(char *)&var_3[0xf]->log == '\x01')) {
            var_32 = var_16((type_11 *)var_3[0x12],0x30);
            var_17 = 0xffffffffffffffff;
            var_18 = var_32;
            do {
              if (var_17 == 0) break;
              var_17 = var_17 - 1;
              var_19 = *var_18;
              var_18 = var_18 + (type_7)bVar17 * -2 + 1;
            } while (var_19 != '\0');
            var_22 = (type_6 *)var_20(~var_17 + 0x13,1);
            *var_22 = 0xff;
            var_22[1] = 0xfa;
            var_22[2] = 0x18;
            var_22[3] = 0;
            var_19 = *var_32;
            if (var_19 == '\0') {
              var_15 = 0;
              var_23 = 0;
            }
            else {
              var_24 = 1;
              do {
                var_23 = var_24;
                if ((type_2)(var_19 + 0x9fU) < 0x1a) {
                  var_19 = var_19 + -0x20;
                }
                var_22[var_23 + 3] = var_19;
                var_15 = (int)var_23;
                var_19 = var_32[var_23];
                var_24 = var_23 + 1;
              } while (var_19 != '\0');
            }
            var_22[var_23 + 4] = 0xff;
            var_22[var_23 + 5] = 0xf0;
            uVar3 = (**(type_9 **)(var_3[1]->log + 0x10))(var_3[1],var_22,var_15 + 6);
            *(type_3 *)((long)var_3 + 100) = uVar3;
            var_22[var_23 + 4] = 0;
            var_25(var_3[3],"server:\tSB TTYPE SEND");
            var_18 = var_26("client:\tSB TTYPE IS %s",var_22 + 4);
            var_25(var_3[3],var_18);
            var_8(var_18);
            var_8(var_22);
          }
          else {
            var_25(var_3[3],"server:\tSB TTYPE <something weird>\r\n");
          }
        }
      }
      else if ((var_15 == 0x24) || (var_15 == 0x27)) {
        var_27 = var_3[0xf];
        var_28 = (type_5 *)((long)&var_27->log + (long)*(int *)(var_3 + 0xe));
        if ((var_27 < var_28) && (*(char *)&var_27->log == '\x01')) {
          var_18 = var_29(var_15);
          var_18 = var_26("server:\tSB %s SEND",var_18);
          var_25(var_3[3],var_18);
          var_8(var_18);
          local_58 = true;
          local_60 = false;
          if (*(int *)((long)var_3 + 0x6c) == 0x24) {
            var_15 = var_30((type_11 *)var_3[0x12],0x37);
            local_58 = var_15 != 0;
            local_60 = !local_58;
            var_27 = (type_5 *)((long)&var_27->log + 1);
            if (var_27 < var_28) {
              do {
                var_19 = *(char *)&var_27->log;
                if (var_19 == '\0') {
                  local_58 = true;
                  local_60 = false;
                }
                else {
                  if (var_19 == '\x01') {
                    local_58 = false;
                  }
                  if (var_19 == '\x01') {
                    local_60 = true;
                  }
                }
                var_27 = (type_5 *)((long)&var_27->log + 1);
              } while (var_28 != var_27);
            }
          }
          var_18 = var_31((type_11 *)var_3[0x12],0x33,(char *)0x0,&ekey);
          if (var_18 == (char *)0x0) {
            var_15 = 0x14;
          }
          else {
            var_15 = 0x14;
            do {
              var_23 = -1;
              var_32 = ekey;
              do {
                if (var_23 == 0) break;
                var_23 = var_23 + -1;
                var_19 = *var_32;
                var_32 = var_32 + (type_7)bVar17 * -2 + 1;
              } while (var_19 != '\0');
              var_24 = -1;
              do {
                if (var_24 == 0) break;
                var_24 = var_24 + -1;
                var_19 = *var_18;
                var_18 = var_18 + (type_7)bVar17 * -2 + 1;
              } while (var_19 != '\0');
              var_15 = (var_15 - (int)var_23) + -1 + ~(type_8)var_24;
              var_18 = var_31((type_11 *)var_3[0x12],0x33,ekey,&ekey);
            } while (var_18 != (char *)0x0);
          }
          var_18 = var_33((type_11 *)var_3[0x12]);
          if (var_18 != (char *)0x0) {
            var_23 = -1;
            var_32 = var_18;
            do {
              if (var_23 == 0) break;
              var_23 = var_23 + -1;
              var_19 = *var_32;
              var_32 = var_32 + (type_7)bVar17 * -2 + 1;
            } while (var_19 != '\0');
            var_15 = var_15 + 5 + ~(type_8)var_23;
          }
          var_22 = (type_6 *)var_20((long)var_15,1);
          *var_22 = 0xff;
          var_22[1] = 0xfa;
          var_22[2] = (char)*(type_3 *)((long)var_3 + 0x6c);
          var_22[3] = 0;
          var_32 = var_31((type_11 *)var_3[0x12],0x33,(char *)0x0,&ekey);
          if (var_32 == (char *)0x0) {
            var_15 = 4;
          }
          else {
            var_15 = 4;
            do {
              var_34 = var_15 + 1;
              var_22[var_15] = local_60;
              var_19 = *ekey;
              if (var_19 != '\0') {
                var_23 = (long)(var_15 + 2);
                do {
                  var_34 = (int)var_23;
                  var_22[var_23 + -1] = var_19;
                  var_23 = var_23 + 1;
                  var_19 = ekey[var_23 + (-2 - (long)var_15)];
                } while (var_19 != '\0');
              }
              var_15 = var_34 + 1;
              var_22[var_34] = local_58;
              var_19 = *var_32;
              if (var_19 != '\0') {
                var_23 = (long)(var_34 + 2);
                do {
                  var_15 = (int)var_23;
                  var_22[var_23 + -1] = var_19;
                  var_23 = var_23 + 1;
                  var_19 = var_32[var_23 + (-2 - (long)var_34)];
                } while (var_19 != '\0');
              }
              var_32 = var_31((type_11 *)var_3[0x12],0x33,ekey,&ekey);
            } while (var_32 != (char *)0x0);
          }
          var_34 = var_15;
          if (var_18 != (char *)0x0) {
            var_22[var_15] = local_60;
            var_22[var_15 + 1] = 0x55;
            var_22[var_15 + 2] = 0x53;
            var_22[var_15 + 3] = 0x45;
            var_22[var_15 + 4] = 0x52;
            var_34 = var_15 + 6;
            var_22[var_15 + 5] = local_58;
            var_19 = *var_18;
            if (var_19 != '\0') {
              var_23 = (long)(var_15 + 7);
              do {
                var_34 = (int)var_23;
                var_22[var_23 + -1] = var_19;
                var_23 = var_23 + 1;
                var_19 = var_18[var_23 + (-7 - (long)var_15)];
              } while (var_19 != '\0');
            }
          }
          var_22[var_34] = 0xff;
          var_22[var_34 + 1] = 0xf0;
          uVar3 = (**(type_9 **)(var_3[1]->log + 0x10))(var_3[1],var_22,var_34 + 2);
          *(type_3 *)((long)var_3 + 100) = uVar3;
          if (var_34 + 2 == 6) {
            var_32 = var_29(*(int *)((long)var_3 + 0x6c));
            var_32 = var_26("client:\tSB %s IS <nothing>",var_32);
            var_25(var_3[3],var_32);
            var_8(var_32);
          }
          else {
            var_32 = var_29(*(int *)((long)var_3 + 0x6c));
            var_32 = var_26("client:\tSB %s IS:",var_32);
            var_25(var_3[3],var_32);
            var_8(var_32);
            var_32 = var_31((type_11 *)var_3[0x12],0x33,(char *)0x0,&ekey);
            while (var_32 != (char *)0x0) {
              var_32 = var_26("\t%s=%s",ekey,var_32);
              var_25(var_3[3],var_32);
              var_8(var_32);
              var_32 = var_31((type_11 *)var_3[0x12],0x33,ekey,&ekey);
            }
            if (var_18 != (char *)0x0) {
              var_32 = var_26("\tUSER=%s",var_18);
              var_25(var_3[3],var_32);
              var_8(var_32);
            }
          }
          var_8(var_22);
          var_8(var_18);
        }
      }
      *(type_3 *)(var_3 + 0x11) = 0;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  default:
    goto switchD_0012c4c9_caseD_a;
  }
  if (*(int *)(var_3 + 0x10) <= *(int *)(var_3 + 0xe)) {
    var_15 = *(int *)(var_3 + 0x10) + 0x400;
    *(int *)(var_3 + 0x10) = var_15;
    var_28 = (type_5 *)var_13(var_3[0xf],(long)var_15,1);
    var_3[0xf] = var_28;
  }
  var_15 = *(int *)(var_3 + 0xe);
  *(int *)(var_3 + 0xe) = var_15 + 1;
  *(type_2 *)((long)&var_3[0xf]->log + (long)var_15) = bVar1;
  *(type_3 *)(var_3 + 0x11) = 7;
  goto switchD_0012c4c9_caseD_a;
}


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

void MASKED(long param_1,int param_2,byte *param_3,uint param_4)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  undefined8 uVar5;
  char *pcVar6;
  undefined1 *puVar7;
  char *pcVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  byte *pbVar15;
  byte *pbVar16;
  long in_FS_OFFSET;
  byte bVar17;
  long local_88;
  int local_74;
  bool local_60;
  bool local_58;
  char *local_48;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_2 != 0) {
    *(undefined4 *)(param_1 + 0x68) = 1;
  }
  *(undefined4 *)(param_1 + 0x84) = 1;
  local_74 = 0;
  iVar4 = 0;
  local_88 = 0;
  pbVar15 = param_3;
switchD_0012c4c9_caseD_a:
  if (pbVar15 == param_3 + param_4) {
    if (iVar4 != 0) {
      iVar4 = FUN_0014a603(*(undefined8 *)(param_1 + 0x18),0,local_88,iVar4);
      (**(code **)(**(long **)(param_1 + 8) + 0x30))(*(long **)(param_1 + 8),0x1000 < iVar4);
    }
    FUN_00122b5a(local_88);
    if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  pbVar16 = pbVar15 + 1;
  bVar1 = *pbVar15;
  uVar13 = (uint)bVar1;
  pbVar15 = pbVar16;
  switch(*(int *)(param_1 + 0x88)) {
  case 0:
  case 9:
    if ((uVar13 == 0) && (*(int *)(param_1 + 0x88) == 9)) {
      *(undefined4 *)(param_1 + 0x88) = 0;
    }
    else {
      if (uVar13 != 0xff) {
        if (*(int *)(param_1 + 0x68) == 0) {
          if (local_74 <= iVar4) {
            local_74 = iVar4 + 0x100;
            local_88 = FUN_001226ba(local_88,(long)local_74,1);
          }
          *(byte *)(local_88 + iVar4) = bVar1;
          iVar4 = iVar4 + 1;
LAB_0012c24b:
          if ((uVar13 == 0xd) && (*(int *)(param_1 + 0x54) != 1)) {
            *(undefined4 *)(param_1 + 0x88) = 9;
            goto switchD_0012c4c9_caseD_a;
          }
        }
        else {
          if (uVar13 != 0xf2) goto LAB_0012c24b;
          *(undefined4 *)(param_1 + 0x68) = 0;
        }
        *(undefined4 *)(param_1 + 0x88) = 0;
        goto switchD_0012c4c9_caseD_a;
      }
      *(undefined4 *)(param_1 + 0x88) = 1;
    }
    goto switchD_0012c4c9_caseD_a;
  case 1:
    if (uVar13 == 0xfd) {
      *(undefined4 *)(param_1 + 0x88) = 4;
    }
    else if (uVar13 == 0xfe) {
      *(undefined4 *)(param_1 + 0x88) = 5;
    }
    else if (uVar13 == 0xfb) {
      *(undefined4 *)(param_1 + 0x88) = 2;
    }
    else if (uVar13 == 0xfc) {
      *(undefined4 *)(param_1 + 0x88) = 3;
    }
    else if (uVar13 == 0xfa) {
      *(undefined4 *)(param_1 + 0x88) = 6;
    }
    else if (uVar13 == 0xf2) {
      *(undefined4 *)(param_1 + 0x68) = 0;
      *(undefined4 *)(param_1 + 0x88) = 0;
    }
    else {
      if (uVar13 == 0xff) {
        if (local_74 <= iVar4) {
          local_74 = iVar4 + 0x100;
          local_88 = FUN_001226ba(local_88,(long)local_74,1);
        }
        *(byte *)(local_88 + iVar4) = bVar1;
        iVar4 = iVar4 + 1;
      }
      *(undefined4 *)(param_1 + 0x88) = 0;
    }
    goto switchD_0012c4c9_caseD_a;
  case 2:
    FUN_0012c01f(param_1,0xfb,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 3:
    FUN_0012c01f(param_1,0xfc,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 4:
    FUN_0012c01f(param_1,0xfd,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 5:
    FUN_0012c01f(param_1,0xfe,uVar13);
    *(undefined4 *)(param_1 + 0x88) = 0;
    goto switchD_0012c4c9_caseD_a;
  case 6:
    *(uint *)(param_1 + 0x6c) = uVar13;
    *(undefined4 *)(param_1 + 0x70) = 0;
    *(undefined4 *)(param_1 + 0x88) = 7;
    goto switchD_0012c4c9_caseD_a;
  case 7:
    if (uVar13 == 0xff) {
      *(undefined4 *)(param_1 + 0x88) = 8;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  case 8:
    if (uVar13 == 0xf0) {
      iVar14 = *(int *)(param_1 + 0x6c);
      if (iVar14 == 0x20) {
        if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {
          pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x31);
          uVar9 = 0xffffffffffffffff;
          pcVar8 = pcVar6;
          do {
            if (uVar9 == 0) break;
            uVar9 = uVar9 - 1;
            cVar2 = *pcVar8;
            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
          } while (cVar2 != '\0');
          puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);
          *puVar7 = 0xff;
          puVar7[1] = 0xfa;
          puVar7[2] = 0x20;
          puVar7[3] = 0;
          strcpy(puVar7 + 4,pcVar6);
          lVar10 = -1;
          pcVar8 = pcVar6;
          do {
            if (lVar10 == 0) break;
            lVar10 = lVar10 + -1;
            cVar2 = *pcVar8;
            pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
          } while (cVar2 != '\0');
          lVar11 = (long)(int)(~(uint)lVar10 + 3);
          puVar7[lVar11] = 0xff;
          puVar7[lVar11 + 1] = 0xf0;
          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))
                            (*(long **)(param_1 + 8),puVar7,~(uint)lVar10 + 5);
          *(undefined4 *)(param_1 + 100) = uVar3;
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED SEND");
          uVar5 = FUN_0012292d("client:\tSB TSPEED IS %s",pcVar6);
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
          FUN_00122b5a(uVar5);
          FUN_00122b5a(puVar7);
        }
        else {
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TSPEED <something weird>");
        }
      }
      else if (iVar14 < 0x21) {
        if (iVar14 == 0x18) {
          if ((*(int *)(param_1 + 0x70) == 1) && (**(char **)(param_1 + 0x78) == '\x01')) {
            pcVar6 = (char *)FUN_0011571e(*(undefined8 *)(param_1 + 0x90),0x30);
            uVar9 = 0xffffffffffffffff;
            pcVar8 = pcVar6;
            do {
              if (uVar9 == 0) break;
              uVar9 = uVar9 - 1;
              cVar2 = *pcVar8;
              pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
            } while (cVar2 != '\0');
            puVar7 = (undefined1 *)FUN_001222ee(~uVar9 + 0x13,1);
            *puVar7 = 0xff;
            puVar7[1] = 0xfa;
            puVar7[2] = 0x18;
            puVar7[3] = 0;
            cVar2 = *pcVar6;
            if (cVar2 == '\0') {
              iVar14 = 0;
              lVar10 = 0;
            }
            else {
              lVar11 = 1;
              do {
                lVar10 = lVar11;
                if ((byte)(cVar2 + 0x9fU) < 0x1a) {
                  cVar2 = cVar2 + -0x20;
                }
                puVar7[lVar10 + 3] = cVar2;
                iVar14 = (int)lVar10;
                cVar2 = pcVar6[lVar10];
                lVar11 = lVar10 + 1;
              } while (cVar2 != '\0');
            }
            puVar7[lVar10 + 4] = 0xff;
            puVar7[lVar10 + 5] = 0xf0;
            uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))
                              (*(long **)(param_1 + 8),puVar7,iVar14 + 6);
            *(undefined4 *)(param_1 + 100) = uVar3;
            puVar7[lVar10 + 4] = 0;
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE SEND");
            uVar5 = FUN_0012292d("client:\tSB TTYPE IS %s",puVar7 + 4);
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
            FUN_00122b5a(uVar5);
            FUN_00122b5a(puVar7);
          }
          else {
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),"server:\tSB TTYPE <something weird>\r\n");
          }
        }
      }
      else if ((iVar14 == 0x24) || (iVar14 == 0x27)) {
        pcVar6 = *(char **)(param_1 + 0x78);
        pcVar8 = pcVar6 + *(int *)(param_1 + 0x70);
        if ((pcVar6 < pcVar8) && (*pcVar6 == '\x01')) {
          uVar5 = FUN_0012b347();
          uVar5 = FUN_0012292d("server:\tSB %s SEND",uVar5);
          FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
          FUN_00122b5a(uVar5);
          local_58 = true;
          local_60 = false;
          if (*(int *)(param_1 + 0x6c) == 0x24) {
            iVar14 = FUN_0011558e(*(undefined8 *)(param_1 + 0x90),0x37);
            local_58 = iVar14 != 0;
            local_60 = !local_58;
            pcVar6 = pcVar6 + 1;
            if (pcVar6 < pcVar8) {
              do {
                cVar2 = *pcVar6;
                if (cVar2 == '\0') {
                  local_58 = true;
                  local_60 = false;
                }
                else {
                  if (cVar2 == '\x01') {
                    local_58 = false;
                  }
                  if (cVar2 == '\x01') {
                    local_60 = true;
                  }
                }
                pcVar6 = pcVar6 + 1;
              } while (pcVar8 != pcVar6);
            }
          }
          pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);
          if (pcVar8 == (char *)0x0) {
            iVar14 = 0x14;
          }
          else {
            iVar14 = 0x14;
            do {
              lVar10 = -1;
              pcVar6 = local_48;
              do {
                if (lVar10 == 0) break;
                lVar10 = lVar10 + -1;
                cVar2 = *pcVar6;
                pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
              } while (cVar2 != '\0');
              lVar11 = -1;
              do {
                if (lVar11 == 0) break;
                lVar11 = lVar11 + -1;
                cVar2 = *pcVar8;
                pcVar8 = pcVar8 + (ulong)bVar17 * -2 + 1;
              } while (cVar2 != '\0');
              iVar14 = (iVar14 - (int)lVar10) + -1 + ~(uint)lVar11;
              pcVar8 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)
              ;
            } while (pcVar8 != (char *)0x0);
          }
          pcVar8 = (char *)FUN_00127e35(*(undefined8 *)(param_1 + 0x90));
          if (pcVar8 != (char *)0x0) {
            lVar10 = -1;
            pcVar6 = pcVar8;
            do {
              if (lVar10 == 0) break;
              lVar10 = lVar10 + -1;
              cVar2 = *pcVar6;
              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
            } while (cVar2 != '\0');
            iVar14 = iVar14 + 5 + ~(uint)lVar10;
          }
          puVar7 = (undefined1 *)FUN_001222ee((long)iVar14,1);
          *puVar7 = 0xff;
          puVar7[1] = 0xfa;
          puVar7[2] = (char)*(undefined4 *)(param_1 + 0x6c);
          puVar7[3] = 0;
          pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);
          if (pcVar6 == (char *)0x0) {
            iVar14 = 4;
          }
          else {
            iVar14 = 4;
            do {
              iVar12 = iVar14 + 1;
              puVar7[iVar14] = local_60;
              cVar2 = *local_48;
              if (cVar2 != '\0') {
                lVar10 = (long)(iVar14 + 2);
                do {
                  iVar12 = (int)lVar10;
                  puVar7[lVar10 + -1] = cVar2;
                  lVar10 = lVar10 + 1;
                  cVar2 = local_48[lVar10 + (-2 - (long)iVar14)];
                } while (cVar2 != '\0');
              }
              iVar14 = iVar12 + 1;
              puVar7[iVar12] = local_58;
              cVar2 = *pcVar6;
              if (cVar2 != '\0') {
                lVar10 = (long)(iVar12 + 2);
                do {
                  iVar14 = (int)lVar10;
                  puVar7[lVar10 + -1] = cVar2;
                  lVar10 = lVar10 + 1;
                  cVar2 = pcVar6[lVar10 + (-2 - (long)iVar12)];
                } while (cVar2 != '\0');
              }
              pcVar6 = (char *)FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48)
              ;
            } while (pcVar6 != (char *)0x0);
          }
          iVar12 = iVar14;
          if (pcVar8 != (char *)0x0) {
            puVar7[iVar14] = local_60;
            puVar7[iVar14 + 1] = 0x55;
            puVar7[iVar14 + 2] = 0x53;
            puVar7[iVar14 + 3] = 0x45;
            puVar7[iVar14 + 4] = 0x52;
            iVar12 = iVar14 + 6;
            puVar7[iVar14 + 5] = local_58;
            cVar2 = *pcVar8;
            if (cVar2 != '\0') {
              lVar10 = (long)(iVar14 + 7);
              do {
                iVar12 = (int)lVar10;
                puVar7[lVar10 + -1] = cVar2;
                lVar10 = lVar10 + 1;
                cVar2 = pcVar8[lVar10 + (-7 - (long)iVar14)];
              } while (cVar2 != '\0');
            }
          }
          puVar7[iVar12] = 0xff;
          puVar7[iVar12 + 1] = 0xf0;
          uVar3 = (**(code **)(**(long **)(param_1 + 8) + 0x10))
                            (*(long **)(param_1 + 8),puVar7,iVar12 + 2);
          *(undefined4 *)(param_1 + 100) = uVar3;
          if (iVar12 + 2 == 6) {
            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));
            uVar5 = FUN_0012292d("client:\tSB %s IS <nothing>",uVar5);
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
            FUN_00122b5a(uVar5);
          }
          else {
            uVar5 = FUN_0012b347(*(undefined4 *)(param_1 + 0x6c));
            uVar5 = FUN_0012292d("client:\tSB %s IS:",uVar5);
            FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
            FUN_00122b5a(uVar5);
            lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,0,&local_48);
            while (lVar10 != 0) {
              uVar5 = FUN_0012292d("\t%s=%s",local_48,lVar10);
              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
              FUN_00122b5a(uVar5);
              lVar10 = FUN_001158c4(*(undefined8 *)(param_1 + 0x90),0x33,local_48,&local_48);
            }
            if (pcVar8 != (char *)0x0) {
              uVar5 = FUN_0012292d("\tUSER=%s",pcVar8);
              FUN_0014a676(*(undefined8 *)(param_1 + 0x18),uVar5);
              FUN_00122b5a(uVar5);
            }
          }
          FUN_00122b5a(puVar7);
          FUN_00122b5a(pcVar8);
        }
      }
      *(undefined4 *)(param_1 + 0x88) = 0;
      goto switchD_0012c4c9_caseD_a;
    }
    break;
  default:
    goto switchD_0012c4c9_caseD_a;
  }
  if (*(int *)(param_1 + 0x80) <= *(int *)(param_1 + 0x70)) {
    iVar14 = *(int *)(param_1 + 0x80) + 0x400;
    *(int *)(param_1 + 0x80) = iVar14;
    uVar5 = FUN_001226ba(*(undefined8 *)(param_1 + 0x78),(long)iVar14,1);
    *(undefined8 *)(param_1 + 0x78) = uVar5;
  }
  iVar14 = *(int *)(param_1 + 0x70);
  *(int *)(param_1 + 0x70) = iVar14 + 1;
  *(byte *)(*(long *)(param_1 + 0x78) + (long)iVar14) = bVar1;
  *(undefined4 *)(param_1 + 0x88) = 7;
  goto switchD_0012c4c9_caseD_a;
}

