
int verify_ssh_host_key(void *frontend,char *host,int port,char *keytype,char *keystr,
                       char *fingerprint,_func_void_void_ptr_int *callback,void *ctx)

{
  cc_t cVar1;
  cc_t cVar2;
  cc_t cVar3;
  undefined *puVar4;
  undefined *puVar5;
  termios *ptVar6;
  termios *ptVar7;
  int iVar8;
  int iVar9;
  termios *ptVar10;
  uint *puVar11;
  termios *ptVar12;
  uint *puVar13;
  uint *puVar14;
  undefined4 uVar15;
  tcflag_t tVar16;
  uint uVar17;
  termios *ptVar18;
  undefined1 *puVar19;
  tcflag_t tVar20;
  undefined1 *puVar21;
  uint uVar22;
  undefined *puVar23;
  termios *len;
  uint *puVar24;
  uint *puVar25;
  tcflag_t tVar26;
  uint uVar27;
  int *piVar28;
  int *piVar29;
  undefined4 *puVar30;
  undefined4 *puVar31;
  undefined *puVar32;
  code *pcVar33;
  code *pcVar34;
  termios tStack_458;
  int iStack_424;
  int *piStack_41c;
  undefined4 *puStack_418;
  code *pcStack_414;
  undefined4 uStack_400;
  code *pcStack_3f8;
  undefined4 *puStack_3ec;
  termios tStack_3e8;
  uint auStack_3b4 [26];
  byte abStack_34c [32];
  int iStack_32c;
  int *piStack_324;
  undefined4 *puStack_320;
  int iStack_31c;
  uint *puStack_318;
  code *pcStack_314;
  uint *puStack_300;
  code *pcStack_2f8;
  undefined1 *puStack_2f0;
  uint *puStack_2ec;
  termios tStack_2e8;
  uint auStack_2b4 [26];
  byte abStack_24c [32];
  int iStack_22c;
  int *piStack_224;
  undefined4 *puStack_220;
  int iStack_21c;
  uint *puStack_218;
  code *pcStack_214;
  termios *ptStack_200;
  undefined *puStack_1f8;
  undefined1 *puStack_1f0;
  termios *ptStack_1ec;
  termios tStack_1e8;
  uint auStack_1b4 [26];
  byte abStack_14c [32];
  int iStack_12c;
  undefined *puStack_124;
  char *pcStack_120;
  char *pcStack_11c;
  int iStack_118;
  code *pcStack_114;
  char *local_100;
  termios cf;
  termios oldmode;
  termios newmode;
  char line [32];
  
  puVar4 = PTR___stack_chk_guard_000b2f04;
  iVar8 = *(int *)PTR___stack_chk_guard_000b2f04;
  puVar19 = (undefined1 *)port;
  ptVar18 = (termios *)keytype;
  iVar9 = verify_host_key(host,port,keytype,keystr);
  puVar32 = PTR_DAT_000b2398;
  if (iVar9 != 0) {
    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {
      if (iVar9 == 2) goto LAB_0007fb6c;
LAB_0007f9e8:
      if (iVar9 == 1) {
        puVar19 = (undefined1 *)0x1;
        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;
        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
          local_100 = fingerprint;
          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);
          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);
          iVar9 = 0;
          goto LAB_0007fb30;
        }
        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;
        goto LAB_0007fa1c;
      }
    }
    else {
      premsg(&cf);
      if (iVar9 != 2) goto LAB_0007f9e8;
LAB_0007fb6c:
      puVar19 = (undefined1 *)0x1;
      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;
      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
        local_100 = fingerprint;
        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);
        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);
        iVar9 = 0;
        goto LAB_0007fb30;
      }
      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;
LAB_0007fa1c:
      puVar5 = PTR_stderr_000b2f1c;
      local_100 = fingerprint;
      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);
      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);
    }
    ptVar18 = &oldmode;
    (*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);
    len = &newmode;
    ptVar6 = ptVar18;
    ptVar7 = len;
    do {
      ptVar12 = ptVar7;
      ptVar10 = ptVar6;
      tVar26 = ptVar10->c_oflag;
      tVar20 = ptVar10->c_cflag;
      tVar16 = ptVar10->c_lflag;
      ptVar12->c_iflag = ptVar10->c_iflag;
      ptVar12->c_oflag = tVar26;
      ptVar12->c_cflag = tVar20;
      ptVar12->c_lflag = tVar16;
      ptVar6 = (termios *)&ptVar10->c_line;
      ptVar7 = (termios *)&ptVar12->c_line;
    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);
    cVar1 = ptVar10->c_cc[0];
    cVar2 = ptVar10->c_cc[1];
    cVar3 = ptVar10->c_cc[2];
    puVar19 = &DAT_0000540e;
    ptVar12->c_line = ptVar10->c_line;
    ptVar12->c_cc[0] = cVar1;
    ptVar12->c_cc[1] = cVar2;
    ptVar12->c_cc[2] = cVar3;
    newmode.c_lflag = newmode.c_lflag | 0xb;
    (*(code *)PTR_tcsetattr_000b2e98)(0);
    line[0] = '\0';
    block_and_read((int)line,puVar19,(size_t)len);
    puVar19 = &DAT_0000540e;
    (*(code *)PTR_tcsetattr_000b2e98)(0);
    if ((byte)line[0] < 0xe) {
      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {
        ptVar18 = (termios *)&DAT_00000016;
        puVar19 = (undefined1 *)0x1;
        (*(code *)PTR_fwrite_000b2eb0)
                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)
        ;
        iVar9 = *(int *)(puVar32 + 0x36b4);
        if (iVar9 != 0) {
          postmsg(&cf);
          iVar9 = 0;
        }
        goto LAB_0007fb30;
      }
    }
    else if ((line[0] & 0xdfU) == 0x59) {
      puVar19 = (undefined1 *)port;
      ptVar18 = (termios *)keytype;
      store_host_key(host,port,keytype,keystr);
    }
    if (*(int *)(puVar32 + 0x36b4) != 0) {
      postmsg(&cf);
    }
  }
  iVar9 = 1;
LAB_0007fb30:
  if (iVar8 == *(int *)puVar4) {
    return iVar9;
  }
  pcVar33 = askalg;
  puVar32 = PTR___stack_chk_fail_000b2ed8;
  (*(code *)PTR___stack_chk_fail_000b2ed8)();
  puStack_1f8 = puVar32 + 0x3a6f4;
  puStack_124 = puVar4;
  iVar8 = *(int *)(puVar32 + 0x3271c);
  piVar28 = *(int **)(puVar32 + 0x33288);
  iStack_12c = *piVar28;
  ptStack_200 = ptVar18;
  pcStack_120 = keytype;
  pcStack_11c = host;
  iStack_118 = port;
  pcStack_114 = pcVar33;
  if (*(int *)(iVar8 + 0x36b4) != 0) {
    puStack_1f0 = puVar19;
    ptStack_1ec = ptVar18;
    premsg(&tStack_1e8);
    ptStack_200 = ptStack_1ec;
    puVar19 = puStack_1f0;
  }
  puVar21 = (undefined1 *)0x1;
  puVar30 = *(undefined4 **)(puStack_1f8 + -0x7454);
  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {
    port = (int)auStack_1b4;
    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);
    (**(code **)(puStack_1f8 + -0x7450))(*puVar30);
    (**(code **)(puStack_1f8 + -0x760c))(0,port);
    puVar24 = auStack_1b4 + 0xd;
    puVar25 = (uint *)port;
    puVar14 = puVar24;
    do {
      puVar11 = puVar25 + 4;
      puVar13 = puVar14 + 4;
      uVar27 = puVar25[1];
      uVar22 = puVar25[2];
      uVar17 = puVar25[3];
      *puVar14 = *puVar25;
      puVar14[1] = uVar27;
      puVar14[2] = uVar22;
      puVar14[3] = uVar17;
      puVar25 = puVar11;
      puVar14 = puVar13;
    } while (puVar11 != auStack_1b4 + 0xc);
    puVar19 = &DAT_0000540e;
    pcVar33 = *(code **)(puStack_1f8 + -0x74d8);
    *puVar13 = *puVar11;
    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;
    (*pcVar33)(0);
    abStack_14c[0] = 0;
    block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);
    puVar21 = &DAT_0000540e;
    puVar25 = (uint *)port;
    (**(code **)(puStack_1f8 + -0x74d8))(0);
    if ((abStack_14c[0] & 0xdf) == 0x59) {
      if (*(int *)(iVar8 + 0x36b4) == 0) {
        iVar9 = 1;
      }
      else {
        postmsg(&tStack_1e8);
        iVar9 = 1;
      }
    }
    else {
      puVar25 = (uint *)&DAT_00000016;
      puVar21 = (undefined1 *)0x1;
      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)
      ;
      iVar9 = *(int *)(iVar8 + 0x36b4);
      if (iVar9 != 0) {
        postmsg(&tStack_1e8);
        iVar9 = 0;
      }
    }
  }
  else {
    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);
    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);
    iVar9 = 0;
  }
  if (iStack_12c == *piVar28) {
    return iVar9;
  }
  pcVar33 = *(code **)(puStack_1f8 + -0x7498);
  pcVar34 = askhk;
  (*pcVar33)();
  pcStack_2f8 = pcVar33 + 0x3a4d0;
  iVar9 = *(int *)(pcVar33 + 0x324f8);
  piVar29 = *(int **)(pcVar33 + 0x33064);
  iStack_22c = *piVar29;
  puStack_300 = puVar25;
  piStack_224 = piVar28;
  puStack_220 = puVar30;
  iStack_21c = iVar8;
  puStack_218 = (uint *)port;
  pcStack_214 = pcVar34;
  if (*(int *)(iVar9 + 0x36b4) != 0) {
    puStack_2f0 = puVar21;
    puStack_2ec = puVar25;
    premsg(&tStack_2e8);
    puStack_300 = puStack_2ec;
    puVar21 = puStack_2f0;
  }
  puVar30 = (undefined4 *)&DAT_00000001;
  puVar31 = *(undefined4 **)(pcStack_2f8 + -0x7454);
  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {
    port = (int)auStack_2b4;
    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);
    (**(code **)(pcStack_2f8 + -0x7450))(*puVar31);
    (**(code **)(pcStack_2f8 + -0x760c))(0,port);
    puVar24 = auStack_2b4 + 0xd;
    puVar25 = (uint *)port;
    puVar14 = puVar24;
    do {
      puVar11 = puVar25 + 4;
      puVar13 = puVar14 + 4;
      uVar27 = puVar25[1];
      uVar22 = puVar25[2];
      uVar17 = puVar25[3];
      *puVar14 = *puVar25;
      puVar14[1] = uVar27;
      puVar14[2] = uVar22;
      puVar14[3] = uVar17;
      puVar25 = puVar11;
      puVar14 = puVar13;
    } while (puVar11 != auStack_2b4 + 0xc);
    puVar19 = &DAT_0000540e;
    pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);
    *puVar13 = *puVar11;
    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;
    (*pcVar33)(0);
    abStack_24c[0] = 0;
    block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);
    puVar30 = (undefined4 *)&DAT_0000540e;
    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);
    if ((abStack_24c[0] & 0xdf) == 0x59) {
      if (*(int *)(iVar9 + 0x36b4) == 0) {
        iVar8 = 1;
      }
      else {
        postmsg(&tStack_2e8);
        iVar8 = 1;
      }
    }
    else {
      puVar30 = (undefined4 *)&DAT_00000001;
      (**(code **)(pcStack_2f8 + -0x74c0))
                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);
      iVar8 = *(int *)(iVar9 + 0x36b4);
      if (iVar8 != 0) {
        postmsg(&tStack_2e8);
        iVar8 = 0;
      }
    }
  }
  else {
    (**(code **)(pcStack_2f8 + -0x75f4))
              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);
    iVar8 = 0;
  }
  if (iStack_22c == *piVar29) {
    return iVar8;
  }
  pcVar33 = *(code **)(pcStack_2f8 + -0x7498);
  pcVar34 = askappend;
  (*pcVar33)();
  pcStack_3f8 = pcVar33 + 0x3a2ac;
  iVar8 = *(int *)(pcVar33 + 0x322d4);
  piVar28 = *(int **)(pcVar33 + 0x32e40);
  iStack_32c = *piVar28;
  piStack_324 = piVar29;
  puStack_320 = puVar31;
  iStack_31c = iVar9;
  puStack_318 = (uint *)port;
  pcStack_314 = pcVar34;
  if (*(int *)(iVar8 + 0x36b4) != 0) {
    puStack_3ec = puVar30;
    premsg(&tStack_3e8);
    puVar30 = puStack_3ec;
  }
  puVar31 = *(undefined4 **)(pcStack_3f8 + -0x7454);
  uStack_400 = *puVar30;
  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {
    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);
    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);
    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);
    puVar24 = auStack_3b4 + 0xd;
    puVar25 = auStack_3b4;
    puVar14 = puVar24;
    do {
      puVar11 = puVar25 + 4;
      puVar13 = puVar14 + 4;
      uVar27 = puVar25[1];
      uVar22 = puVar25[2];
      uVar17 = puVar25[3];
      *puVar14 = *puVar25;
      puVar14[1] = uVar27;
      puVar14[2] = uVar22;
      puVar14[3] = uVar17;
      puVar25 = puVar11;
      puVar14 = puVar13;
    } while (puVar11 != auStack_3b4 + 0xc);
    puVar19 = &DAT_0000540e;
    pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);
    *puVar13 = *puVar11;
    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;
    (*pcVar33)(0);
    abStack_34c[0] = 0;
    block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);
    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);
    if (*(int *)(iVar8 + 0x36b4) != 0) {
      postmsg(&tStack_3e8);
    }
    if ((abStack_34c[0] & 0xdf) == 0x59) {
      uVar17 = 2;
    }
    else {
      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);
    }
  }
  else {
    (**(code **)(pcStack_3f8 + -0x75f4))
              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);
    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);
    uVar17 = 0;
  }
  if (iStack_32c != *piVar28) {
    pcVar33 = *(code **)(pcStack_3f8 + -0x7498);
    pcVar34 = old_keyfile_warning;
    (*pcVar33)();
    iVar8 = *(int *)(pcVar33 + 0x320dc);
    piVar29 = *(int **)(pcVar33 + 0x32c48);
    iStack_424 = *piVar29;
    piStack_41c = piVar28;
    puStack_418 = puVar31;
    pcStack_414 = pcVar34;
    if (*(int *)(iVar8 + 0x36b4) != 0) {
      premsg(&tStack_458);
    }
    ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);
    (**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));
    if (*(int *)(iVar8 + 0x36b4) != 0) {
      ptVar18 = &tStack_458;
      postmsg(ptVar18);
    }
    iVar8 = *piVar29;
    if (iStack_424 != iVar8) {
      pcVar33 = *(code **)(pcVar33 + 0x32c1c);
      (*pcVar33)();
      iVar8 = *(int *)(pcVar33 + 0x3201c);
      *(termios **)(iVar8 + 0x36ec) = ptVar18;
      return iVar8;
    }
    return iVar8;
  }
  return uVar17;
}



uint verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,
                        undefined4 param_5,undefined4 param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  undefined4 uVar7;
  uint uVar8;
  uint *puVar9;
  uint uVar10;
  undefined1 *puVar11;
  undefined *puVar12;
  uint *puVar13;
  uint uVar14;
  int *piVar15;
  int *piVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  int iVar19;
  undefined *puVar20;
  code *pcVar21;
  code *pcVar22;
  undefined1 auStack_458 [52];
  uint uStack_424;
  int *piStack_41c;
  undefined4 *puStack_418;
  code *pcStack_414;
  undefined4 uStack_400;
  code *pcStack_3f8;
  undefined4 *puStack_3ec;
  undefined1 auStack_3e8 [52];
  uint auStack_3b4 [26];
  byte abStack_34c [32];
  int iStack_32c;
  int *piStack_324;
  undefined4 *puStack_320;
  int iStack_31c;
  uint *puStack_318;
  code *pcStack_314;
  uint *puStack_300;
  code *pcStack_2f8;
  undefined1 *puStack_2f0;
  uint *puStack_2ec;
  undefined1 auStack_2e8 [52];
  uint auStack_2b4 [26];
  byte abStack_24c [32];
  int iStack_22c;
  int *piStack_224;
  undefined4 *puStack_220;
  int iStack_21c;
  uint *puStack_218;
  code *pcStack_214;
  uint *puStack_200;
  undefined *puStack_1f8;
  uint *puStack_1f0;
  uint *puStack_1ec;
  undefined1 auStack_1e8 [52];
  uint auStack_1b4 [26];
  byte abStack_14c [32];
  int iStack_12c;
  undefined *puStack_124;
  uint *puStack_120;
  undefined4 uStack_11c;
  uint *puStack_118;
  code *pcStack_114;
  undefined4 local_100;
  undefined1 auStack_e8 [52];
  uint local_b4 [26];
  byte local_4c [32];
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_000b2f04;
  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;
  puVar9 = param_3;
  puVar13 = param_4;
  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);
  puVar20 = PTR_DAT_000b2398;
  if (iVar3 != 0) {
    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {
      if (iVar3 == 2) goto LAB_0007fb6c;
LAB_0007f9e8:
      if (iVar3 == 1) {
        puVar9 = (uint *)0x1;
        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;
        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
          local_100 = param_6;
          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);
          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);
          uVar8 = 0;
          goto LAB_0007fb30;
        }
        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;
        goto LAB_0007fa1c;
      }
    }
    else {
      FUN_0007f63c(auStack_e8);
      if (iVar3 != 2) goto LAB_0007f9e8;
LAB_0007fb6c:
      puVar9 = (uint *)0x1;
      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;
      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
        local_100 = param_6;
        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);
        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);
        uVar8 = 0;
        goto LAB_0007fb30;
      }
      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;
LAB_0007fa1c:
      puVar2 = PTR_stderr_000b2f1c;
      local_100 = param_6;
      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);
      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);
    }
    puVar13 = local_b4;
    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);
    puVar9 = puVar13;
    puVar5 = local_b4 + 0xd;
    do {
      puVar4 = puVar9 + 4;
      puVar6 = puVar5 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar5 = *puVar9;
      puVar5[1] = uVar14;
      puVar5[2] = uVar10;
      puVar5[3] = uVar8;
      puVar9 = puVar4;
      puVar5 = puVar6;
    } while (puVar4 != local_b4 + 0xc);
    *puVar6 = *puVar4;
    local_b4[0x10] = local_b4[0x10] | 0xb;
    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);
    local_4c[0] = 0;
    FUN_0007f6a8(local_4c);
    puVar9 = (uint *)&DAT_0000540e;
    (*(code *)PTR_tcsetattr_000b2e98)(0);
    if (local_4c[0] < 0xe) {
      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {
        puVar13 = (uint *)&DAT_00000016;
        puVar9 = (uint *)0x1;
        (*(code *)PTR_fwrite_000b2eb0)
                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)
        ;
        uVar8 = *(uint *)(puVar20 + 0x36b4);
        if (uVar8 != 0) {
          FUN_0007f688(auStack_e8);
          uVar8 = 0;
        }
        goto LAB_0007fb30;
      }
    }
    else if ((local_4c[0] & 0xdf) == 0x59) {
      puVar9 = param_3;
      puVar13 = param_4;
      store_host_key(param_2,param_3,param_4,param_5);
    }
    if (*(int *)(puVar20 + 0x36b4) != 0) {
      FUN_0007f688(auStack_e8);
    }
  }
  uVar8 = 1;
LAB_0007fb30:
  if (local_2c == *(int *)puVar1) {
    return uVar8;
  }
  pcVar21 = askalg;
  puVar20 = PTR___stack_chk_fail_000b2ed8;
  (*(code *)PTR___stack_chk_fail_000b2ed8)();
  puStack_1f8 = puVar20 + 0x3a6f4;
  puStack_124 = puVar1;
  iVar3 = *(int *)(puVar20 + 0x3271c);
  piVar15 = *(int **)(puVar20 + 0x33288);
  iStack_12c = *piVar15;
  puStack_200 = puVar13;
  puStack_120 = param_4;
  uStack_11c = param_2;
  puStack_118 = param_3;
  pcStack_114 = pcVar21;
  if (*(int *)(iVar3 + 0x36b4) != 0) {
    puStack_1f0 = puVar9;
    puStack_1ec = puVar13;
    FUN_0007f63c(auStack_1e8);
    puStack_200 = puStack_1ec;
    puVar9 = puStack_1f0;
  }
  puVar11 = (undefined1 *)0x1;
  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);
  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {
    param_3 = auStack_1b4;
    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);
    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);
    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);
    puVar9 = param_3;
    puVar13 = auStack_1b4 + 0xd;
    do {
      puVar5 = puVar9 + 4;
      puVar4 = puVar13 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar13 = *puVar9;
      puVar13[1] = uVar14;
      puVar13[2] = uVar10;
      puVar13[3] = uVar8;
      puVar9 = puVar5;
      puVar13 = puVar4;
    } while (puVar5 != auStack_1b4 + 0xc);
    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);
    *puVar4 = *puVar5;
    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;
    (*pcVar21)(0,&DAT_0000540e);
    abStack_14c[0] = 0;
    FUN_0007f6a8(abStack_14c);
    puVar11 = &DAT_0000540e;
    puVar13 = param_3;
    (**(code **)(puStack_1f8 + -0x74d8))(0);
    if ((abStack_14c[0] & 0xdf) == 0x59) {
      if (*(int *)(iVar3 + 0x36b4) == 0) {
        uVar8 = 1;
      }
      else {
        FUN_0007f688(auStack_1e8);
        uVar8 = 1;
      }
    }
    else {
      puVar13 = (uint *)&DAT_00000016;
      puVar11 = (undefined1 *)0x1;
      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)
      ;
      uVar8 = *(uint *)(iVar3 + 0x36b4);
      if (uVar8 != 0) {
        FUN_0007f688(auStack_1e8);
        uVar8 = 0;
      }
    }
  }
  else {
    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);
    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);
    uVar8 = 0;
  }
  if (iStack_12c == *piVar15) {
    return uVar8;
  }
  pcVar21 = *(code **)(puStack_1f8 + -0x7498);
  pcVar22 = askhk;
  (*pcVar21)();
  pcStack_2f8 = pcVar21 + 0x3a4d0;
  iVar19 = *(int *)(pcVar21 + 0x324f8);
  piVar16 = *(int **)(pcVar21 + 0x33064);
  iStack_22c = *piVar16;
  puStack_300 = puVar13;
  piStack_224 = piVar15;
  puStack_220 = puVar17;
  iStack_21c = iVar3;
  puStack_218 = param_3;
  pcStack_214 = pcVar22;
  if (*(int *)(iVar19 + 0x36b4) != 0) {
    puStack_2f0 = puVar11;
    puStack_2ec = puVar13;
    FUN_0007f63c(auStack_2e8);
    puStack_300 = puStack_2ec;
    puVar11 = puStack_2f0;
  }
  puVar17 = (undefined4 *)0x1;
  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);
  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {
    param_3 = auStack_2b4;
    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);
    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);
    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);
    puVar9 = param_3;
    puVar13 = auStack_2b4 + 0xd;
    do {
      puVar5 = puVar9 + 4;
      puVar4 = puVar13 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar13 = *puVar9;
      puVar13[1] = uVar14;
      puVar13[2] = uVar10;
      puVar13[3] = uVar8;
      puVar9 = puVar5;
      puVar13 = puVar4;
    } while (puVar5 != auStack_2b4 + 0xc);
    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);
    *puVar4 = *puVar5;
    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;
    (*pcVar21)(0,&DAT_0000540e);
    abStack_24c[0] = 0;
    FUN_0007f6a8(abStack_24c);
    puVar17 = (undefined4 *)&DAT_0000540e;
    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);
    if ((abStack_24c[0] & 0xdf) == 0x59) {
      if (*(int *)(iVar19 + 0x36b4) == 0) {
        uVar8 = 1;
      }
      else {
        FUN_0007f688(auStack_2e8);
        uVar8 = 1;
      }
    }
    else {
      puVar17 = (undefined4 *)0x1;
      (**(code **)(pcStack_2f8 + -0x74c0))
                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);
      uVar8 = *(uint *)(iVar19 + 0x36b4);
      if (uVar8 != 0) {
        FUN_0007f688(auStack_2e8);
        uVar8 = 0;
      }
    }
  }
  else {
    (**(code **)(pcStack_2f8 + -0x75f4))
              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);
    uVar8 = 0;
  }
  if (iStack_22c == *piVar16) {
    return uVar8;
  }
  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);
  pcVar22 = askappend;
  (*pcVar21)();
  pcStack_3f8 = pcVar21 + 0x3a2ac;
  iVar3 = *(int *)(pcVar21 + 0x322d4);
  piVar15 = *(int **)(pcVar21 + 0x32e40);
  iStack_32c = *piVar15;
  piStack_324 = piVar16;
  puStack_320 = puVar18;
  iStack_31c = iVar19;
  puStack_318 = param_3;
  pcStack_314 = pcVar22;
  if (*(int *)(iVar3 + 0x36b4) != 0) {
    puStack_3ec = puVar17;
    FUN_0007f63c(auStack_3e8);
    puVar17 = puStack_3ec;
  }
  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);
  uStack_400 = *puVar17;
  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {
    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);
    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);
    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);
    puVar9 = auStack_3b4;
    puVar13 = auStack_3b4 + 0xd;
    do {
      puVar5 = puVar9 + 4;
      puVar4 = puVar13 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar13 = *puVar9;
      puVar13[1] = uVar14;
      puVar13[2] = uVar10;
      puVar13[3] = uVar8;
      puVar9 = puVar5;
      puVar13 = puVar4;
    } while (puVar5 != auStack_3b4 + 0xc);
    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);
    *puVar4 = *puVar5;
    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;
    (*pcVar21)(0,&DAT_0000540e);
    abStack_34c[0] = 0;
    FUN_0007f6a8(abStack_34c);
    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);
    if (*(int *)(iVar3 + 0x36b4) != 0) {
      FUN_0007f688(auStack_3e8);
    }
    if ((abStack_34c[0] & 0xdf) == 0x59) {
      uVar8 = 2;
    }
    else {
      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);
    }
  }
  else {
    (**(code **)(pcStack_3f8 + -0x75f4))
              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);
    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);
    uVar8 = 0;
  }
  if (iStack_32c != *piVar15) {
    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);
    pcVar22 = old_keyfile_warning;
    (*pcVar21)();
    iVar3 = *(int *)(pcVar21 + 0x320dc);
    puVar9 = *(uint **)(pcVar21 + 0x32c48);
    uStack_424 = *puVar9;
    piStack_41c = piVar15;
    puStack_418 = puVar18;
    pcStack_414 = pcVar22;
    if (*(int *)(iVar3 + 0x36b4) != 0) {
      FUN_0007f63c(auStack_458);
    }
    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);
    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));
    if (*(int *)(iVar3 + 0x36b4) != 0) {
      puVar11 = auStack_458;
      FUN_0007f688();
    }
    uVar8 = *puVar9;
    if (uStack_424 != uVar8) {
      pcVar21 = *(code **)(pcVar21 + 0x32c1c);
      (*pcVar21)();
      uVar8 = *(uint *)(pcVar21 + 0x3201c);
      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;
      return uVar8;
    }
    return uVar8;
  }
  return uVar8;
}


lui gp,0x4
addiu gp,gp,-0x55e4
addu gp,gp,t9
addiu sp,sp,-0x110
lw t9,-0x7718(gp)
sw s0,0xec(sp)
sw s4,0xfc(sp)
lw s0,-0x746c(gp)
lw s4,0x120(sp)
sw s3,0xf8(sp)
or s3,a2,zero
sw s2,0xf4(sp)
or s2,a1,zero
sw gp,0x18(sp)
or a2,a3,zero
sw s6,0x104(sp)
or a1,s3,zero
sw s1,0xf0(sp)
or a0,s2,zero
sw ra,0x10c(sp)
or s1,a3,zero
sw s7,0x108(sp)
or a3,s4,zero
sw s5,0x100(sp)
lw v0,0x0(s0)
lw s6,0x124(sp)
sw v0,0xe4(sp)
bal 0x0008a154
_nop
beq v0,zero,0x0007fb2c
_lw gp,0x18(sp)
lw s5,-0x7fd8(gp)
lw v1,0x36b4(s5)
bne v1,zero,0x0007fb98
_li v1,0x2
beq v0,v1,0x0007fb68
_nop
li v1,0x1
bne v0,v1,0x0007fa38
_lw v0,-0x7bc8(gp)
li a1,0x1
lw s7,-0x7454(gp)
lw t9,-0x75f4(gp)
lw v0,0x0(v0)
bne v0,zero,0x0007fc1c
_lw a0,0x0(s7)
lw a2,-0x7f80(gp)
or a3,s1,zero
sw s6,0x10(sp)
addiu a2,a2,-0xe40
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7450(gp)
jalr t9
_lw a0,0x0(s7)
lw gp,0x18(sp)
lw t9,-0x760c(gp)
addiu s6,sp,0x5c
or a0,zero,zero
jalr t9
_or a1,s6,zero
addiu a2,sp,0x90
lw gp,0x18(sp)
addiu t1,sp,0x8c
or v0,s6,zero
or v1,a2,zero
lw t0,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a3,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw t0,-0x10(v1)
sw a3,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t1,0x0007fa60
_sw a0,-0x4(v1)
lw v0,0x0(v0)
li a1,0x540e
lw t9,-0x74d8(gp)
or a0,zero,zero
sw v0,0x0(v1)
lw v0,0x9c(sp)
ori v0,v0,0xb
jalr t9
_sw v0,0x9c(sp)
addiu a0,sp,0xc4
lw gp,0x18(sp)
lw t9,-0x7f58(gp)
addiu t9,t9,-0x958
bal 0x0007f6a8
_sb zero,0xc4(sp)
or a0,zero,zero
lw gp,0x18(sp)
li a1,0x540e
lw t9,-0x74d8(gp)
jalr t9
_or a2,s6,zero
lb v0,0xc4(sp)
andi v1,v0,0xff
sltiu a0,v1,0xe
bne a0,zero,0x0007fbc4
_lw gp,0x18(sp)
li a0,-0x21
li v1,0x59
and v0,v0,a0
bne v0,v1,0x0007fb20
_lw t9,-0x7968(gp)
or a3,s4,zero
or a2,s1,zero
or a1,s3,zero
bal 0x0008a43c
_or a0,s2,zero
lw gp,0x18(sp)
lw v0,0x36b4(s5)
bne v0,zero,0x0007fc5c
_lw t9,-0x7f58(gp)
li v0,0x1
lw a0,0xe4(sp)
lw v1,0x0(s0)
bne a0,v1,0x0007fc70
_lw ra,0x10c(sp)
lw s7,0x108(sp)
lw s6,0x104(sp)
lw s5,0x100(sp)
lw s4,0xfc(sp)
lw s3,0xf8(sp)
lw s2,0xf4(sp)
lw s1,0xf0(sp)
lw s0,0xec(sp)
jr ra
_addiu sp,sp,0x110
lw v0,-0x7bc8(gp)
li a1,0x1
lw s7,-0x7454(gp)
lw t9,-0x75f4(gp)
lw v0,0x0(v0)
bne v0,zero,0x0007fc3c
_lw a0,0x0(s7)
lw a2,-0x7f80(gp)
or a3,s1,zero
sw s6,0x10(sp)
b 0x0007fa1c
_addiu a2,a2,-0xbe4
lw t9,-0x7f58(gp)
addiu a0,sp,0x28
addiu t9,t9,-0x9c4
bal 0x0007f63c
_sw v0,0x24(sp)
li v1,0x2
lw v0,0x24(sp)
bne v0,v1,0x0007f9e8
_lw gp,0x18(sp)
b 0x0007fb6c
_lw v0,-0x7bc8(gp)
li v0,0x2401
srlv v0,v0,v1
ext v0,v0,0x0,0x1
beq v0,zero,0x0007fb20
_lw v0,-0x7454(gp)
li a2,0x16
lw a0,-0x7f80(gp)
li a1,0x1
lw t9,-0x74c0(gp)
lw a3,0x0(v0)
jalr t9
_addiu a0,a0,-0xe58
lw v0,0x36b4(s5)
beq v0,zero,0x0007fb30
_lw gp,0x18(sp)
lw t9,-0x7f58(gp)
addiu t9,t9,-0x978
bal 0x0007f688
_addiu a0,sp,0x28
or v0,zero,zero
b 0x0007fb30
_lw gp,0x18(sp)
lw a2,-0x7f80(gp)
or a3,s1,zero
sw s6,0x10(sp)
jalr t9
_addiu a2,a2,-0xc90
or v0,zero,zero
b 0x0007fb30
_lw gp,0x18(sp)
lw a2,-0x7f80(gp)
or a3,s1,zero
sw s6,0x10(sp)
jalr t9
_addiu a2,a2,-0x94c
or v0,zero,zero
b 0x0007fb30
_lw gp,0x18(sp)
addiu t9,t9,-0x978
bal 0x0007f688
_addiu a0,sp,0x28
b 0x0007fb2c
_lw gp,0x18(sp)
lw t9,-0x7498(gp)
jalr t9
_nop
(translation_unit "uint verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}\n\n" (function_definition "uint verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}" type_identifier (function_declarator "verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined1 auStack_458 [52];" type_identifier (array_declarator "auStack_458 [52]" identifier [ number_literal ]) ;) (declaration "uint uStack_424;" type_identifier identifier ;) (declaration "int *piStack_41c;" primitive_type (pointer_declarator "*piStack_41c" * identifier) ;) (declaration "undefined4 *puStack_418;" type_identifier (pointer_declarator "*puStack_418" * identifier) ;) (declaration "code *pcStack_414;" type_identifier (pointer_declarator "*pcStack_414" * identifier) ;) (declaration "undefined4 uStack_400;" type_identifier identifier ;) (declaration "code *pcStack_3f8;" type_identifier (pointer_declarator "*pcStack_3f8" * identifier) ;) (declaration "undefined4 *puStack_3ec;" type_identifier (pointer_declarator "*puStack_3ec" * identifier) ;) (declaration "undefined1 auStack_3e8 [52];" type_identifier (array_declarator "auStack_3e8 [52]" identifier [ number_literal ]) ;) (declaration "uint auStack_3b4 [26];" type_identifier (array_declarator "auStack_3b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_34c [32];" type_identifier (array_declarator "abStack_34c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_32c;" primitive_type identifier ;) (declaration "int *piStack_324;" primitive_type (pointer_declarator "*piStack_324" * identifier) ;) (declaration "undefined4 *puStack_320;" type_identifier (pointer_declarator "*puStack_320" * identifier) ;) (declaration "int iStack_31c;" primitive_type identifier ;) (declaration "uint *puStack_318;" type_identifier (pointer_declarator "*puStack_318" * identifier) ;) (declaration "code *pcStack_314;" type_identifier (pointer_declarator "*pcStack_314" * identifier) ;) (declaration "uint *puStack_300;" type_identifier (pointer_declarator "*puStack_300" * identifier) ;) (declaration "code *pcStack_2f8;" type_identifier (pointer_declarator "*pcStack_2f8" * identifier) ;) (declaration "undefined1 *puStack_2f0;" type_identifier (pointer_declarator "*puStack_2f0" * identifier) ;) (declaration "uint *puStack_2ec;" type_identifier (pointer_declarator "*puStack_2ec" * identifier) ;) (declaration "undefined1 auStack_2e8 [52];" type_identifier (array_declarator "auStack_2e8 [52]" identifier [ number_literal ]) ;) (declaration "uint auStack_2b4 [26];" type_identifier (array_declarator "auStack_2b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_24c [32];" type_identifier (array_declarator "abStack_24c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_22c;" primitive_type identifier ;) (declaration "int *piStack_224;" primitive_type (pointer_declarator "*piStack_224" * identifier) ;) (declaration "undefined4 *puStack_220;" type_identifier (pointer_declarator "*puStack_220" * identifier) ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "uint *puStack_218;" type_identifier (pointer_declarator "*puStack_218" * identifier) ;) (declaration "code *pcStack_214;" type_identifier (pointer_declarator "*pcStack_214" * identifier) ;) (declaration "uint *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "undefined *puStack_1f8;" type_identifier (pointer_declarator "*puStack_1f8" * identifier) ;) (declaration "uint *puStack_1f0;" type_identifier (pointer_declarator "*puStack_1f0" * identifier) ;) (declaration "uint *puStack_1ec;" type_identifier (pointer_declarator "*puStack_1ec" * identifier) ;) (declaration "undefined1 auStack_1e8 [52];" type_identifier (array_declarator "auStack_1e8 [52]" identifier [ number_literal ]) ;) (declaration "uint auStack_1b4 [26];" type_identifier (array_declarator "auStack_1b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_14c [32];" type_identifier (array_declarator "abStack_14c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "undefined *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "uint *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "uint *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "code *pcStack_114;" type_identifier (pointer_declarator "*pcStack_114" * identifier) ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "undefined1 auStack_e8 [52];" type_identifier (array_declarator "auStack_e8 [52]" identifier [ number_literal ]) ;) (declaration "uint local_b4 [26];" type_identifier (array_declarator "local_b4 [26]" identifier [ number_literal ]) ;) (declaration "byte local_4c [32];" type_identifier (array_declarator "local_4c [32]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000b2f04;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000b2f04" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b2f04;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b2f04" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b2f04" * (cast_expression "(int *)PTR___stack_chk_guard_000b2f04" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = param_4;" (assignment_expression "puVar13 = param_4" identifier = identifier) ;) (expression_statement "iVar3 = verify_host_key(param_2,param_3,param_4,param_5);" (assignment_expression "iVar3 = verify_host_key(param_2,param_3,param_4,param_5)" identifier = (call_expression "verify_host_key(param_2,param_3,param_4,param_5)" identifier (argument_list "(param_2,param_3,param_4,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar20 = PTR_DAT_000b2398;" (assignment_expression "puVar20 = PTR_DAT_000b2398" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }" { (if_statement "if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0" (pointer_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4)" * (cast_expression "(int *)(PTR_DAT_000b2398 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b2398 + 0x36b4)" ( (binary_expression "PTR_DAT_000b2398 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }" { (if_statement "if (iVar3 == 2) goto LAB_0007fb6c;" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007fb6c;" goto statement_identifier ;)) (labeled_statement "LAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" statement_identifier : (if_statement "if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" { (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }" if (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" ( (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" * (cast_expression "(int *)PTR_console_batch_mode_000b27a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }" { (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);" (assignment_expression "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90)" identifier = (cast_expression "(uint *)(PTR_s_entropy_source_000b23f0 + -0xc90)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0xc90)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0xc90" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,1,puVar13,param_4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) (expression_statement "puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;" (assignment_expression "puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40" identifier = (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe40" identifier + number_literal)) ;) (goto_statement "goto LAB_0007fa1c;" goto statement_identifier ;) }))) }) (else_clause "else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" else (compound_statement "{\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" { (expression_statement "FUN_0007f63c(auStack_e8);" (call_expression "FUN_0007f63c(auStack_e8)" identifier (argument_list "(auStack_e8)" ( identifier ))) ;) (if_statement "if (iVar3 != 2) goto LAB_0007f9e8;" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0007f9e8;" goto statement_identifier ;)) (labeled_statement "LAB_0007fb6c:\n      puVar9 = (uint *)0x1;" statement_identifier : (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }" if (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" ( (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" * (cast_expression "(int *)PTR_console_batch_mode_000b27a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }" { (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);" (assignment_expression "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c)" identifier = (cast_expression "(uint *)(PTR_s_entropy_source_000b23f0 + -0x94c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0x94c)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0x94c" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,1,puVar13,param_4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) (expression_statement "puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;" (assignment_expression "puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4" identifier = (binary_expression "PTR_s_entropy_source_000b23f0 + -0xbe4" identifier + number_literal)) ;) (labeled_statement "LAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;" statement_identifier : (expression_statement "puVar2 = PTR_stderr_000b2f1c;" (assignment_expression "puVar2 = PTR_stderr_000b2f1c" identifier = identifier) ;)) (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,1,puVar12,param_4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);" (call_expression "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2)" (parenthesized_expression "(*(code *)PTR_fflush_000b2f20)" ( (pointer_expression "*(code *)PTR_fflush_000b2f20" * (cast_expression "(code *)PTR_fflush_000b2f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar2)" ( (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) }))) (expression_statement "puVar13 = local_b4;" (assignment_expression "puVar13 = local_b4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);" (call_expression "(*(code *)PTR_tcgetattr_000b2d64)(0,puVar13)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000b2d64)" ( (pointer_expression "*(code *)PTR_tcgetattr_000b2d64" * (cast_expression "(code *)PTR_tcgetattr_000b2d64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar13)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "puVar5 = local_b4 + 0xd;" (assignment_expression "puVar5 = local_b4 + 0xd" identifier = (binary_expression "local_b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);" do (compound_statement "{\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    }" { (expression_statement "puVar4 = puVar9 + 4;" (assignment_expression "puVar4 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar5 + 4;" (assignment_expression "puVar6 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar9;" (assignment_expression "*puVar5 = *puVar9" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar5[1] = uVar14;" (assignment_expression "puVar5[1] = uVar14" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar10;" (assignment_expression "puVar5[2] = uVar10" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != local_b4 + 0xc)" ( (binary_expression "puVar4 != local_b4 + 0xc" identifier != (binary_expression "local_b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "*puVar6 = *puVar4;" (assignment_expression "*puVar6 = *puVar4" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "local_b4[0x10] = local_b4[0x10] | 0xb;" (assignment_expression "local_b4[0x10] = local_b4[0x10] | 0xb" (subscript_expression "local_b4[0x10]" identifier [ number_literal ]) = (binary_expression "local_b4[0x10] | 0xb" (subscript_expression "local_b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" ( (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" * (cast_expression "(code *)PTR_tcsetattr_000b2e98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "local_4c[0] = 0;" (assignment_expression "local_4c[0] = 0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(local_4c);" (call_expression "FUN_0007f6a8(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (expression_statement "puVar9 = (uint *)&DAT_0000540e;" (assignment_expression "puVar9 = (uint *)&DAT_0000540e" identifier = (cast_expression "(uint *)&DAT_0000540e" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000540e" & identifier))) ;) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" ( (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" * (cast_expression "(code *)PTR_tcsetattr_000b2e98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" if (parenthesized_expression "(local_4c[0] < 0xe)" ( (binary_expression "local_4c[0] < 0xe" (subscript_expression "local_4c[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }" { (if_statement "if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }" if (parenthesized_expression "((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f)" ( (binary_expression "(0x2401U >> (local_4c[0] & 0x1f)) << 0x1f" (parenthesized_expression "(0x2401U >> (local_4c[0] & 0x1f))" ( (binary_expression "0x2401U >> (local_4c[0] & 0x1f)" number_literal >> (parenthesized_expression "(local_4c[0] & 0x1f)" ( (binary_expression "local_4c[0] & 0x1f" (subscript_expression "local_4c[0]" identifier [ number_literal ]) & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }" { (expression_statement "puVar13 = (uint *)&DAT_00000016;" (assignment_expression "puVar13 = (uint *)&DAT_00000016" identifier = (cast_expression "(uint *)&DAT_00000016" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;" (call_expression "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" (parenthesized_expression "(*(code *)PTR_fwrite_000b2eb0)" ( (pointer_expression "*(code *)PTR_fwrite_000b2eb0" * (cast_expression "(code *)PTR_fwrite_000b2eb0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe58" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uVar8 = *(uint *)(puVar20 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(puVar20 + 0x36b4)" identifier = (pointer_expression "*(uint *)(puVar20 + 0x36b4)" * (cast_expression "(uint *)(puVar20 + 0x36b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x36b4)" ( (binary_expression "puVar20 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }" { (expression_statement "FUN_0007f688(auStack_e8);" (call_expression "FUN_0007f688(auStack_e8)" identifier (argument_list "(auStack_e8)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) }) (else_clause "else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" else (if_statement "if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" if (parenthesized_expression "((local_4c[0] & 0xdf) == 0x59)" ( (binary_expression "(local_4c[0] & 0xdf) == 0x59" (parenthesized_expression "(local_4c[0] & 0xdf)" ( (binary_expression "local_4c[0] & 0xdf" (subscript_expression "local_4c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" { (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = param_4;" (assignment_expression "puVar13 = param_4" identifier = identifier) ;) (expression_statement "store_host_key(param_2,param_3,param_4,param_5);" (call_expression "store_host_key(param_2,param_3,param_4,param_5)" identifier (argument_list "(param_2,param_3,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) })))) (if_statement "if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }" if (parenthesized_expression "(*(int *)(puVar20 + 0x36b4) != 0)" ( (binary_expression "*(int *)(puVar20 + 0x36b4) != 0" (pointer_expression "*(int *)(puVar20 + 0x36b4)" * (cast_expression "(int *)(puVar20 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x36b4)" ( (binary_expression "puVar20 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0007f688(auStack_e8);\n    }" { (expression_statement "FUN_0007f688(auStack_e8);" (call_expression "FUN_0007f688(auStack_e8)" identifier (argument_list "(auStack_e8)" ( identifier ))) ;) })) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) }))) (expression_statement "pcVar21 = askalg;" (assignment_expression "pcVar21 = askalg" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_000b2ed8;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000b2ed8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b2ed8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b2ed8" * (cast_expression "(code *)PTR___stack_chk_fail_000b2ed8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_1f8 = puVar20 + 0x3a6f4;" (assignment_expression "puStack_1f8 = puVar20 + 0x3a6f4" identifier = (binary_expression "puVar20 + 0x3a6f4" identifier + number_literal)) ;) (expression_statement "puStack_124 = puVar1;" (assignment_expression "puStack_124 = puVar1" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(puVar20 + 0x3271c);" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x3271c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x3271c)" * (cast_expression "(int *)(puVar20 + 0x3271c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3271c)" ( (binary_expression "puVar20 + 0x3271c" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = *(int **)(puVar20 + 0x33288);" (assignment_expression "piVar15 = *(int **)(puVar20 + 0x33288)" identifier = (pointer_expression "*(int **)(puVar20 + 0x33288)" * (cast_expression "(int **)(puVar20 + 0x33288)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x33288)" ( (binary_expression "puVar20 + 0x33288" identifier + number_literal) ))))) ;) (expression_statement "iStack_12c = *piVar15;" (assignment_expression "iStack_12c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "puStack_200 = puVar13;" (assignment_expression "puStack_200 = puVar13" identifier = identifier) ;) (expression_statement "puStack_120 = param_4;" (assignment_expression "puStack_120 = param_4" identifier = identifier) ;) (expression_statement "uStack_11c = param_2;" (assignment_expression "uStack_11c = param_2" identifier = identifier) ;) (expression_statement "puStack_118 = param_3;" (assignment_expression "puStack_118 = param_3" identifier = identifier) ;) (expression_statement "pcStack_114 = pcVar21;" (assignment_expression "pcStack_114 = pcVar21" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }" { (expression_statement "puStack_1f0 = puVar9;" (assignment_expression "puStack_1f0 = puVar9" identifier = identifier) ;) (expression_statement "puStack_1ec = puVar13;" (assignment_expression "puStack_1ec = puVar13" identifier = identifier) ;) (expression_statement "FUN_0007f63c(auStack_1e8);" (call_expression "FUN_0007f63c(auStack_1e8)" identifier (argument_list "(auStack_1e8)" ( identifier ))) ;) (expression_statement "puStack_200 = puStack_1ec;" (assignment_expression "puStack_200 = puStack_1ec" identifier = identifier) ;) (expression_statement "puVar9 = puStack_1f0;" (assignment_expression "puVar9 = puStack_1f0" identifier = identifier) ;) })) (expression_statement "puVar11 = (undefined1 *)0x1;" (assignment_expression "puVar11 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);" (assignment_expression "puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(puStack_1f8 + -0x7454)" * (cast_expression "(undefined4 **)(puStack_1f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7454)" ( (binary_expression "puStack_1f8 + -0x7454" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(puStack_1f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(puStack_1f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(puStack_1f8 + -0x7bc8)" * (pointer_expression "*(int **)(puStack_1f8 + -0x7bc8)" * (cast_expression "(int **)(puStack_1f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7bc8)" ( (binary_expression "puStack_1f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }" { (expression_statement "param_3 = auStack_1b4;" (assignment_expression "param_3 = auStack_1b4" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" * (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" * (cast_expression "(code **)(puStack_1f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x75f4)" ( (binary_expression "puStack_1f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" ( (pointer_expression "*puVar17" * identifier) , number_literal , (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf5c" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x7450))(*puVar17);" (call_expression "(**(code **)(puStack_1f8 + -0x7450))(*puVar17)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x7450))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x7450)" * (pointer_expression "*(code **)(puStack_1f8 + -0x7450)" * (cast_expression "(code **)(puStack_1f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7450)" ( (binary_expression "puStack_1f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar17)" ( (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x760c))(0,param_3);" (call_expression "(**(code **)(puStack_1f8 + -0x760c))(0,param_3)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x760c))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x760c)" * (pointer_expression "*(code **)(puStack_1f8 + -0x760c)" * (cast_expression "(code **)(puStack_1f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x760c)" ( (binary_expression "puStack_1f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,param_3)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = auStack_1b4 + 0xd;" (assignment_expression "puVar13 = auStack_1b4 + 0xd" identifier = (binary_expression "auStack_1b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);" do (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" { (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != auStack_1b4 + 0xc)" ( (binary_expression "puVar5 != auStack_1b4 + 0xc" identifier != (binary_expression "auStack_1b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "pcVar21 = *(code **)(puStack_1f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(puStack_1f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" * (cast_expression "(code **)(puStack_1f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74d8)" ( (binary_expression "puStack_1f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;" (assignment_expression "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "abStack_14c[0] = 0;" (assignment_expression "abStack_14c[0] = 0" (subscript_expression "abStack_14c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(abStack_14c);" (call_expression "FUN_0007f6a8(abStack_14c)" identifier (argument_list "(abStack_14c)" ( identifier ))) ;) (expression_statement "puVar11 = &DAT_0000540e;" (assignment_expression "puVar11 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x74d8))(0);" (call_expression "(**(code **)(puStack_1f8 + -0x74d8))(0)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74d8))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x74d8)" * (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" * (cast_expression "(code **)(puStack_1f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74d8)" ( (binary_expression "puStack_1f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" if (parenthesized_expression "((abStack_14c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_14c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_14c[0] & 0xdf)" ( (binary_expression "abStack_14c[0] & 0xdf" (subscript_expression "abStack_14c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }" { (if_statement "if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar8 = 1;\n      }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" else (compound_statement "{\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" { (expression_statement "FUN_0007f688(auStack_1e8);" (call_expression "FUN_0007f688(auStack_1e8)" identifier (argument_list "(auStack_1e8)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" else (compound_statement "{\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" { (expression_statement "puVar13 = (uint *)&DAT_00000016;" (assignment_expression "puVar13 = (uint *)&DAT_00000016" identifier = (cast_expression "(uint *)&DAT_00000016" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "puVar11 = (undefined1 *)0x1;" (assignment_expression "puVar11 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;" (call_expression "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74c0))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x74c0)" * (pointer_expression "*(code **)(puStack_1f8 + -0x74c0)" * (cast_expression "(code **)(puStack_1f8 + -0x74c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74c0)" ( (binary_expression "puStack_1f8 + -0x74c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)" ( (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf74" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x36b4)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x36b4)" * (cast_expression "(uint *)(iVar3 + 0x36b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }" { (expression_statement "FUN_0007f688(auStack_1e8);" (call_expression "FUN_0007f688(auStack_1e8)" identifier (argument_list "(auStack_1e8)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" else (compound_statement "{\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" { (expression_statement "puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);" (assignment_expression "puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" identifier = (cast_expression "(uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" ( (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xedc" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" * (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" * (cast_expression "(code **)(puStack_1f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x75f4)" ( (binary_expression "puStack_1f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar17,1,puVar13,puVar9)" ( (pointer_expression "*puVar17" * identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_12c == *piVar15) {\n    return uVar8;\n  }" if (parenthesized_expression "(iStack_12c == *piVar15)" ( (binary_expression "iStack_12c == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(puStack_1f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(puStack_1f8 + -0x7498)" identifier = (pointer_expression "*(code **)(puStack_1f8 + -0x7498)" * (cast_expression "(code **)(puStack_1f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7498)" ( (binary_expression "puStack_1f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = askhk;" (assignment_expression "pcVar22 = askhk" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_2f8 = pcVar21 + 0x3a4d0;" (assignment_expression "pcStack_2f8 = pcVar21 + 0x3a4d0" identifier = (binary_expression "pcVar21 + 0x3a4d0" identifier + number_literal)) ;) (expression_statement "iVar19 = *(int *)(pcVar21 + 0x324f8);" (assignment_expression "iVar19 = *(int *)(pcVar21 + 0x324f8)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x324f8)" * (cast_expression "(int *)(pcVar21 + 0x324f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x324f8)" ( (binary_expression "pcVar21 + 0x324f8" identifier + number_literal) ))))) ;) (expression_statement "piVar16 = *(int **)(pcVar21 + 0x33064);" (assignment_expression "piVar16 = *(int **)(pcVar21 + 0x33064)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x33064)" * (cast_expression "(int **)(pcVar21 + 0x33064)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x33064)" ( (binary_expression "pcVar21 + 0x33064" identifier + number_literal) ))))) ;) (expression_statement "iStack_22c = *piVar16;" (assignment_expression "iStack_22c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "puStack_300 = puVar13;" (assignment_expression "puStack_300 = puVar13" identifier = identifier) ;) (expression_statement "piStack_224 = piVar15;" (assignment_expression "piStack_224 = piVar15" identifier = identifier) ;) (expression_statement "puStack_220 = puVar17;" (assignment_expression "puStack_220 = puVar17" identifier = identifier) ;) (expression_statement "iStack_21c = iVar3;" (assignment_expression "iStack_21c = iVar3" identifier = identifier) ;) (expression_statement "puStack_218 = param_3;" (assignment_expression "puStack_218 = param_3" identifier = identifier) ;) (expression_statement "pcStack_214 = pcVar22;" (assignment_expression "pcStack_214 = pcVar22" identifier = identifier) ;) (if_statement "if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar19 + 0x36b4)" * (cast_expression "(int *)(iVar19 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x36b4)" ( (binary_expression "iVar19 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }" { (expression_statement "puStack_2f0 = puVar11;" (assignment_expression "puStack_2f0 = puVar11" identifier = identifier) ;) (expression_statement "puStack_2ec = puVar13;" (assignment_expression "puStack_2ec = puVar13" identifier = identifier) ;) (expression_statement "FUN_0007f63c(auStack_2e8);" (call_expression "FUN_0007f63c(auStack_2e8)" identifier (argument_list "(auStack_2e8)" ( identifier ))) ;) (expression_statement "puStack_300 = puStack_2ec;" (assignment_expression "puStack_300 = puStack_2ec" identifier = identifier) ;) (expression_statement "puVar11 = puStack_2f0;" (assignment_expression "puVar11 = puStack_2f0" identifier = identifier) ;) })) (expression_statement "puVar17 = (undefined4 *)0x1;" (assignment_expression "puVar17 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);" (assignment_expression "puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(pcStack_2f8 + -0x7454)" * (cast_expression "(undefined4 **)(pcStack_2f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7454)" ( (binary_expression "pcStack_2f8 + -0x7454" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(pcStack_2f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(pcStack_2f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_2f8 + -0x7bc8)" * (pointer_expression "*(int **)(pcStack_2f8 + -0x7bc8)" * (cast_expression "(int **)(pcStack_2f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7bc8)" ( (binary_expression "pcStack_2f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }" { (expression_statement "param_3 = auStack_2b4;" (assignment_expression "param_3 = auStack_2b4" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x75f4)" ( (binary_expression "pcStack_2f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1168" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_2f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x7450)" * (cast_expression "(code **)(pcStack_2f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7450)" ( (binary_expression "pcStack_2f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar18)" ( (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x760c))(0,param_3);" (call_expression "(**(code **)(pcStack_2f8 + -0x760c))(0,param_3)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x760c))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x760c)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x760c)" * (cast_expression "(code **)(pcStack_2f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x760c)" ( (binary_expression "pcStack_2f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,param_3)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = auStack_2b4 + 0xd;" (assignment_expression "puVar13 = auStack_2b4 + 0xd" identifier = (binary_expression "auStack_2b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);" do (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" { (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != auStack_2b4 + 0xc)" ( (binary_expression "puVar5 != auStack_2b4 + 0xc" identifier != (binary_expression "auStack_2b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(pcStack_2f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74d8)" ( (binary_expression "pcStack_2f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;" (assignment_expression "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "abStack_24c[0] = 0;" (assignment_expression "abStack_24c[0] = 0" (subscript_expression "abStack_24c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(abStack_24c);" (call_expression "FUN_0007f6a8(abStack_24c)" identifier (argument_list "(abStack_24c)" ( identifier ))) ;) (expression_statement "puVar17 = (undefined4 *)&DAT_0000540e;" (assignment_expression "puVar17 = (undefined4 *)&DAT_0000540e" identifier = (cast_expression "(undefined4 *)&DAT_0000540e" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000540e" & identifier))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);" (call_expression "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74d8))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x74d8)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74d8)" ( (binary_expression "pcStack_2f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0,&DAT_0000540e,param_3)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" if (parenthesized_expression "((abStack_24c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_24c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_24c[0] & 0xdf)" ( (binary_expression "abStack_24c[0] & 0xdf" (subscript_expression "abStack_24c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }" { (if_statement "if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar19 + 0x36b4) == 0)" ( (binary_expression "*(int *)(iVar19 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar19 + 0x36b4)" * (cast_expression "(int *)(iVar19 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x36b4)" ( (binary_expression "iVar19 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar8 = 1;\n      }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" else (compound_statement "{\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" { (expression_statement "FUN_0007f688(auStack_2e8);" (call_expression "FUN_0007f688(auStack_2e8)" identifier (argument_list "(auStack_2e8)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" else (compound_statement "{\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" { (expression_statement "puVar17 = (undefined4 *)0x1;" (assignment_expression "puVar17 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);" (call_expression "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74c0))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x74c0)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x74c0)" * (cast_expression "(code **)(pcStack_2f8 + -0x74c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74c0)" ( (binary_expression "pcStack_2f8 + -0x74c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18)" ( (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1180" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar19 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 0x36b4)" identifier = (pointer_expression "*(uint *)(iVar19 + 0x36b4)" * (cast_expression "(uint *)(iVar19 + 0x36b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x36b4)" ( (binary_expression "iVar19 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }" { (expression_statement "FUN_0007f688(auStack_2e8);" (call_expression "FUN_0007f688(auStack_2e8)" identifier (argument_list "(auStack_2e8)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" { (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x75f4)" ( (binary_expression "pcStack_2f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1068" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_22c == *piVar16) {\n    return uVar8;\n  }" if (parenthesized_expression "(iStack_22c == *piVar16)" ( (binary_expression "iStack_22c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_2f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(pcStack_2f8 + -0x7498)" identifier = (pointer_expression "*(code **)(pcStack_2f8 + -0x7498)" * (cast_expression "(code **)(pcStack_2f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7498)" ( (binary_expression "pcStack_2f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = askappend;" (assignment_expression "pcVar22 = askappend" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_3f8 = pcVar21 + 0x3a2ac;" (assignment_expression "pcStack_3f8 = pcVar21 + 0x3a2ac" identifier = (binary_expression "pcVar21 + 0x3a2ac" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(pcVar21 + 0x322d4);" (assignment_expression "iVar3 = *(int *)(pcVar21 + 0x322d4)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x322d4)" * (cast_expression "(int *)(pcVar21 + 0x322d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x322d4)" ( (binary_expression "pcVar21 + 0x322d4" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x32e40);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x32e40)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x32e40)" * (cast_expression "(int **)(pcVar21 + 0x32e40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32e40)" ( (binary_expression "pcVar21 + 0x32e40" identifier + number_literal) ))))) ;) (expression_statement "iStack_32c = *piVar15;" (assignment_expression "iStack_32c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piStack_324 = piVar16;" (assignment_expression "piStack_324 = piVar16" identifier = identifier) ;) (expression_statement "puStack_320 = puVar18;" (assignment_expression "puStack_320 = puVar18" identifier = identifier) ;) (expression_statement "iStack_31c = iVar19;" (assignment_expression "iStack_31c = iVar19" identifier = identifier) ;) (expression_statement "puStack_318 = param_3;" (assignment_expression "puStack_318 = param_3" identifier = identifier) ;) (expression_statement "pcStack_314 = pcVar22;" (assignment_expression "pcStack_314 = pcVar22" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }" { (expression_statement "puStack_3ec = puVar17;" (assignment_expression "puStack_3ec = puVar17" identifier = identifier) ;) (expression_statement "FUN_0007f63c(auStack_3e8);" (call_expression "FUN_0007f63c(auStack_3e8)" identifier (argument_list "(auStack_3e8)" ( identifier ))) ;) (expression_statement "puVar17 = puStack_3ec;" (assignment_expression "puVar17 = puStack_3ec" identifier = identifier) ;) })) (expression_statement "puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);" (assignment_expression "puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(pcStack_3f8 + -0x7454)" * (cast_expression "(undefined4 **)(pcStack_3f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7454)" ( (binary_expression "pcStack_3f8 + -0x7454" identifier + number_literal) ))))) ;) (expression_statement "uStack_400 = *puVar17;" (assignment_expression "uStack_400 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (if_statement "if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(pcStack_3f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(pcStack_3f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_3f8 + -0x7bc8)" * (pointer_expression "*(int **)(pcStack_3f8 + -0x7bc8)" * (cast_expression "(int **)(pcStack_3f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7bc8)" ( (binary_expression "pcStack_3f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x75f4)" ( (binary_expression "pcStack_3f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x1308" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3f8 + -0x7f80)" ( (binary_expression "pcStack_3f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" * (cast_expression "(code **)(pcStack_3f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7450)" ( (binary_expression "pcStack_3f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar18)" ( (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x760c))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x760c)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x760c)" * (cast_expression "(code **)(pcStack_3f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x760c)" ( (binary_expression "pcStack_3f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,auStack_3b4)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = auStack_3b4;" (assignment_expression "puVar9 = auStack_3b4" identifier = identifier) ;) (expression_statement "puVar13 = auStack_3b4 + 0xd;" (assignment_expression "puVar13 = auStack_3b4 + 0xd" identifier = (binary_expression "auStack_3b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);" do (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" { (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != auStack_3b4 + 0xc)" ( (binary_expression "puVar5 != auStack_3b4 + 0xc" identifier != (binary_expression "auStack_3b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(pcStack_3f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x74d8)" ( (binary_expression "pcStack_3f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;" (assignment_expression "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "abStack_34c[0] = 0;" (assignment_expression "abStack_34c[0] = 0" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(abStack_34c);" (call_expression "FUN_0007f6a8(abStack_34c)" identifier (argument_list "(abStack_34c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x74d8))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x74d8)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x74d8)" ( (binary_expression "pcStack_3f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0,&DAT_0000540e,auStack_3b4)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0007f688(auStack_3e8);\n    }" { (expression_statement "FUN_0007f688(auStack_3e8);" (call_expression "FUN_0007f688(auStack_3e8)" identifier (argument_list "(auStack_3e8)" ( identifier ))) ;) })) (if_statement "if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" if (parenthesized_expression "((abStack_34c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_34c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_34c[0] & 0xdf)" ( (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar8 = 2;\n    }" { (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" else (compound_statement "{\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" { (expression_statement "uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);" (assignment_expression "uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e)" identifier = (call_expression "(uint)((abStack_34c[0] & 0xdf) == 0x4e)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((abStack_34c[0] & 0xdf) == 0x4e)" ( (binary_expression "(abStack_34c[0] & 0xdf) == 0x4e" (parenthesized_expression "(abStack_34c[0] & 0xdf)" ( (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) ;) }))) }) (else_clause "else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" { (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x75f4)" ( (binary_expression "pcStack_3f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3f8 + -0x7f80)" ( (binary_expression "pcStack_3f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" * (cast_expression "(code **)(pcStack_3f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7450)" ( (binary_expression "pcStack_3f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar18)" ( (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }" if (parenthesized_expression "(iStack_32c != *piVar15)" ( (binary_expression "iStack_32c != *piVar15" identifier != (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }" { (expression_statement "pcVar21 = *(code **)(pcStack_3f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(pcStack_3f8 + -0x7498)" identifier = (pointer_expression "*(code **)(pcStack_3f8 + -0x7498)" * (cast_expression "(code **)(pcStack_3f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7498)" ( (binary_expression "pcStack_3f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = old_keyfile_warning;" (assignment_expression "pcVar22 = old_keyfile_warning" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(pcVar21 + 0x320dc);" (assignment_expression "iVar3 = *(int *)(pcVar21 + 0x320dc)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x320dc)" * (cast_expression "(int *)(pcVar21 + 0x320dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x320dc)" ( (binary_expression "pcVar21 + 0x320dc" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = *(uint **)(pcVar21 + 0x32c48);" (assignment_expression "puVar9 = *(uint **)(pcVar21 + 0x32c48)" identifier = (pointer_expression "*(uint **)(pcVar21 + 0x32c48)" * (cast_expression "(uint **)(pcVar21 + 0x32c48)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32c48)" ( (binary_expression "pcVar21 + 0x32c48" identifier + number_literal) ))))) ;) (expression_statement "uStack_424 = *puVar9;" (assignment_expression "uStack_424 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "piStack_41c = piVar15;" (assignment_expression "piStack_41c = piVar15" identifier = identifier) ;) (expression_statement "puStack_418 = puVar18;" (assignment_expression "puStack_418 = puVar18" identifier = identifier) ;) (expression_statement "pcStack_414 = pcVar22;" (assignment_expression "pcStack_414 = pcVar22" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0007f63c(auStack_458);\n    }" { (expression_statement "FUN_0007f63c(auStack_458);" (call_expression "FUN_0007f63c(auStack_458)" identifier (argument_list "(auStack_458)" ( identifier ))) ;) })) (expression_statement "puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);" (assignment_expression "puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470)" identifier = (cast_expression "(undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar21 + 0x32134) + -0x1470)" ( (binary_expression "*(int *)(pcVar21 + 0x32134) + -0x1470" (pointer_expression "*(int *)(pcVar21 + 0x32134)" * (cast_expression "(int *)(pcVar21 + 0x32134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x32134)" ( (binary_expression "pcVar21 + 0x32134" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));" (call_expression "(**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60))" (parenthesized_expression "(**(code **)(pcVar21 + 0x32bf4))" ( (pointer_expression "**(code **)(pcVar21 + 0x32bf4)" * (pointer_expression "*(code **)(pcVar21 + 0x32bf4)" * (cast_expression "(code **)(pcVar21 + 0x32bf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32bf4)" ( (binary_expression "pcVar21 + 0x32bf4" identifier + number_literal) ))))) )) (argument_list "(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar21 + 0x32c60)" * (pointer_expression "*(undefined4 **)(pcVar21 + 0x32c60)" * (cast_expression "(undefined4 **)(pcVar21 + 0x32c60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32c60)" ( (binary_expression "pcVar21 + 0x32c60" identifier + number_literal) ))))) ))) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }" { (expression_statement "puVar11 = auStack_458;" (assignment_expression "puVar11 = auStack_458" identifier = identifier) ;) (expression_statement "FUN_0007f688();" (call_expression "FUN_0007f688()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar8 = *puVar9;" (assignment_expression "uVar8 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }" if (parenthesized_expression "(uStack_424 != uVar8)" ( (binary_expression "uStack_424 != uVar8" identifier != identifier) )) (compound_statement "{\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }" { (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x32c1c);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x32c1c)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x32c1c)" * (cast_expression "(code **)(pcVar21 + 0x32c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32c1c)" ( (binary_expression "pcVar21 + 0x32c1c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(pcVar21 + 0x3201c);" (assignment_expression "uVar8 = *(uint *)(pcVar21 + 0x3201c)" identifier = (pointer_expression "*(uint *)(pcVar21 + 0x3201c)" * (cast_expression "(uint *)(pcVar21 + 0x3201c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3201c)" ( (binary_expression "pcVar21 + 0x3201c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(uVar8 + 0x36ec) = puVar11;" (assignment_expression "*(undefined1 **)(uVar8 + 0x36ec) = puVar11" (pointer_expression "*(undefined1 **)(uVar8 + 0x36ec)" * (cast_expression "(undefined1 **)(uVar8 + 0x36ec)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x36ec)" ( (binary_expression "uVar8 + 0x36ec" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar8;" return identifier ;) })) (return_statement "return uVar8;" return identifier ;) })) (return_statement "return uVar8;" return identifier ;) })))
(translation_unit "int verify_ssh_host_key(void *frontend,char *host,int port,char *keytype,char *keystr,\n                       char *fingerprint,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  cc_t cVar1;\n  cc_t cVar2;\n  cc_t cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  termios *ptVar6;\n  termios *ptVar7;\n  int iVar8;\n  int iVar9;\n  termios *ptVar10;\n  uint *puVar11;\n  termios *ptVar12;\n  uint *puVar13;\n  uint *puVar14;\n  undefined4 uVar15;\n  tcflag_t tVar16;\n  uint uVar17;\n  termios *ptVar18;\n  undefined1 *puVar19;\n  tcflag_t tVar20;\n  undefined1 *puVar21;\n  uint uVar22;\n  undefined *puVar23;\n  termios *len;\n  uint *puVar24;\n  uint *puVar25;\n  tcflag_t tVar26;\n  uint uVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined4 *puVar30;\n  undefined4 *puVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  termios tStack_458;\n  int iStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  termios tStack_3e8;\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  termios tStack_2e8;\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  termios *ptStack_200;\n  undefined *puStack_1f8;\n  undefined1 *puStack_1f0;\n  termios *ptStack_1ec;\n  termios tStack_1e8;\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  char *pcStack_120;\n  char *pcStack_11c;\n  int iStack_118;\n  code *pcStack_114;\n  char *local_100;\n  termios cf;\n  termios oldmode;\n  termios newmode;\n  char line [32];\n  \n  puVar4 = PTR___stack_chk_guard_000b2f04;\n  iVar8 = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar19 = (undefined1 *)port;\n  ptVar18 = (termios *)keytype;\n  iVar9 = verify_host_key(host,port,keytype,keystr);\n  puVar32 = PTR_DAT_000b2398;\n  if (iVar9 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }\n    ptVar18 = &oldmode;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);\n    len = &newmode;\n    ptVar6 = ptVar18;\n    ptVar7 = len;\n    do {\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);\n    cVar1 = ptVar10->c_cc[0];\n    cVar2 = ptVar10->c_cc[1];\n    cVar3 = ptVar10->c_cc[2];\n    puVar19 = &DAT_0000540e;\n    ptVar12->c_line = ptVar10->c_line;\n    ptVar12->c_cc[0] = cVar1;\n    ptVar12->c_cc[1] = cVar2;\n    ptVar12->c_cc[2] = cVar3;\n    newmode.c_lflag = newmode.c_lflag | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    line[0] = '\0';\n    block_and_read((int)line,puVar19,(size_t)len);\n    puVar19 = &DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if ((byte)line[0] < 0xe) {\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }\n    if (*(int *)(puVar32 + 0x36b4) != 0) {\n      postmsg(&cf);\n    }\n  }\n  iVar9 = 1;\nLAB_0007fb30:\n  if (iVar8 == *(int *)puVar4) {\n    return iVar9;\n  }\n  pcVar33 = askalg;\n  puVar32 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar32 + 0x3a6f4;\n  puStack_124 = puVar4;\n  iVar8 = *(int *)(puVar32 + 0x3271c);\n  piVar28 = *(int **)(puVar32 + 0x33288);\n  iStack_12c = *piVar28;\n  ptStack_200 = ptVar18;\n  pcStack_120 = keytype;\n  pcStack_11c = host;\n  iStack_118 = port;\n  pcStack_114 = pcVar33;\n  if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_1f0 = puVar19;\n    ptStack_1ec = ptVar18;\n    premsg(&tStack_1e8);\n    ptStack_200 = ptStack_1ec;\n    puVar19 = puStack_1f0;\n  }\n  puVar21 = (undefined1 *)0x1;\n  puVar30 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    port = (int)auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar30);\n    (**(code **)(puStack_1f8 + -0x760c))(0,port);\n    puVar24 = auStack_1b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_1b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_14c[0] = 0;\n    block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);\n    puVar21 = &DAT_0000540e;\n    puVar25 = (uint *)port;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }\n    else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }\n  }\n  else {\n    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);\n    iVar9 = 0;\n  }\n  if (iStack_12c == *piVar28) {\n    return iVar9;\n  }\n  pcVar33 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar34 = askhk;\n  (*pcVar33)();\n  pcStack_2f8 = pcVar33 + 0x3a4d0;\n  iVar9 = *(int *)(pcVar33 + 0x324f8);\n  piVar29 = *(int **)(pcVar33 + 0x33064);\n  iStack_22c = *piVar29;\n  puStack_300 = puVar25;\n  piStack_224 = piVar28;\n  puStack_220 = puVar30;\n  iStack_21c = iVar8;\n  puStack_218 = (uint *)port;\n  pcStack_214 = pcVar34;\n  if (*(int *)(iVar9 + 0x36b4) != 0) {\n    puStack_2f0 = puVar21;\n    puStack_2ec = puVar25;\n    premsg(&tStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar21 = puStack_2f0;\n  }\n  puVar30 = (undefined4 *)&DAT_00000001;\n  puVar31 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    port = (int)auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,port);\n    puVar24 = auStack_2b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_2b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_24c[0] = 0;\n    block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);\n    puVar30 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }\n    else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);\n    iVar8 = 0;\n  }\n  if (iStack_22c == *piVar29) {\n    return iVar8;\n  }\n  pcVar33 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar34 = askappend;\n  (*pcVar33)();\n  pcStack_3f8 = pcVar33 + 0x3a2ac;\n  iVar8 = *(int *)(pcVar33 + 0x322d4);\n  piVar28 = *(int **)(pcVar33 + 0x32e40);\n  iStack_32c = *piVar28;\n  piStack_324 = piVar29;\n  puStack_320 = puVar31;\n  iStack_31c = iVar9;\n  puStack_318 = (uint *)port;\n  pcStack_314 = pcVar34;\n  if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_3ec = puVar30;\n    premsg(&tStack_3e8);\n    puVar30 = puStack_3ec;\n  }\n  puVar31 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar30;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar24 = auStack_3b4 + 0xd;\n    puVar25 = auStack_3b4;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_3b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_34c[0] = 0;\n    block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      postmsg(&tStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar17 = 2;\n    }\n    else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    uVar17 = 0;\n  }\n  if (iStack_32c != *piVar28) {\n    pcVar33 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar34 = old_keyfile_warning;\n    (*pcVar33)();\n    iVar8 = *(int *)(pcVar33 + 0x320dc);\n    piVar29 = *(int **)(pcVar33 + 0x32c48);\n    iStack_424 = *piVar29;\n    piStack_41c = piVar28;\n    puStack_418 = puVar31;\n    pcStack_414 = pcVar34;\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      premsg(&tStack_458);\n    }\n    ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);\n    (**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }\n    iVar8 = *piVar29;\n    if (iStack_424 != iVar8) {\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }\n    return iVar8;\n  }\n  return uVar17;\n}\n\n" (function_definition "int verify_ssh_host_key(void *frontend,char *host,int port,char *keytype,char *keystr,\n                       char *fingerprint,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  cc_t cVar1;\n  cc_t cVar2;\n  cc_t cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  termios *ptVar6;\n  termios *ptVar7;\n  int iVar8;\n  int iVar9;\n  termios *ptVar10;\n  uint *puVar11;\n  termios *ptVar12;\n  uint *puVar13;\n  uint *puVar14;\n  undefined4 uVar15;\n  tcflag_t tVar16;\n  uint uVar17;\n  termios *ptVar18;\n  undefined1 *puVar19;\n  tcflag_t tVar20;\n  undefined1 *puVar21;\n  uint uVar22;\n  undefined *puVar23;\n  termios *len;\n  uint *puVar24;\n  uint *puVar25;\n  tcflag_t tVar26;\n  uint uVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined4 *puVar30;\n  undefined4 *puVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  termios tStack_458;\n  int iStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  termios tStack_3e8;\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  termios tStack_2e8;\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  termios *ptStack_200;\n  undefined *puStack_1f8;\n  undefined1 *puStack_1f0;\n  termios *ptStack_1ec;\n  termios tStack_1e8;\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  char *pcStack_120;\n  char *pcStack_11c;\n  int iStack_118;\n  code *pcStack_114;\n  char *local_100;\n  termios cf;\n  termios oldmode;\n  termios newmode;\n  char line [32];\n  \n  puVar4 = PTR___stack_chk_guard_000b2f04;\n  iVar8 = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar19 = (undefined1 *)port;\n  ptVar18 = (termios *)keytype;\n  iVar9 = verify_host_key(host,port,keytype,keystr);\n  puVar32 = PTR_DAT_000b2398;\n  if (iVar9 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }\n    ptVar18 = &oldmode;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);\n    len = &newmode;\n    ptVar6 = ptVar18;\n    ptVar7 = len;\n    do {\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);\n    cVar1 = ptVar10->c_cc[0];\n    cVar2 = ptVar10->c_cc[1];\n    cVar3 = ptVar10->c_cc[2];\n    puVar19 = &DAT_0000540e;\n    ptVar12->c_line = ptVar10->c_line;\n    ptVar12->c_cc[0] = cVar1;\n    ptVar12->c_cc[1] = cVar2;\n    ptVar12->c_cc[2] = cVar3;\n    newmode.c_lflag = newmode.c_lflag | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    line[0] = '\0';\n    block_and_read((int)line,puVar19,(size_t)len);\n    puVar19 = &DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if ((byte)line[0] < 0xe) {\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }\n    if (*(int *)(puVar32 + 0x36b4) != 0) {\n      postmsg(&cf);\n    }\n  }\n  iVar9 = 1;\nLAB_0007fb30:\n  if (iVar8 == *(int *)puVar4) {\n    return iVar9;\n  }\n  pcVar33 = askalg;\n  puVar32 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar32 + 0x3a6f4;\n  puStack_124 = puVar4;\n  iVar8 = *(int *)(puVar32 + 0x3271c);\n  piVar28 = *(int **)(puVar32 + 0x33288);\n  iStack_12c = *piVar28;\n  ptStack_200 = ptVar18;\n  pcStack_120 = keytype;\n  pcStack_11c = host;\n  iStack_118 = port;\n  pcStack_114 = pcVar33;\n  if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_1f0 = puVar19;\n    ptStack_1ec = ptVar18;\n    premsg(&tStack_1e8);\n    ptStack_200 = ptStack_1ec;\n    puVar19 = puStack_1f0;\n  }\n  puVar21 = (undefined1 *)0x1;\n  puVar30 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    port = (int)auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar30);\n    (**(code **)(puStack_1f8 + -0x760c))(0,port);\n    puVar24 = auStack_1b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_1b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_14c[0] = 0;\n    block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);\n    puVar21 = &DAT_0000540e;\n    puVar25 = (uint *)port;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }\n    else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }\n  }\n  else {\n    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);\n    iVar9 = 0;\n  }\n  if (iStack_12c == *piVar28) {\n    return iVar9;\n  }\n  pcVar33 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar34 = askhk;\n  (*pcVar33)();\n  pcStack_2f8 = pcVar33 + 0x3a4d0;\n  iVar9 = *(int *)(pcVar33 + 0x324f8);\n  piVar29 = *(int **)(pcVar33 + 0x33064);\n  iStack_22c = *piVar29;\n  puStack_300 = puVar25;\n  piStack_224 = piVar28;\n  puStack_220 = puVar30;\n  iStack_21c = iVar8;\n  puStack_218 = (uint *)port;\n  pcStack_214 = pcVar34;\n  if (*(int *)(iVar9 + 0x36b4) != 0) {\n    puStack_2f0 = puVar21;\n    puStack_2ec = puVar25;\n    premsg(&tStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar21 = puStack_2f0;\n  }\n  puVar30 = (undefined4 *)&DAT_00000001;\n  puVar31 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    port = (int)auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,port);\n    puVar24 = auStack_2b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_2b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_24c[0] = 0;\n    block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);\n    puVar30 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }\n    else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);\n    iVar8 = 0;\n  }\n  if (iStack_22c == *piVar29) {\n    return iVar8;\n  }\n  pcVar33 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar34 = askappend;\n  (*pcVar33)();\n  pcStack_3f8 = pcVar33 + 0x3a2ac;\n  iVar8 = *(int *)(pcVar33 + 0x322d4);\n  piVar28 = *(int **)(pcVar33 + 0x32e40);\n  iStack_32c = *piVar28;\n  piStack_324 = piVar29;\n  puStack_320 = puVar31;\n  iStack_31c = iVar9;\n  puStack_318 = (uint *)port;\n  pcStack_314 = pcVar34;\n  if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_3ec = puVar30;\n    premsg(&tStack_3e8);\n    puVar30 = puStack_3ec;\n  }\n  puVar31 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar30;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar24 = auStack_3b4 + 0xd;\n    puVar25 = auStack_3b4;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_3b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_34c[0] = 0;\n    block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      postmsg(&tStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar17 = 2;\n    }\n    else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    uVar17 = 0;\n  }\n  if (iStack_32c != *piVar28) {\n    pcVar33 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar34 = old_keyfile_warning;\n    (*pcVar33)();\n    iVar8 = *(int *)(pcVar33 + 0x320dc);\n    piVar29 = *(int **)(pcVar33 + 0x32c48);\n    iStack_424 = *piVar29;\n    piStack_41c = piVar28;\n    puStack_418 = puVar31;\n    pcStack_414 = pcVar34;\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      premsg(&tStack_458);\n    }\n    ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);\n    (**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }\n    iVar8 = *piVar29;\n    if (iStack_424 != iVar8) {\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }\n    return iVar8;\n  }\n  return uVar17;\n}" primitive_type (function_declarator "verify_ssh_host_key(void *frontend,char *host,int port,char *keytype,char *keystr,\n                       char *fingerprint,_func_void_void_ptr_int *callback,void *ctx)" identifier (parameter_list "(void *frontend,char *host,int port,char *keytype,char *keystr,\n                       char *fingerprint,_func_void_void_ptr_int *callback,void *ctx)" ( (parameter_declaration "void *frontend" primitive_type (pointer_declarator "*frontend" * identifier)) , (parameter_declaration "char *host" primitive_type (pointer_declarator "*host" * identifier)) , (parameter_declaration "int port" primitive_type identifier) , (parameter_declaration "char *keytype" primitive_type (pointer_declarator "*keytype" * identifier)) , (parameter_declaration "char *keystr" primitive_type (pointer_declarator "*keystr" * identifier)) , (parameter_declaration "char *fingerprint" primitive_type (pointer_declarator "*fingerprint" * identifier)) , (parameter_declaration "_func_void_void_ptr_int *callback" type_identifier (pointer_declarator "*callback" * identifier)) , (parameter_declaration "void *ctx" primitive_type (pointer_declarator "*ctx" * identifier)) ))) (compound_statement "{\n  cc_t cVar1;\n  cc_t cVar2;\n  cc_t cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  termios *ptVar6;\n  termios *ptVar7;\n  int iVar8;\n  int iVar9;\n  termios *ptVar10;\n  uint *puVar11;\n  termios *ptVar12;\n  uint *puVar13;\n  uint *puVar14;\n  undefined4 uVar15;\n  tcflag_t tVar16;\n  uint uVar17;\n  termios *ptVar18;\n  undefined1 *puVar19;\n  tcflag_t tVar20;\n  undefined1 *puVar21;\n  uint uVar22;\n  undefined *puVar23;\n  termios *len;\n  uint *puVar24;\n  uint *puVar25;\n  tcflag_t tVar26;\n  uint uVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined4 *puVar30;\n  undefined4 *puVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  termios tStack_458;\n  int iStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  termios tStack_3e8;\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  termios tStack_2e8;\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  termios *ptStack_200;\n  undefined *puStack_1f8;\n  undefined1 *puStack_1f0;\n  termios *ptStack_1ec;\n  termios tStack_1e8;\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  char *pcStack_120;\n  char *pcStack_11c;\n  int iStack_118;\n  code *pcStack_114;\n  char *local_100;\n  termios cf;\n  termios oldmode;\n  termios newmode;\n  char line [32];\n  \n  puVar4 = PTR___stack_chk_guard_000b2f04;\n  iVar8 = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar19 = (undefined1 *)port;\n  ptVar18 = (termios *)keytype;\n  iVar9 = verify_host_key(host,port,keytype,keystr);\n  puVar32 = PTR_DAT_000b2398;\n  if (iVar9 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }\n    ptVar18 = &oldmode;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);\n    len = &newmode;\n    ptVar6 = ptVar18;\n    ptVar7 = len;\n    do {\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);\n    cVar1 = ptVar10->c_cc[0];\n    cVar2 = ptVar10->c_cc[1];\n    cVar3 = ptVar10->c_cc[2];\n    puVar19 = &DAT_0000540e;\n    ptVar12->c_line = ptVar10->c_line;\n    ptVar12->c_cc[0] = cVar1;\n    ptVar12->c_cc[1] = cVar2;\n    ptVar12->c_cc[2] = cVar3;\n    newmode.c_lflag = newmode.c_lflag | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    line[0] = '\0';\n    block_and_read((int)line,puVar19,(size_t)len);\n    puVar19 = &DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if ((byte)line[0] < 0xe) {\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }\n    if (*(int *)(puVar32 + 0x36b4) != 0) {\n      postmsg(&cf);\n    }\n  }\n  iVar9 = 1;\nLAB_0007fb30:\n  if (iVar8 == *(int *)puVar4) {\n    return iVar9;\n  }\n  pcVar33 = askalg;\n  puVar32 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar32 + 0x3a6f4;\n  puStack_124 = puVar4;\n  iVar8 = *(int *)(puVar32 + 0x3271c);\n  piVar28 = *(int **)(puVar32 + 0x33288);\n  iStack_12c = *piVar28;\n  ptStack_200 = ptVar18;\n  pcStack_120 = keytype;\n  pcStack_11c = host;\n  iStack_118 = port;\n  pcStack_114 = pcVar33;\n  if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_1f0 = puVar19;\n    ptStack_1ec = ptVar18;\n    premsg(&tStack_1e8);\n    ptStack_200 = ptStack_1ec;\n    puVar19 = puStack_1f0;\n  }\n  puVar21 = (undefined1 *)0x1;\n  puVar30 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    port = (int)auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar30);\n    (**(code **)(puStack_1f8 + -0x760c))(0,port);\n    puVar24 = auStack_1b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_1b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_14c[0] = 0;\n    block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);\n    puVar21 = &DAT_0000540e;\n    puVar25 = (uint *)port;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }\n    else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }\n  }\n  else {\n    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);\n    iVar9 = 0;\n  }\n  if (iStack_12c == *piVar28) {\n    return iVar9;\n  }\n  pcVar33 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar34 = askhk;\n  (*pcVar33)();\n  pcStack_2f8 = pcVar33 + 0x3a4d0;\n  iVar9 = *(int *)(pcVar33 + 0x324f8);\n  piVar29 = *(int **)(pcVar33 + 0x33064);\n  iStack_22c = *piVar29;\n  puStack_300 = puVar25;\n  piStack_224 = piVar28;\n  puStack_220 = puVar30;\n  iStack_21c = iVar8;\n  puStack_218 = (uint *)port;\n  pcStack_214 = pcVar34;\n  if (*(int *)(iVar9 + 0x36b4) != 0) {\n    puStack_2f0 = puVar21;\n    puStack_2ec = puVar25;\n    premsg(&tStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar21 = puStack_2f0;\n  }\n  puVar30 = (undefined4 *)&DAT_00000001;\n  puVar31 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    port = (int)auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,port);\n    puVar24 = auStack_2b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_2b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_24c[0] = 0;\n    block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);\n    puVar30 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }\n    else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);\n    iVar8 = 0;\n  }\n  if (iStack_22c == *piVar29) {\n    return iVar8;\n  }\n  pcVar33 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar34 = askappend;\n  (*pcVar33)();\n  pcStack_3f8 = pcVar33 + 0x3a2ac;\n  iVar8 = *(int *)(pcVar33 + 0x322d4);\n  piVar28 = *(int **)(pcVar33 + 0x32e40);\n  iStack_32c = *piVar28;\n  piStack_324 = piVar29;\n  puStack_320 = puVar31;\n  iStack_31c = iVar9;\n  puStack_318 = (uint *)port;\n  pcStack_314 = pcVar34;\n  if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_3ec = puVar30;\n    premsg(&tStack_3e8);\n    puVar30 = puStack_3ec;\n  }\n  puVar31 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar30;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar24 = auStack_3b4 + 0xd;\n    puVar25 = auStack_3b4;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_3b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_34c[0] = 0;\n    block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      postmsg(&tStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar17 = 2;\n    }\n    else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    uVar17 = 0;\n  }\n  if (iStack_32c != *piVar28) {\n    pcVar33 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar34 = old_keyfile_warning;\n    (*pcVar33)();\n    iVar8 = *(int *)(pcVar33 + 0x320dc);\n    piVar29 = *(int **)(pcVar33 + 0x32c48);\n    iStack_424 = *piVar29;\n    piStack_41c = piVar28;\n    puStack_418 = puVar31;\n    pcStack_414 = pcVar34;\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      premsg(&tStack_458);\n    }\n    ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);\n    (**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }\n    iVar8 = *piVar29;\n    if (iStack_424 != iVar8) {\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }\n    return iVar8;\n  }\n  return uVar17;\n}" { (declaration "cc_t cVar1;" type_identifier identifier ;) (declaration "cc_t cVar2;" type_identifier identifier ;) (declaration "cc_t cVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "termios *ptVar6;" type_identifier (pointer_declarator "*ptVar6" * identifier) ;) (declaration "termios *ptVar7;" type_identifier (pointer_declarator "*ptVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "termios *ptVar10;" type_identifier (pointer_declarator "*ptVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "termios *ptVar12;" type_identifier (pointer_declarator "*ptVar12" * identifier) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "tcflag_t tVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "termios *ptVar18;" type_identifier (pointer_declarator "*ptVar18" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "tcflag_t tVar20;" type_identifier identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "termios *len;" type_identifier (pointer_declarator "*len" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "tcflag_t tVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "undefined4 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "termios tStack_458;" type_identifier identifier ;) (declaration "int iStack_424;" primitive_type identifier ;) (declaration "int *piStack_41c;" primitive_type (pointer_declarator "*piStack_41c" * identifier) ;) (declaration "undefined4 *puStack_418;" type_identifier (pointer_declarator "*puStack_418" * identifier) ;) (declaration "code *pcStack_414;" type_identifier (pointer_declarator "*pcStack_414" * identifier) ;) (declaration "undefined4 uStack_400;" type_identifier identifier ;) (declaration "code *pcStack_3f8;" type_identifier (pointer_declarator "*pcStack_3f8" * identifier) ;) (declaration "undefined4 *puStack_3ec;" type_identifier (pointer_declarator "*puStack_3ec" * identifier) ;) (declaration "termios tStack_3e8;" type_identifier identifier ;) (declaration "uint auStack_3b4 [26];" type_identifier (array_declarator "auStack_3b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_34c [32];" type_identifier (array_declarator "abStack_34c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_32c;" primitive_type identifier ;) (declaration "int *piStack_324;" primitive_type (pointer_declarator "*piStack_324" * identifier) ;) (declaration "undefined4 *puStack_320;" type_identifier (pointer_declarator "*puStack_320" * identifier) ;) (declaration "int iStack_31c;" primitive_type identifier ;) (declaration "uint *puStack_318;" type_identifier (pointer_declarator "*puStack_318" * identifier) ;) (declaration "code *pcStack_314;" type_identifier (pointer_declarator "*pcStack_314" * identifier) ;) (declaration "uint *puStack_300;" type_identifier (pointer_declarator "*puStack_300" * identifier) ;) (declaration "code *pcStack_2f8;" type_identifier (pointer_declarator "*pcStack_2f8" * identifier) ;) (declaration "undefined1 *puStack_2f0;" type_identifier (pointer_declarator "*puStack_2f0" * identifier) ;) (declaration "uint *puStack_2ec;" type_identifier (pointer_declarator "*puStack_2ec" * identifier) ;) (declaration "termios tStack_2e8;" type_identifier identifier ;) (declaration "uint auStack_2b4 [26];" type_identifier (array_declarator "auStack_2b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_24c [32];" type_identifier (array_declarator "abStack_24c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_22c;" primitive_type identifier ;) (declaration "int *piStack_224;" primitive_type (pointer_declarator "*piStack_224" * identifier) ;) (declaration "undefined4 *puStack_220;" type_identifier (pointer_declarator "*puStack_220" * identifier) ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "uint *puStack_218;" type_identifier (pointer_declarator "*puStack_218" * identifier) ;) (declaration "code *pcStack_214;" type_identifier (pointer_declarator "*pcStack_214" * identifier) ;) (declaration "termios *ptStack_200;" type_identifier (pointer_declarator "*ptStack_200" * identifier) ;) (declaration "undefined *puStack_1f8;" type_identifier (pointer_declarator "*puStack_1f8" * identifier) ;) (declaration "undefined1 *puStack_1f0;" type_identifier (pointer_declarator "*puStack_1f0" * identifier) ;) (declaration "termios *ptStack_1ec;" type_identifier (pointer_declarator "*ptStack_1ec" * identifier) ;) (declaration "termios tStack_1e8;" type_identifier identifier ;) (declaration "uint auStack_1b4 [26];" type_identifier (array_declarator "auStack_1b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_14c [32];" type_identifier (array_declarator "abStack_14c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "undefined *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "char *pcStack_11c;" primitive_type (pointer_declarator "*pcStack_11c" * identifier) ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "code *pcStack_114;" type_identifier (pointer_declarator "*pcStack_114" * identifier) ;) (declaration "char *local_100;" primitive_type (pointer_declarator "*local_100" * identifier) ;) (declaration "termios cf;" type_identifier identifier ;) (declaration "termios oldmode;" type_identifier identifier ;) (declaration "termios newmode;" type_identifier identifier ;) (declaration "char line [32];" primitive_type (array_declarator "line [32]" identifier [ number_literal ]) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_000b2f04;" (assignment_expression "puVar4 = PTR___stack_chk_guard_000b2f04" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)PTR___stack_chk_guard_000b2f04;" (assignment_expression "iVar8 = *(int *)PTR___stack_chk_guard_000b2f04" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b2f04" * (cast_expression "(int *)PTR___stack_chk_guard_000b2f04" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar19 = (undefined1 *)port;" (assignment_expression "puVar19 = (undefined1 *)port" identifier = (cast_expression "(undefined1 *)port" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ptVar18 = (termios *)keytype;" (assignment_expression "ptVar18 = (termios *)keytype" identifier = (cast_expression "(termios *)keytype" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = verify_host_key(host,port,keytype,keystr);" (assignment_expression "iVar9 = verify_host_key(host,port,keytype,keystr)" identifier = (call_expression "verify_host_key(host,port,keytype,keystr)" identifier (argument_list "(host,port,keytype,keystr)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar32 = PTR_DAT_000b2398;" (assignment_expression "puVar32 = PTR_DAT_000b2398" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }\n    ptVar18 = &oldmode;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);\n    len = &newmode;\n    ptVar6 = ptVar18;\n    ptVar7 = len;\n    do {\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);\n    cVar1 = ptVar10->c_cc[0];\n    cVar2 = ptVar10->c_cc[1];\n    cVar3 = ptVar10->c_cc[2];\n    puVar19 = &DAT_0000540e;\n    ptVar12->c_line = ptVar10->c_line;\n    ptVar12->c_cc[0] = cVar1;\n    ptVar12->c_cc[1] = cVar2;\n    ptVar12->c_cc[2] = cVar3;\n    newmode.c_lflag = newmode.c_lflag | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    line[0] = '\0';\n    block_and_read((int)line,puVar19,(size_t)len);\n    puVar19 = &DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if ((byte)line[0] < 0xe) {\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }\n    if (*(int *)(puVar32 + 0x36b4) != 0) {\n      postmsg(&cf);\n    }\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }\n    ptVar18 = &oldmode;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);\n    len = &newmode;\n    ptVar6 = ptVar18;\n    ptVar7 = len;\n    do {\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);\n    cVar1 = ptVar10->c_cc[0];\n    cVar2 = ptVar10->c_cc[1];\n    cVar3 = ptVar10->c_cc[2];\n    puVar19 = &DAT_0000540e;\n    ptVar12->c_line = ptVar10->c_line;\n    ptVar12->c_cc[0] = cVar1;\n    ptVar12->c_cc[1] = cVar2;\n    ptVar12->c_cc[2] = cVar3;\n    newmode.c_lflag = newmode.c_lflag | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    line[0] = '\0';\n    block_and_read((int)line,puVar19,(size_t)len);\n    puVar19 = &DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if ((byte)line[0] < 0xe) {\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }\n    if (*(int *)(puVar32 + 0x36b4) != 0) {\n      postmsg(&cf);\n    }\n  }" { (if_statement "if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0" (pointer_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4)" * (cast_expression "(int *)(PTR_DAT_000b2398 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b2398 + 0x36b4)" ( (binary_expression "PTR_DAT_000b2398 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (iVar9 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }" { (if_statement "if (iVar9 == 2) goto LAB_0007fb6c;" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007fb6c;" goto statement_identifier ;)) (labeled_statement "LAB_0007f9e8:\n      if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" statement_identifier : (if_statement "if (iVar9 == 1) {\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)0x1;\n        uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" { (expression_statement "puVar19 = (undefined1 *)0x1;" (assignment_expression "puVar19 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar15 = *(undefined4 *)PTR_stderr_000b2f1c" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }" if (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" ( (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" * (cast_expression "(int *)PTR_console_batch_mode_000b27a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          local_100 = fingerprint;\n          ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n          iVar9 = 0;\n          goto LAB_0007fb30;\n        }" { (expression_statement "local_100 = fingerprint;" (assignment_expression "local_100 = fingerprint" identifier = identifier) ;) (expression_statement "ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90);" (assignment_expression "ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0xc90)" identifier = (cast_expression "(termios *)(PTR_s_entropy_source_000b23f0 + -0xc90)" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0xc90)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0xc90" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15,1,ptVar18,keytype)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) (expression_statement "puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40;" (assignment_expression "puVar23 = PTR_s_entropy_source_000b23f0 + -0xe40" identifier = (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe40" identifier + number_literal)) ;) (goto_statement "goto LAB_0007fa1c;" goto statement_identifier ;) }))) }) (else_clause "else {\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }" else (compound_statement "{\n      premsg(&cf);\n      if (iVar9 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;\n      uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;\n      local_100 = fingerprint;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);\n    }" { (expression_statement "premsg(&cf);" (call_expression "premsg(&cf)" identifier (argument_list "(&cf)" ( (pointer_expression "&cf" & identifier) ))) ;) (if_statement "if (iVar9 != 2) goto LAB_0007f9e8;" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0007f9e8;" goto statement_identifier ;)) (labeled_statement "LAB_0007fb6c:\n      puVar19 = (undefined1 *)0x1;" statement_identifier : (expression_statement "puVar19 = (undefined1 *)0x1;" (assignment_expression "puVar19 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar15 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar15 = *(undefined4 *)PTR_stderr_000b2f1c" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }" if (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" ( (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" * (cast_expression "(int *)PTR_console_batch_mode_000b27a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_100 = fingerprint;\n        ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);\n        iVar9 = 0;\n        goto LAB_0007fb30;\n      }" { (expression_statement "local_100 = fingerprint;" (assignment_expression "local_100 = fingerprint" identifier = identifier) ;) (expression_statement "ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c);" (assignment_expression "ptVar18 = (termios *)(PTR_s_entropy_source_000b23f0 + -0x94c)" identifier = (cast_expression "(termios *)(PTR_s_entropy_source_000b23f0 + -0x94c)" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0x94c)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0x94c" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15,1,ptVar18,keytype)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) (expression_statement "puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4;" (assignment_expression "puVar23 = PTR_s_entropy_source_000b23f0 + -0xbe4" identifier = (binary_expression "PTR_s_entropy_source_000b23f0 + -0xbe4" identifier + number_literal)) ;) (labeled_statement "LAB_0007fa1c:\n      puVar5 = PTR_stderr_000b2f1c;" statement_identifier : (expression_statement "puVar5 = PTR_stderr_000b2f1c;" (assignment_expression "puVar5 = PTR_stderr_000b2f1c" identifier = identifier) ;)) (expression_statement "local_100 = fingerprint;" (assignment_expression "local_100 = fingerprint" identifier = identifier) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15,1,puVar23,keytype)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5);" (call_expression "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar5)" (parenthesized_expression "(*(code *)PTR_fflush_000b2f20)" ( (pointer_expression "*(code *)PTR_fflush_000b2f20" * (cast_expression "(code *)PTR_fflush_000b2f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar5)" ( (pointer_expression "*(undefined4 *)puVar5" * (cast_expression "(undefined4 *)puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) }))) (expression_statement "ptVar18 = &oldmode;" (assignment_expression "ptVar18 = &oldmode" identifier = (pointer_expression "&oldmode" & identifier)) ;) (expression_statement "(*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18);" (call_expression "(*(code *)PTR_tcgetattr_000b2d64)(0,ptVar18)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000b2d64)" ( (pointer_expression "*(code *)PTR_tcgetattr_000b2d64" * (cast_expression "(code *)PTR_tcgetattr_000b2d64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,ptVar18)" ( number_literal , identifier ))) ;) (expression_statement "len = &newmode;" (assignment_expression "len = &newmode" identifier = (pointer_expression "&newmode" & identifier)) ;) (expression_statement "ptVar6 = ptVar18;" (assignment_expression "ptVar6 = ptVar18" identifier = identifier) ;) (expression_statement "ptVar7 = len;" (assignment_expression "ptVar7 = len" identifier = identifier) ;) (do_statement "do {\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);" do (compound_statement "{\n      ptVar12 = ptVar7;\n      ptVar10 = ptVar6;\n      tVar26 = ptVar10->c_oflag;\n      tVar20 = ptVar10->c_cflag;\n      tVar16 = ptVar10->c_lflag;\n      ptVar12->c_iflag = ptVar10->c_iflag;\n      ptVar12->c_oflag = tVar26;\n      ptVar12->c_cflag = tVar20;\n      ptVar12->c_lflag = tVar16;\n      ptVar6 = (termios *)&ptVar10->c_line;\n      ptVar7 = (termios *)&ptVar12->c_line;\n    }" { (expression_statement "ptVar12 = ptVar7;" (assignment_expression "ptVar12 = ptVar7" identifier = identifier) ;) (expression_statement "ptVar10 = ptVar6;" (assignment_expression "ptVar10 = ptVar6" identifier = identifier) ;) (expression_statement "tVar26 = ptVar10->c_oflag;" (assignment_expression "tVar26 = ptVar10->c_oflag" identifier = (field_expression "ptVar10->c_oflag" identifier -> field_identifier)) ;) (expression_statement "tVar20 = ptVar10->c_cflag;" (assignment_expression "tVar20 = ptVar10->c_cflag" identifier = (field_expression "ptVar10->c_cflag" identifier -> field_identifier)) ;) (expression_statement "tVar16 = ptVar10->c_lflag;" (assignment_expression "tVar16 = ptVar10->c_lflag" identifier = (field_expression "ptVar10->c_lflag" identifier -> field_identifier)) ;) (expression_statement "ptVar12->c_iflag = ptVar10->c_iflag;" (assignment_expression "ptVar12->c_iflag = ptVar10->c_iflag" (field_expression "ptVar12->c_iflag" identifier -> field_identifier) = (field_expression "ptVar10->c_iflag" identifier -> field_identifier)) ;) (expression_statement "ptVar12->c_oflag = tVar26;" (assignment_expression "ptVar12->c_oflag = tVar26" (field_expression "ptVar12->c_oflag" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar12->c_cflag = tVar20;" (assignment_expression "ptVar12->c_cflag = tVar20" (field_expression "ptVar12->c_cflag" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar12->c_lflag = tVar16;" (assignment_expression "ptVar12->c_lflag = tVar16" (field_expression "ptVar12->c_lflag" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar6 = (termios *)&ptVar10->c_line;" (assignment_expression "ptVar6 = (termios *)&ptVar10->c_line" identifier = (cast_expression "(termios *)&ptVar10->c_line" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ptVar10->c_line" & (field_expression "ptVar10->c_line" identifier -> field_identifier)))) ;) (expression_statement "ptVar7 = (termios *)&ptVar12->c_line;" (assignment_expression "ptVar7 = (termios *)&ptVar12->c_line" identifier = (cast_expression "(termios *)&ptVar12->c_line" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ptVar12->c_line" & (field_expression "ptVar12->c_line" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(&ptVar10->c_line != oldmode.c_cc + 0x1f)" ( (binary_expression "&ptVar10->c_line != oldmode.c_cc + 0x1f" (pointer_expression "&ptVar10->c_line" & (field_expression "ptVar10->c_line" identifier -> field_identifier)) != (binary_expression "oldmode.c_cc + 0x1f" (field_expression "oldmode.c_cc" identifier . field_identifier) + number_literal)) )) ;) (expression_statement "cVar1 = ptVar10->c_cc[0];" (assignment_expression "cVar1 = ptVar10->c_cc[0]" identifier = (subscript_expression "ptVar10->c_cc[0]" (field_expression "ptVar10->c_cc" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "cVar2 = ptVar10->c_cc[1];" (assignment_expression "cVar2 = ptVar10->c_cc[1]" identifier = (subscript_expression "ptVar10->c_cc[1]" (field_expression "ptVar10->c_cc" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "cVar3 = ptVar10->c_cc[2];" (assignment_expression "cVar3 = ptVar10->c_cc[2]" identifier = (subscript_expression "ptVar10->c_cc[2]" (field_expression "ptVar10->c_cc" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "puVar19 = &DAT_0000540e;" (assignment_expression "puVar19 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "ptVar12->c_line = ptVar10->c_line;" (assignment_expression "ptVar12->c_line = ptVar10->c_line" (field_expression "ptVar12->c_line" identifier -> field_identifier) = (field_expression "ptVar10->c_line" identifier -> field_identifier)) ;) (expression_statement "ptVar12->c_cc[0] = cVar1;" (assignment_expression "ptVar12->c_cc[0] = cVar1" (subscript_expression "ptVar12->c_cc[0]" (field_expression "ptVar12->c_cc" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ptVar12->c_cc[1] = cVar2;" (assignment_expression "ptVar12->c_cc[1] = cVar2" (subscript_expression "ptVar12->c_cc[1]" (field_expression "ptVar12->c_cc" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ptVar12->c_cc[2] = cVar3;" (assignment_expression "ptVar12->c_cc[2] = cVar3" (subscript_expression "ptVar12->c_cc[2]" (field_expression "ptVar12->c_cc" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "newmode.c_lflag = newmode.c_lflag | 0xb;" (assignment_expression "newmode.c_lflag = newmode.c_lflag | 0xb" (field_expression "newmode.c_lflag" identifier . field_identifier) = (binary_expression "newmode.c_lflag | 0xb" (field_expression "newmode.c_lflag" identifier . field_identifier) | number_literal)) ;) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" ( (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" * (cast_expression "(code *)PTR_tcsetattr_000b2e98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "line[0] = '\0';" (assignment_expression "line[0] = '\0'" (subscript_expression "line[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "block_and_read((int)line,puVar19,(size_t)len);" (call_expression "block_and_read((int)line,puVar19,(size_t)len)" identifier (argument_list "((int)line,puVar19,(size_t)len)" ( (cast_expression "(int)line" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(size_t)len" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "puVar19 = &DAT_0000540e;" (assignment_expression "puVar19 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" ( (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" * (cast_expression "(code *)PTR_tcsetattr_000b2e98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((byte)line[0] < 0xe) {\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }" if (parenthesized_expression "((byte)line[0] < 0xe)" ( (binary_expression "(byte)line[0] < 0xe" (cast_expression "(byte)line[0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "line[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n      if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }" { (if_statement "if ((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0) {\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }" if (parenthesized_expression "((int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f)" ( (binary_expression "(0x2401U >> ((byte)line[0] & 0x1f)) << 0x1f" (parenthesized_expression "(0x2401U >> ((byte)line[0] & 0x1f))" ( (binary_expression "0x2401U >> ((byte)line[0] & 0x1f)" number_literal >> (parenthesized_expression "((byte)line[0] & 0x1f)" ( (binary_expression "(byte)line[0] & 0x1f" (cast_expression "(byte)line[0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "line[0]" identifier [ number_literal ])) & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n        ptVar18 = (termios *)&DAT_00000016;\n        puVar19 = (undefined1 *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        iVar9 = *(int *)(puVar32 + 0x36b4);\n        if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }\n        goto LAB_0007fb30;\n      }" { (expression_statement "ptVar18 = (termios *)&DAT_00000016;" (assignment_expression "ptVar18 = (termios *)&DAT_00000016" identifier = (cast_expression "(termios *)&DAT_00000016" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "puVar19 = (undefined1 *)0x1;" (assignment_expression "puVar19 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;" (call_expression "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" (parenthesized_expression "(*(code *)PTR_fwrite_000b2eb0)" ( (pointer_expression "*(code *)PTR_fwrite_000b2eb0" * (cast_expression "(code *)PTR_fwrite_000b2eb0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe58" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "iVar9 = *(int *)(puVar32 + 0x36b4);" (assignment_expression "iVar9 = *(int *)(puVar32 + 0x36b4)" identifier = (pointer_expression "*(int *)(puVar32 + 0x36b4)" * (cast_expression "(int *)(puVar32 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x36b4)" ( (binary_expression "puVar32 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n          postmsg(&cf);\n          iVar9 = 0;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          postmsg(&cf);\n          iVar9 = 0;\n        }" { (expression_statement "postmsg(&cf);" (call_expression "postmsg(&cf)" identifier (argument_list "(&cf)" ( (pointer_expression "&cf" & identifier) ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) }) (else_clause "else if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }" else (if_statement "if ((line[0] & 0xdfU) == 0x59) {\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }" if (parenthesized_expression "((line[0] & 0xdfU) == 0x59)" ( (binary_expression "(line[0] & 0xdfU) == 0x59" (parenthesized_expression "(line[0] & 0xdfU)" ( (binary_expression "line[0] & 0xdfU" (subscript_expression "line[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar19 = (undefined1 *)port;\n      ptVar18 = (termios *)keytype;\n      store_host_key(host,port,keytype,keystr);\n    }" { (expression_statement "puVar19 = (undefined1 *)port;" (assignment_expression "puVar19 = (undefined1 *)port" identifier = (cast_expression "(undefined1 *)port" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ptVar18 = (termios *)keytype;" (assignment_expression "ptVar18 = (termios *)keytype" identifier = (cast_expression "(termios *)keytype" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "store_host_key(host,port,keytype,keystr);" (call_expression "store_host_key(host,port,keytype,keystr)" identifier (argument_list "(host,port,keytype,keystr)" ( identifier , identifier , identifier , identifier ))) ;) })))) (if_statement "if (*(int *)(puVar32 + 0x36b4) != 0) {\n      postmsg(&cf);\n    }" if (parenthesized_expression "(*(int *)(puVar32 + 0x36b4) != 0)" ( (binary_expression "*(int *)(puVar32 + 0x36b4) != 0" (pointer_expression "*(int *)(puVar32 + 0x36b4)" * (cast_expression "(int *)(puVar32 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x36b4)" ( (binary_expression "puVar32 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      postmsg(&cf);\n    }" { (expression_statement "postmsg(&cf);" (call_expression "postmsg(&cf)" identifier (argument_list "(&cf)" ( (pointer_expression "&cf" & identifier) ))) ;) })) })) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007fb30:\n  if (iVar8 == *(int *)puVar4) {\n    return iVar9;\n  }" statement_identifier : (if_statement "if (iVar8 == *(int *)puVar4) {\n    return iVar9;\n  }" if (parenthesized_expression "(iVar8 == *(int *)puVar4)" ( (binary_expression "iVar8 == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar9;\n  }" { (return_statement "return iVar9;" return identifier ;) }))) (expression_statement "pcVar33 = askalg;" (assignment_expression "pcVar33 = askalg" identifier = identifier) ;) (expression_statement "puVar32 = PTR___stack_chk_fail_000b2ed8;" (assignment_expression "puVar32 = PTR___stack_chk_fail_000b2ed8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b2ed8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b2ed8" * (cast_expression "(code *)PTR___stack_chk_fail_000b2ed8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_1f8 = puVar32 + 0x3a6f4;" (assignment_expression "puStack_1f8 = puVar32 + 0x3a6f4" identifier = (binary_expression "puVar32 + 0x3a6f4" identifier + number_literal)) ;) (expression_statement "puStack_124 = puVar4;" (assignment_expression "puStack_124 = puVar4" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)(puVar32 + 0x3271c);" (assignment_expression "iVar8 = *(int *)(puVar32 + 0x3271c)" identifier = (pointer_expression "*(int *)(puVar32 + 0x3271c)" * (cast_expression "(int *)(puVar32 + 0x3271c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3271c)" ( (binary_expression "puVar32 + 0x3271c" identifier + number_literal) ))))) ;) (expression_statement "piVar28 = *(int **)(puVar32 + 0x33288);" (assignment_expression "piVar28 = *(int **)(puVar32 + 0x33288)" identifier = (pointer_expression "*(int **)(puVar32 + 0x33288)" * (cast_expression "(int **)(puVar32 + 0x33288)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33288)" ( (binary_expression "puVar32 + 0x33288" identifier + number_literal) ))))) ;) (expression_statement "iStack_12c = *piVar28;" (assignment_expression "iStack_12c = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "ptStack_200 = ptVar18;" (assignment_expression "ptStack_200 = ptVar18" identifier = identifier) ;) (expression_statement "pcStack_120 = keytype;" (assignment_expression "pcStack_120 = keytype" identifier = identifier) ;) (expression_statement "pcStack_11c = host;" (assignment_expression "pcStack_11c = host" identifier = identifier) ;) (expression_statement "iStack_118 = port;" (assignment_expression "iStack_118 = port" identifier = identifier) ;) (expression_statement "pcStack_114 = pcVar33;" (assignment_expression "pcStack_114 = pcVar33" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_1f0 = puVar19;\n    ptStack_1ec = ptVar18;\n    premsg(&tStack_1e8);\n    ptStack_200 = ptStack_1ec;\n    puVar19 = puStack_1f0;\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_1f0 = puVar19;\n    ptStack_1ec = ptVar18;\n    premsg(&tStack_1e8);\n    ptStack_200 = ptStack_1ec;\n    puVar19 = puStack_1f0;\n  }" { (expression_statement "puStack_1f0 = puVar19;" (assignment_expression "puStack_1f0 = puVar19" identifier = identifier) ;) (expression_statement "ptStack_1ec = ptVar18;" (assignment_expression "ptStack_1ec = ptVar18" identifier = identifier) ;) (expression_statement "premsg(&tStack_1e8);" (call_expression "premsg(&tStack_1e8)" identifier (argument_list "(&tStack_1e8)" ( (pointer_expression "&tStack_1e8" & identifier) ))) ;) (expression_statement "ptStack_200 = ptStack_1ec;" (assignment_expression "ptStack_200 = ptStack_1ec" identifier = identifier) ;) (expression_statement "puVar19 = puStack_1f0;" (assignment_expression "puVar19 = puStack_1f0" identifier = identifier) ;) })) (expression_statement "puVar21 = (undefined1 *)0x1;" (assignment_expression "puVar21 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar30 = *(undefined4 **)(puStack_1f8 + -0x7454);" (assignment_expression "puVar30 = *(undefined4 **)(puStack_1f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(puStack_1f8 + -0x7454)" * (cast_expression "(undefined4 **)(puStack_1f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7454)" ( (binary_expression "puStack_1f8 + -0x7454" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    port = (int)auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar30);\n    (**(code **)(puStack_1f8 + -0x760c))(0,port);\n    puVar24 = auStack_1b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_1b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_14c[0] = 0;\n    block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);\n    puVar21 = &DAT_0000540e;\n    puVar25 = (uint *)port;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }\n    else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }\n  }\n  else {\n    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);\n    iVar9 = 0;\n  }" if (parenthesized_expression "(**(int **)(puStack_1f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(puStack_1f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(puStack_1f8 + -0x7bc8)" * (pointer_expression "*(int **)(puStack_1f8 + -0x7bc8)" * (cast_expression "(int **)(puStack_1f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7bc8)" ( (binary_expression "puStack_1f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    port = (int)auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar30);\n    (**(code **)(puStack_1f8 + -0x760c))(0,port);\n    puVar24 = auStack_1b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_1b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_14c[0] = 0;\n    block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);\n    puVar21 = &DAT_0000540e;\n    puVar25 = (uint *)port;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }\n    else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }\n  }" { (expression_statement "port = (int)auStack_1b4;" (assignment_expression "port = (int)auStack_1b4" identifier = (cast_expression "(int)auStack_1b4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" * (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" * (cast_expression "(code **)(puStack_1f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x75f4)" ( (binary_expression "puStack_1f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar30,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" ( (pointer_expression "*puVar30" * identifier) , number_literal , (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf5c" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x7450))(*puVar30);" (call_expression "(**(code **)(puStack_1f8 + -0x7450))(*puVar30)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x7450))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x7450)" * (pointer_expression "*(code **)(puStack_1f8 + -0x7450)" * (cast_expression "(code **)(puStack_1f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7450)" ( (binary_expression "puStack_1f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar30)" ( (pointer_expression "*puVar30" * identifier) ))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x760c))(0,port);" (call_expression "(**(code **)(puStack_1f8 + -0x760c))(0,port)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x760c))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x760c)" * (pointer_expression "*(code **)(puStack_1f8 + -0x760c)" * (cast_expression "(code **)(puStack_1f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x760c)" ( (binary_expression "puStack_1f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,port)" ( number_literal , identifier ))) ;) (expression_statement "puVar24 = auStack_1b4 + 0xd;" (assignment_expression "puVar24 = auStack_1b4 + 0xd" identifier = (binary_expression "auStack_1b4 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar25 = (uint *)port;" (assignment_expression "puVar25 = (uint *)port" identifier = (cast_expression "(uint *)port" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar14 = puVar24;" (assignment_expression "puVar14 = puVar24" identifier = identifier) ;) (do_statement "do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_1b4 + 0xc);" do (compound_statement "{\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    }" { (expression_statement "puVar11 = puVar25 + 4;" (assignment_expression "puVar11 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar14 + 4;" (assignment_expression "puVar13 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "uVar27 = puVar25[1];" (assignment_expression "uVar27 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar25[2];" (assignment_expression "uVar22 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar25[3];" (assignment_expression "uVar17 = puVar25[3]" identifier = (subscript_expression "puVar25[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = *puVar25;" (assignment_expression "*puVar14 = *puVar25" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar14[1] = uVar27;" (assignment_expression "puVar14[1] = uVar27" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = uVar22;" (assignment_expression "puVar14[2] = uVar22" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uVar17;" (assignment_expression "puVar14[3] = uVar17" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puVar11;" (assignment_expression "puVar25 = puVar11" identifier = identifier) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != auStack_1b4 + 0xc)" ( (binary_expression "puVar11 != auStack_1b4 + 0xc" identifier != (binary_expression "auStack_1b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "puVar19 = &DAT_0000540e;" (assignment_expression "puVar19 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "pcVar33 = *(code **)(puStack_1f8 + -0x74d8);" (assignment_expression "pcVar33 = *(code **)(puStack_1f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" * (cast_expression "(code **)(puStack_1f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74d8)" ( (binary_expression "puStack_1f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar13 = *puVar11;" (assignment_expression "*puVar13 = *puVar11" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;" (assignment_expression "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar33)(0);" (call_expression "(*pcVar33)(0)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "abStack_14c[0] = 0;" (assignment_expression "abStack_14c[0] = 0" (subscript_expression "abStack_14c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "block_and_read((int)abStack_14c,puVar19,(size_t)puVar24);" (call_expression "block_and_read((int)abStack_14c,puVar19,(size_t)puVar24)" identifier (argument_list "((int)abStack_14c,puVar19,(size_t)puVar24)" ( (cast_expression "(int)abStack_14c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(size_t)puVar24" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "puVar21 = &DAT_0000540e;" (assignment_expression "puVar21 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "puVar25 = (uint *)port;" (assignment_expression "puVar25 = (uint *)port" identifier = (cast_expression "(uint *)port" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x74d8))(0);" (call_expression "(**(code **)(puStack_1f8 + -0x74d8))(0)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74d8))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x74d8)" * (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" * (cast_expression "(code **)(puStack_1f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74d8)" ( (binary_expression "puStack_1f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }\n    else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }" if (parenthesized_expression "((abStack_14c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_14c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_14c[0] & 0xdf)" ( (binary_expression "abStack_14c[0] & 0xdf" (subscript_expression "abStack_14c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }\n    }" { (if_statement "if (*(int *)(iVar8 + 0x36b4) == 0) {\n        iVar9 = 1;\n      }\n      else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar8 + 0x36b4) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar9 = 1;\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }" else (compound_statement "{\n        postmsg(&tStack_1e8);\n        iVar9 = 1;\n      }" { (expression_statement "postmsg(&tStack_1e8);" (call_expression "postmsg(&tStack_1e8)" identifier (argument_list "(&tStack_1e8)" ( (pointer_expression "&tStack_1e8" & identifier) ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }" else (compound_statement "{\n      puVar25 = (uint *)&DAT_00000016;\n      puVar21 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;\n      iVar9 = *(int *)(iVar8 + 0x36b4);\n      if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }\n    }" { (expression_statement "puVar25 = (uint *)&DAT_00000016;" (assignment_expression "puVar25 = (uint *)&DAT_00000016" identifier = (cast_expression "(uint *)&DAT_00000016" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "puVar21 = (undefined1 *)0x1;" (assignment_expression "puVar21 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)\n      ;" (call_expression "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74c0))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x74c0)" * (pointer_expression "*(code **)(puStack_1f8 + -0x74c0)" * (cast_expression "(code **)(puStack_1f8 + -0x74c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74c0)" ( (binary_expression "puStack_1f8 + -0x74c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar30)" ( (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf74" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (pointer_expression "*puVar30" * identifier) ))) ;) (expression_statement "iVar9 = *(int *)(iVar8 + 0x36b4);" (assignment_expression "iVar9 = *(int *)(iVar8 + 0x36b4)" identifier = (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        postmsg(&tStack_1e8);\n        iVar9 = 0;\n      }" { (expression_statement "postmsg(&tStack_1e8);" (call_expression "postmsg(&tStack_1e8)" identifier (argument_list "(&tStack_1e8)" ( (pointer_expression "&tStack_1e8" & identifier) ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);\n    iVar9 = 0;\n  }" else (compound_statement "{\n    puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);\n    iVar9 = 0;\n  }" { (expression_statement "puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);" (assignment_expression "puVar25 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" identifier = (cast_expression "(uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" ( (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xedc" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar30,1,puVar25,puVar19)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" * (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" * (cast_expression "(code **)(puStack_1f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x75f4)" ( (binary_expression "puStack_1f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar30,1,puVar25,puVar19)" ( (pointer_expression "*puVar30" * identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_12c == *piVar28) {\n    return iVar9;\n  }" if (parenthesized_expression "(iStack_12c == *piVar28)" ( (binary_expression "iStack_12c == *piVar28" identifier == (pointer_expression "*piVar28" * identifier)) )) (compound_statement "{\n    return iVar9;\n  }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(puStack_1f8 + -0x7498);" (assignment_expression "pcVar33 = *(code **)(puStack_1f8 + -0x7498)" identifier = (pointer_expression "*(code **)(puStack_1f8 + -0x7498)" * (cast_expression "(code **)(puStack_1f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7498)" ( (binary_expression "puStack_1f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = askhk;" (assignment_expression "pcVar34 = askhk" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_2f8 = pcVar33 + 0x3a4d0;" (assignment_expression "pcStack_2f8 = pcVar33 + 0x3a4d0" identifier = (binary_expression "pcVar33 + 0x3a4d0" identifier + number_literal)) ;) (expression_statement "iVar9 = *(int *)(pcVar33 + 0x324f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x324f8)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x324f8)" * (cast_expression "(int *)(pcVar33 + 0x324f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x324f8)" ( (binary_expression "pcVar33 + 0x324f8" identifier + number_literal) ))))) ;) (expression_statement "piVar29 = *(int **)(pcVar33 + 0x33064);" (assignment_expression "piVar29 = *(int **)(pcVar33 + 0x33064)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x33064)" * (cast_expression "(int **)(pcVar33 + 0x33064)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33064)" ( (binary_expression "pcVar33 + 0x33064" identifier + number_literal) ))))) ;) (expression_statement "iStack_22c = *piVar29;" (assignment_expression "iStack_22c = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "puStack_300 = puVar25;" (assignment_expression "puStack_300 = puVar25" identifier = identifier) ;) (expression_statement "piStack_224 = piVar28;" (assignment_expression "piStack_224 = piVar28" identifier = identifier) ;) (expression_statement "puStack_220 = puVar30;" (assignment_expression "puStack_220 = puVar30" identifier = identifier) ;) (expression_statement "iStack_21c = iVar8;" (assignment_expression "iStack_21c = iVar8" identifier = identifier) ;) (expression_statement "puStack_218 = (uint *)port;" (assignment_expression "puStack_218 = (uint *)port" identifier = (cast_expression "(uint *)port" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_214 = pcVar34;" (assignment_expression "pcStack_214 = pcVar34" identifier = identifier) ;) (if_statement "if (*(int *)(iVar9 + 0x36b4) != 0) {\n    puStack_2f0 = puVar21;\n    puStack_2ec = puVar25;\n    premsg(&tStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar21 = puStack_2f0;\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar9 + 0x36b4)" * (cast_expression "(int *)(iVar9 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x36b4)" ( (binary_expression "iVar9 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_2f0 = puVar21;\n    puStack_2ec = puVar25;\n    premsg(&tStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar21 = puStack_2f0;\n  }" { (expression_statement "puStack_2f0 = puVar21;" (assignment_expression "puStack_2f0 = puVar21" identifier = identifier) ;) (expression_statement "puStack_2ec = puVar25;" (assignment_expression "puStack_2ec = puVar25" identifier = identifier) ;) (expression_statement "premsg(&tStack_2e8);" (call_expression "premsg(&tStack_2e8)" identifier (argument_list "(&tStack_2e8)" ( (pointer_expression "&tStack_2e8" & identifier) ))) ;) (expression_statement "puStack_300 = puStack_2ec;" (assignment_expression "puStack_300 = puStack_2ec" identifier = identifier) ;) (expression_statement "puVar21 = puStack_2f0;" (assignment_expression "puVar21 = puStack_2f0" identifier = identifier) ;) })) (expression_statement "puVar30 = (undefined4 *)&DAT_00000001;" (assignment_expression "puVar30 = (undefined4 *)&DAT_00000001" identifier = (cast_expression "(undefined4 *)&DAT_00000001" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "puVar31 = *(undefined4 **)(pcStack_2f8 + -0x7454);" (assignment_expression "puVar31 = *(undefined4 **)(pcStack_2f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(pcStack_2f8 + -0x7454)" * (cast_expression "(undefined4 **)(pcStack_2f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7454)" ( (binary_expression "pcStack_2f8 + -0x7454" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    port = (int)auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,port);\n    puVar24 = auStack_2b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_2b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_24c[0] = 0;\n    block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);\n    puVar30 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }\n    else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);\n    iVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(pcStack_2f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(pcStack_2f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_2f8 + -0x7bc8)" * (pointer_expression "*(int **)(pcStack_2f8 + -0x7bc8)" * (cast_expression "(int **)(pcStack_2f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7bc8)" ( (binary_expression "pcStack_2f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    port = (int)auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,port);\n    puVar24 = auStack_2b4 + 0xd;\n    puVar25 = (uint *)port;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_2b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_24c[0] = 0;\n    block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);\n    puVar30 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }\n    else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }\n  }" { (expression_statement "port = (int)auStack_2b4;" (assignment_expression "port = (int)auStack_2b4" identifier = (cast_expression "(int)auStack_2b4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x75f4)" ( (binary_expression "pcStack_2f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" ( (pointer_expression "*puVar31" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1168" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x7450))(*puVar31);" (call_expression "(**(code **)(pcStack_2f8 + -0x7450))(*puVar31)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x7450)" * (cast_expression "(code **)(pcStack_2f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7450)" ( (binary_expression "pcStack_2f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar31)" ( (pointer_expression "*puVar31" * identifier) ))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x760c))(0,port);" (call_expression "(**(code **)(pcStack_2f8 + -0x760c))(0,port)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x760c))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x760c)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x760c)" * (cast_expression "(code **)(pcStack_2f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x760c)" ( (binary_expression "pcStack_2f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,port)" ( number_literal , identifier ))) ;) (expression_statement "puVar24 = auStack_2b4 + 0xd;" (assignment_expression "puVar24 = auStack_2b4 + 0xd" identifier = (binary_expression "auStack_2b4 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar25 = (uint *)port;" (assignment_expression "puVar25 = (uint *)port" identifier = (cast_expression "(uint *)port" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar14 = puVar24;" (assignment_expression "puVar14 = puVar24" identifier = identifier) ;) (do_statement "do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_2b4 + 0xc);" do (compound_statement "{\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    }" { (expression_statement "puVar11 = puVar25 + 4;" (assignment_expression "puVar11 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar14 + 4;" (assignment_expression "puVar13 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "uVar27 = puVar25[1];" (assignment_expression "uVar27 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar25[2];" (assignment_expression "uVar22 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar25[3];" (assignment_expression "uVar17 = puVar25[3]" identifier = (subscript_expression "puVar25[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = *puVar25;" (assignment_expression "*puVar14 = *puVar25" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar14[1] = uVar27;" (assignment_expression "puVar14[1] = uVar27" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = uVar22;" (assignment_expression "puVar14[2] = uVar22" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uVar17;" (assignment_expression "puVar14[3] = uVar17" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puVar11;" (assignment_expression "puVar25 = puVar11" identifier = identifier) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != auStack_2b4 + 0xc)" ( (binary_expression "puVar11 != auStack_2b4 + 0xc" identifier != (binary_expression "auStack_2b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "puVar19 = &DAT_0000540e;" (assignment_expression "puVar19 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "pcVar33 = *(code **)(pcStack_2f8 + -0x74d8);" (assignment_expression "pcVar33 = *(code **)(pcStack_2f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74d8)" ( (binary_expression "pcStack_2f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar13 = *puVar11;" (assignment_expression "*puVar13 = *puVar11" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;" (assignment_expression "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar33)(0);" (call_expression "(*pcVar33)(0)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "abStack_24c[0] = 0;" (assignment_expression "abStack_24c[0] = 0" (subscript_expression "abStack_24c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "block_and_read((int)abStack_24c,puVar19,(size_t)puVar24);" (call_expression "block_and_read((int)abStack_24c,puVar19,(size_t)puVar24)" identifier (argument_list "((int)abStack_24c,puVar19,(size_t)puVar24)" ( (cast_expression "(int)abStack_24c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(size_t)puVar24" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "puVar30 = (undefined4 *)&DAT_0000540e;" (assignment_expression "puVar30 = (undefined4 *)&DAT_0000540e" identifier = (cast_expression "(undefined4 *)&DAT_0000540e" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000540e" & identifier))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port);" (call_expression "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,port)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74d8))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x74d8)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74d8)" ( (binary_expression "pcStack_2f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0,&DAT_0000540e,port)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }\n    else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }" if (parenthesized_expression "((abStack_24c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_24c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_24c[0] & 0xdf)" ( (binary_expression "abStack_24c[0] & 0xdf" (subscript_expression "abStack_24c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }\n    }" { (if_statement "if (*(int *)(iVar9 + 0x36b4) == 0) {\n        iVar8 = 1;\n      }\n      else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x36b4) == 0)" ( (binary_expression "*(int *)(iVar9 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar9 + 0x36b4)" * (cast_expression "(int *)(iVar9 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x36b4)" ( (binary_expression "iVar9 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar8 = 1;\n      }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }" else (compound_statement "{\n        postmsg(&tStack_2e8);\n        iVar8 = 1;\n      }" { (expression_statement "postmsg(&tStack_2e8);" (call_expression "postmsg(&tStack_2e8)" identifier (argument_list "(&tStack_2e8)" ( (pointer_expression "&tStack_2e8" & identifier) ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }" else (compound_statement "{\n      puVar30 = (undefined4 *)&DAT_00000001;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);\n      iVar8 = *(int *)(iVar9 + 0x36b4);\n      if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }\n    }" { (expression_statement "puVar30 = (undefined4 *)&DAT_00000001;" (assignment_expression "puVar30 = (undefined4 *)&DAT_00000001" identifier = (cast_expression "(undefined4 *)&DAT_00000001" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31);" (call_expression "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74c0))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x74c0)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x74c0)" * (cast_expression "(code **)(pcStack_2f8 + -0x74c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74c0)" ( (binary_expression "pcStack_2f8 + -0x74c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar31)" ( (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1180" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (pointer_expression "*puVar31" * identifier) ))) ;) (expression_statement "iVar8 = *(int *)(iVar9 + 0x36b4);" (assignment_expression "iVar8 = *(int *)(iVar9 + 0x36b4)" identifier = (pointer_expression "*(int *)(iVar9 + 0x36b4)" * (cast_expression "(int *)(iVar9 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x36b4)" ( (binary_expression "iVar9 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        postmsg(&tStack_2e8);\n        iVar8 = 0;\n      }" { (expression_statement "postmsg(&tStack_2e8);" (call_expression "postmsg(&tStack_2e8)" identifier (argument_list "(&tStack_2e8)" ( (pointer_expression "&tStack_2e8" & identifier) ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);\n    iVar8 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);\n    iVar8 = 0;\n  }" { (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x75f4)" ( (binary_expression "pcStack_2f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar31,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar21)" ( (pointer_expression "*puVar31" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1068" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_22c == *piVar29) {\n    return iVar8;\n  }" if (parenthesized_expression "(iStack_22c == *piVar29)" ( (binary_expression "iStack_22c == *piVar29" identifier == (pointer_expression "*piVar29" * identifier)) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(pcStack_2f8 + -0x7498);" (assignment_expression "pcVar33 = *(code **)(pcStack_2f8 + -0x7498)" identifier = (pointer_expression "*(code **)(pcStack_2f8 + -0x7498)" * (cast_expression "(code **)(pcStack_2f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7498)" ( (binary_expression "pcStack_2f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = askappend;" (assignment_expression "pcVar34 = askappend" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_3f8 = pcVar33 + 0x3a2ac;" (assignment_expression "pcStack_3f8 = pcVar33 + 0x3a2ac" identifier = (binary_expression "pcVar33 + 0x3a2ac" identifier + number_literal)) ;) (expression_statement "iVar8 = *(int *)(pcVar33 + 0x322d4);" (assignment_expression "iVar8 = *(int *)(pcVar33 + 0x322d4)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x322d4)" * (cast_expression "(int *)(pcVar33 + 0x322d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x322d4)" ( (binary_expression "pcVar33 + 0x322d4" identifier + number_literal) ))))) ;) (expression_statement "piVar28 = *(int **)(pcVar33 + 0x32e40);" (assignment_expression "piVar28 = *(int **)(pcVar33 + 0x32e40)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x32e40)" * (cast_expression "(int **)(pcVar33 + 0x32e40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x32e40)" ( (binary_expression "pcVar33 + 0x32e40" identifier + number_literal) ))))) ;) (expression_statement "iStack_32c = *piVar28;" (assignment_expression "iStack_32c = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "piStack_324 = piVar29;" (assignment_expression "piStack_324 = piVar29" identifier = identifier) ;) (expression_statement "puStack_320 = puVar31;" (assignment_expression "puStack_320 = puVar31" identifier = identifier) ;) (expression_statement "iStack_31c = iVar9;" (assignment_expression "iStack_31c = iVar9" identifier = identifier) ;) (expression_statement "puStack_318 = (uint *)port;" (assignment_expression "puStack_318 = (uint *)port" identifier = (cast_expression "(uint *)port" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_314 = pcVar34;" (assignment_expression "pcStack_314 = pcVar34" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + 0x36b4) != 0) {\n    puStack_3ec = puVar30;\n    premsg(&tStack_3e8);\n    puVar30 = puStack_3ec;\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_3ec = puVar30;\n    premsg(&tStack_3e8);\n    puVar30 = puStack_3ec;\n  }" { (expression_statement "puStack_3ec = puVar30;" (assignment_expression "puStack_3ec = puVar30" identifier = identifier) ;) (expression_statement "premsg(&tStack_3e8);" (call_expression "premsg(&tStack_3e8)" identifier (argument_list "(&tStack_3e8)" ( (pointer_expression "&tStack_3e8" & identifier) ))) ;) (expression_statement "puVar30 = puStack_3ec;" (assignment_expression "puVar30 = puStack_3ec" identifier = identifier) ;) })) (expression_statement "puVar31 = *(undefined4 **)(pcStack_3f8 + -0x7454);" (assignment_expression "puVar31 = *(undefined4 **)(pcStack_3f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(pcStack_3f8 + -0x7454)" * (cast_expression "(undefined4 **)(pcStack_3f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7454)" ( (binary_expression "pcStack_3f8 + -0x7454" identifier + number_literal) ))))) ;) (expression_statement "uStack_400 = *puVar30;" (assignment_expression "uStack_400 = *puVar30" identifier = (pointer_expression "*puVar30" * identifier)) ;) (if_statement "if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar24 = auStack_3b4 + 0xd;\n    puVar25 = auStack_3b4;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_3b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_34c[0] = 0;\n    block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      postmsg(&tStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar17 = 2;\n    }\n    else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    uVar17 = 0;\n  }" if (parenthesized_expression "(**(int **)(pcStack_3f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(pcStack_3f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_3f8 + -0x7bc8)" * (pointer_expression "*(int **)(pcStack_3f8 + -0x7bc8)" * (cast_expression "(int **)(pcStack_3f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7bc8)" ( (binary_expression "pcStack_3f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar24 = auStack_3b4 + 0xd;\n    puVar25 = auStack_3b4;\n    puVar14 = puVar24;\n    do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_3b4 + 0xc);\n    puVar19 = &DAT_0000540e;\n    pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar13 = *puVar11;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar33)(0);\n    abStack_34c[0] = 0;\n    block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      postmsg(&tStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar17 = 2;\n    }\n    else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x75f4)" ( (binary_expression "pcStack_3f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" ( (pointer_expression "*puVar31" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x1308" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3f8 + -0x7f80)" ( (binary_expression "pcStack_3f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar31);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar31)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" * (cast_expression "(code **)(pcStack_3f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7450)" ( (binary_expression "pcStack_3f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar31)" ( (pointer_expression "*puVar31" * identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x760c))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x760c)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x760c)" * (cast_expression "(code **)(pcStack_3f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x760c)" ( (binary_expression "pcStack_3f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,auStack_3b4)" ( number_literal , identifier ))) ;) (expression_statement "puVar24 = auStack_3b4 + 0xd;" (assignment_expression "puVar24 = auStack_3b4 + 0xd" identifier = (binary_expression "auStack_3b4 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar25 = auStack_3b4;" (assignment_expression "puVar25 = auStack_3b4" identifier = identifier) ;) (expression_statement "puVar14 = puVar24;" (assignment_expression "puVar14 = puVar24" identifier = identifier) ;) (do_statement "do {\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    } while (puVar11 != auStack_3b4 + 0xc);" do (compound_statement "{\n      puVar11 = puVar25 + 4;\n      puVar13 = puVar14 + 4;\n      uVar27 = puVar25[1];\n      uVar22 = puVar25[2];\n      uVar17 = puVar25[3];\n      *puVar14 = *puVar25;\n      puVar14[1] = uVar27;\n      puVar14[2] = uVar22;\n      puVar14[3] = uVar17;\n      puVar25 = puVar11;\n      puVar14 = puVar13;\n    }" { (expression_statement "puVar11 = puVar25 + 4;" (assignment_expression "puVar11 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar14 + 4;" (assignment_expression "puVar13 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "uVar27 = puVar25[1];" (assignment_expression "uVar27 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar25[2];" (assignment_expression "uVar22 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar25[3];" (assignment_expression "uVar17 = puVar25[3]" identifier = (subscript_expression "puVar25[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = *puVar25;" (assignment_expression "*puVar14 = *puVar25" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar14[1] = uVar27;" (assignment_expression "puVar14[1] = uVar27" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = uVar22;" (assignment_expression "puVar14[2] = uVar22" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uVar17;" (assignment_expression "puVar14[3] = uVar17" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puVar11;" (assignment_expression "puVar25 = puVar11" identifier = identifier) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != auStack_3b4 + 0xc)" ( (binary_expression "puVar11 != auStack_3b4 + 0xc" identifier != (binary_expression "auStack_3b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "puVar19 = &DAT_0000540e;" (assignment_expression "puVar19 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "pcVar33 = *(code **)(pcStack_3f8 + -0x74d8);" (assignment_expression "pcVar33 = *(code **)(pcStack_3f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x74d8)" ( (binary_expression "pcStack_3f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar13 = *puVar11;" (assignment_expression "*puVar13 = *puVar11" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;" (assignment_expression "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar33)(0);" (call_expression "(*pcVar33)(0)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "abStack_34c[0] = 0;" (assignment_expression "abStack_34c[0] = 0" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "block_and_read((int)abStack_34c,puVar19,(size_t)puVar24);" (call_expression "block_and_read((int)abStack_34c,puVar19,(size_t)puVar24)" identifier (argument_list "((int)abStack_34c,puVar19,(size_t)puVar24)" ( (cast_expression "(int)abStack_34c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(size_t)puVar24" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x74d8))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x74d8)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x74d8)" ( (binary_expression "pcStack_3f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0,&DAT_0000540e,auStack_3b4)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if (*(int *)(iVar8 + 0x36b4) != 0) {\n      postmsg(&tStack_3e8);\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      postmsg(&tStack_3e8);\n    }" { (expression_statement "postmsg(&tStack_3e8);" (call_expression "postmsg(&tStack_3e8)" identifier (argument_list "(&tStack_3e8)" ( (pointer_expression "&tStack_3e8" & identifier) ))) ;) })) (if_statement "if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar17 = 2;\n    }\n    else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" if (parenthesized_expression "((abStack_34c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_34c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_34c[0] & 0xdf)" ( (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar17 = 2;\n    }" { (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" else (compound_statement "{\n      uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" { (expression_statement "uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);" (assignment_expression "uVar17 = (uint)((abStack_34c[0] & 0xdf) == 0x4e)" identifier = (call_expression "(uint)((abStack_34c[0] & 0xdf) == 0x4e)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((abStack_34c[0] & 0xdf) == 0x4e)" ( (binary_expression "(abStack_34c[0] & 0xdf) == 0x4e" (parenthesized_expression "(abStack_34c[0] & 0xdf)" ( (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) ;) }))) }) (else_clause "else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    uVar17 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar31);\n    uVar17 = 0;\n  }" { (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x75f4)" ( (binary_expression "pcStack_3f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar31,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" ( (pointer_expression "*puVar31" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3f8 + -0x7f80)" ( (binary_expression "pcStack_3f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar31);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar31)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" * (cast_expression "(code **)(pcStack_3f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7450)" ( (binary_expression "pcStack_3f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar31)" ( (pointer_expression "*puVar31" * identifier) ))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_32c != *piVar28) {\n    pcVar33 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar34 = old_keyfile_warning;\n    (*pcVar33)();\n    iVar8 = *(int *)(pcVar33 + 0x320dc);\n    piVar29 = *(int **)(pcVar33 + 0x32c48);\n    iStack_424 = *piVar29;\n    piStack_41c = piVar28;\n    puStack_418 = puVar31;\n    pcStack_414 = pcVar34;\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      premsg(&tStack_458);\n    }\n    ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);\n    (**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }\n    iVar8 = *piVar29;\n    if (iStack_424 != iVar8) {\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }\n    return iVar8;\n  }" if (parenthesized_expression "(iStack_32c != *piVar28)" ( (binary_expression "iStack_32c != *piVar28" identifier != (pointer_expression "*piVar28" * identifier)) )) (compound_statement "{\n    pcVar33 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar34 = old_keyfile_warning;\n    (*pcVar33)();\n    iVar8 = *(int *)(pcVar33 + 0x320dc);\n    piVar29 = *(int **)(pcVar33 + 0x32c48);\n    iStack_424 = *piVar29;\n    piStack_41c = piVar28;\n    puStack_418 = puVar31;\n    pcStack_414 = pcVar34;\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      premsg(&tStack_458);\n    }\n    ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);\n    (**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));\n    if (*(int *)(iVar8 + 0x36b4) != 0) {\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }\n    iVar8 = *piVar29;\n    if (iStack_424 != iVar8) {\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }\n    return iVar8;\n  }" { (expression_statement "pcVar33 = *(code **)(pcStack_3f8 + -0x7498);" (assignment_expression "pcVar33 = *(code **)(pcStack_3f8 + -0x7498)" identifier = (pointer_expression "*(code **)(pcStack_3f8 + -0x7498)" * (cast_expression "(code **)(pcStack_3f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7498)" ( (binary_expression "pcStack_3f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = old_keyfile_warning;" (assignment_expression "pcVar34 = old_keyfile_warning" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(pcVar33 + 0x320dc);" (assignment_expression "iVar8 = *(int *)(pcVar33 + 0x320dc)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x320dc)" * (cast_expression "(int *)(pcVar33 + 0x320dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x320dc)" ( (binary_expression "pcVar33 + 0x320dc" identifier + number_literal) ))))) ;) (expression_statement "piVar29 = *(int **)(pcVar33 + 0x32c48);" (assignment_expression "piVar29 = *(int **)(pcVar33 + 0x32c48)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x32c48)" * (cast_expression "(int **)(pcVar33 + 0x32c48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x32c48)" ( (binary_expression "pcVar33 + 0x32c48" identifier + number_literal) ))))) ;) (expression_statement "iStack_424 = *piVar29;" (assignment_expression "iStack_424 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "piStack_41c = piVar28;" (assignment_expression "piStack_41c = piVar28" identifier = identifier) ;) (expression_statement "puStack_418 = puVar31;" (assignment_expression "puStack_418 = puVar31" identifier = identifier) ;) (expression_statement "pcStack_414 = pcVar34;" (assignment_expression "pcStack_414 = pcVar34" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + 0x36b4) != 0) {\n      premsg(&tStack_458);\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      premsg(&tStack_458);\n    }" { (expression_statement "premsg(&tStack_458);" (call_expression "premsg(&tStack_458)" identifier (argument_list "(&tStack_458)" ( (pointer_expression "&tStack_458" & identifier) ))) ;) })) (expression_statement "ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470);" (assignment_expression "ptVar18 = (termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470)" identifier = (cast_expression "(termios *)(*(int *)(pcVar33 + 0x32134) + -0x1470)" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x32134) + -0x1470)" ( (binary_expression "*(int *)(pcVar33 + 0x32134) + -0x1470" (pointer_expression "*(int *)(pcVar33 + 0x32134)" * (cast_expression "(int *)(pcVar33 + 0x32134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x32134)" ( (binary_expression "pcVar33 + 0x32134" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60));" (call_expression "(**(code **)(pcVar33 + 0x32bf4))(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60))" (parenthesized_expression "(**(code **)(pcVar33 + 0x32bf4))" ( (pointer_expression "**(code **)(pcVar33 + 0x32bf4)" * (pointer_expression "*(code **)(pcVar33 + 0x32bf4)" * (cast_expression "(code **)(pcVar33 + 0x32bf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x32bf4)" ( (binary_expression "pcVar33 + 0x32bf4" identifier + number_literal) ))))) )) (argument_list "(ptVar18,1,0x165,**(undefined4 **)(pcVar33 + 0x32c60))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar33 + 0x32c60)" * (pointer_expression "*(undefined4 **)(pcVar33 + 0x32c60)" * (cast_expression "(undefined4 **)(pcVar33 + 0x32c60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x32c60)" ( (binary_expression "pcVar33 + 0x32c60" identifier + number_literal) ))))) ))) ;) (if_statement "if (*(int *)(iVar8 + 0x36b4) != 0) {\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar8 + 0x36b4)" * (cast_expression "(int *)(iVar8 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36b4)" ( (binary_expression "iVar8 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      ptVar18 = &tStack_458;\n      postmsg(ptVar18);\n    }" { (expression_statement "ptVar18 = &tStack_458;" (assignment_expression "ptVar18 = &tStack_458" identifier = (pointer_expression "&tStack_458" & identifier)) ;) (expression_statement "postmsg(ptVar18);" (call_expression "postmsg(ptVar18)" identifier (argument_list "(ptVar18)" ( identifier ))) ;) })) (expression_statement "iVar8 = *piVar29;" (assignment_expression "iVar8 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (if_statement "if (iStack_424 != iVar8) {\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }" if (parenthesized_expression "(iStack_424 != iVar8)" ( (binary_expression "iStack_424 != iVar8" identifier != identifier) )) (compound_statement "{\n      pcVar33 = *(code **)(pcVar33 + 0x32c1c);\n      (*pcVar33)();\n      iVar8 = *(int *)(pcVar33 + 0x3201c);\n      *(termios **)(iVar8 + 0x36ec) = ptVar18;\n      return iVar8;\n    }" { (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x32c1c);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x32c1c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x32c1c)" * (cast_expression "(code **)(pcVar33 + 0x32c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x32c1c)" ( (binary_expression "pcVar33 + 0x32c1c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(pcVar33 + 0x3201c);" (assignment_expression "iVar8 = *(int *)(pcVar33 + 0x3201c)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x3201c)" * (cast_expression "(int *)(pcVar33 + 0x3201c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3201c)" ( (binary_expression "pcVar33 + 0x3201c" identifier + number_literal) ))))) ;) (expression_statement "*(termios **)(iVar8 + 0x36ec) = ptVar18;" (assignment_expression "*(termios **)(iVar8 + 0x36ec) = ptVar18" (pointer_expression "*(termios **)(iVar8 + 0x36ec)" * (cast_expression "(termios **)(iVar8 + 0x36ec)" ( (type_descriptor "termios **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x36ec)" ( (binary_expression "iVar8 + 0x36ec" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar8;" return identifier ;) })) (return_statement "return iVar8;" return identifier ;) })) (return_statement "return uVar17;" return identifier ;) })))
(translation_unit "uint verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}\n\n" (function_definition "uint verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}" type_identifier (function_declarator "verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined1 auStack_458 [52];" type_identifier (array_declarator "auStack_458 [52]" identifier [ number_literal ]) ;) (declaration "uint uStack_424;" type_identifier identifier ;) (declaration "int *piStack_41c;" primitive_type (pointer_declarator "*piStack_41c" * identifier) ;) (declaration "undefined4 *puStack_418;" type_identifier (pointer_declarator "*puStack_418" * identifier) ;) (declaration "code *pcStack_414;" type_identifier (pointer_declarator "*pcStack_414" * identifier) ;) (declaration "undefined4 uStack_400;" type_identifier identifier ;) (declaration "code *pcStack_3f8;" type_identifier (pointer_declarator "*pcStack_3f8" * identifier) ;) (declaration "undefined4 *puStack_3ec;" type_identifier (pointer_declarator "*puStack_3ec" * identifier) ;) (declaration "undefined1 auStack_3e8 [52];" type_identifier (array_declarator "auStack_3e8 [52]" identifier [ number_literal ]) ;) (declaration "uint auStack_3b4 [26];" type_identifier (array_declarator "auStack_3b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_34c [32];" type_identifier (array_declarator "abStack_34c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_32c;" primitive_type identifier ;) (declaration "int *piStack_324;" primitive_type (pointer_declarator "*piStack_324" * identifier) ;) (declaration "undefined4 *puStack_320;" type_identifier (pointer_declarator "*puStack_320" * identifier) ;) (declaration "int iStack_31c;" primitive_type identifier ;) (declaration "uint *puStack_318;" type_identifier (pointer_declarator "*puStack_318" * identifier) ;) (declaration "code *pcStack_314;" type_identifier (pointer_declarator "*pcStack_314" * identifier) ;) (declaration "uint *puStack_300;" type_identifier (pointer_declarator "*puStack_300" * identifier) ;) (declaration "code *pcStack_2f8;" type_identifier (pointer_declarator "*pcStack_2f8" * identifier) ;) (declaration "undefined1 *puStack_2f0;" type_identifier (pointer_declarator "*puStack_2f0" * identifier) ;) (declaration "uint *puStack_2ec;" type_identifier (pointer_declarator "*puStack_2ec" * identifier) ;) (declaration "undefined1 auStack_2e8 [52];" type_identifier (array_declarator "auStack_2e8 [52]" identifier [ number_literal ]) ;) (declaration "uint auStack_2b4 [26];" type_identifier (array_declarator "auStack_2b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_24c [32];" type_identifier (array_declarator "abStack_24c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_22c;" primitive_type identifier ;) (declaration "int *piStack_224;" primitive_type (pointer_declarator "*piStack_224" * identifier) ;) (declaration "undefined4 *puStack_220;" type_identifier (pointer_declarator "*puStack_220" * identifier) ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "uint *puStack_218;" type_identifier (pointer_declarator "*puStack_218" * identifier) ;) (declaration "code *pcStack_214;" type_identifier (pointer_declarator "*pcStack_214" * identifier) ;) (declaration "uint *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "undefined *puStack_1f8;" type_identifier (pointer_declarator "*puStack_1f8" * identifier) ;) (declaration "uint *puStack_1f0;" type_identifier (pointer_declarator "*puStack_1f0" * identifier) ;) (declaration "uint *puStack_1ec;" type_identifier (pointer_declarator "*puStack_1ec" * identifier) ;) (declaration "undefined1 auStack_1e8 [52];" type_identifier (array_declarator "auStack_1e8 [52]" identifier [ number_literal ]) ;) (declaration "uint auStack_1b4 [26];" type_identifier (array_declarator "auStack_1b4 [26]" identifier [ number_literal ]) ;) (declaration "byte abStack_14c [32];" type_identifier (array_declarator "abStack_14c [32]" identifier [ number_literal ]) ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "undefined *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "uint *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "uint *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "code *pcStack_114;" type_identifier (pointer_declarator "*pcStack_114" * identifier) ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "undefined1 auStack_e8 [52];" type_identifier (array_declarator "auStack_e8 [52]" identifier [ number_literal ]) ;) (declaration "uint local_b4 [26];" type_identifier (array_declarator "local_b4 [26]" identifier [ number_literal ]) ;) (declaration "byte local_4c [32];" type_identifier (array_declarator "local_4c [32]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000b2f04;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000b2f04" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b2f04;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b2f04" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b2f04" * (cast_expression "(int *)PTR___stack_chk_guard_000b2f04" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = param_4;" (assignment_expression "puVar13 = param_4" identifier = identifier) ;) (expression_statement "iVar3 = verify_host_key(param_2,param_3,param_4,param_5);" (assignment_expression "iVar3 = verify_host_key(param_2,param_3,param_4,param_5)" identifier = (call_expression "verify_host_key(param_2,param_3,param_4,param_5)" identifier (argument_list "(param_2,param_3,param_4,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar20 = PTR_DAT_000b2398;" (assignment_expression "puVar20 = PTR_DAT_000b2398" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }" { (if_statement "if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0" (pointer_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4)" * (cast_expression "(int *)(PTR_DAT_000b2398 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b2398 + 0x36b4)" ( (binary_expression "PTR_DAT_000b2398 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }" { (if_statement "if (iVar3 == 2) goto LAB_0007fb6c;" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007fb6c;" goto statement_identifier ;)) (labeled_statement "LAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" statement_identifier : (if_statement "if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" { (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }" if (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" ( (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" * (cast_expression "(int *)PTR_console_batch_mode_000b27a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }" { (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);" (assignment_expression "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90)" identifier = (cast_expression "(uint *)(PTR_s_entropy_source_000b23f0 + -0xc90)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0xc90)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0xc90" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,1,puVar13,param_4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) (expression_statement "puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;" (assignment_expression "puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40" identifier = (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe40" identifier + number_literal)) ;) (goto_statement "goto LAB_0007fa1c;" goto statement_identifier ;) }))) }) (else_clause "else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" else (compound_statement "{\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" { (expression_statement "FUN_0007f63c(auStack_e8);" (call_expression "FUN_0007f63c(auStack_e8)" identifier (argument_list "(auStack_e8)" ( identifier ))) ;) (if_statement "if (iVar3 != 2) goto LAB_0007f9e8;" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0007f9e8;" goto statement_identifier ;)) (labeled_statement "LAB_0007fb6c:\n      puVar9 = (uint *)0x1;" statement_identifier : (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }" if (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" ( (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" * (cast_expression "(int *)PTR_console_batch_mode_000b27a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }" { (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);" (assignment_expression "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c)" identifier = (cast_expression "(uint *)(PTR_s_entropy_source_000b23f0 + -0x94c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0x94c)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0x94c" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,1,puVar13,param_4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) (expression_statement "puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;" (assignment_expression "puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4" identifier = (binary_expression "PTR_s_entropy_source_000b23f0 + -0xbe4" identifier + number_literal)) ;) (labeled_statement "LAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;" statement_identifier : (expression_statement "puVar2 = PTR_stderr_000b2f1c;" (assignment_expression "puVar2 = PTR_stderr_000b2f1c" identifier = identifier) ;)) (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" * (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,1,puVar12,param_4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);" (call_expression "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2)" (parenthesized_expression "(*(code *)PTR_fflush_000b2f20)" ( (pointer_expression "*(code *)PTR_fflush_000b2f20" * (cast_expression "(code *)PTR_fflush_000b2f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar2)" ( (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) }))) (expression_statement "puVar13 = local_b4;" (assignment_expression "puVar13 = local_b4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);" (call_expression "(*(code *)PTR_tcgetattr_000b2d64)(0,puVar13)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000b2d64)" ( (pointer_expression "*(code *)PTR_tcgetattr_000b2d64" * (cast_expression "(code *)PTR_tcgetattr_000b2d64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar13)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "puVar5 = local_b4 + 0xd;" (assignment_expression "puVar5 = local_b4 + 0xd" identifier = (binary_expression "local_b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);" do (compound_statement "{\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    }" { (expression_statement "puVar4 = puVar9 + 4;" (assignment_expression "puVar4 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar5 + 4;" (assignment_expression "puVar6 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar9;" (assignment_expression "*puVar5 = *puVar9" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar5[1] = uVar14;" (assignment_expression "puVar5[1] = uVar14" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar10;" (assignment_expression "puVar5[2] = uVar10" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != local_b4 + 0xc)" ( (binary_expression "puVar4 != local_b4 + 0xc" identifier != (binary_expression "local_b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "*puVar6 = *puVar4;" (assignment_expression "*puVar6 = *puVar4" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "local_b4[0x10] = local_b4[0x10] | 0xb;" (assignment_expression "local_b4[0x10] = local_b4[0x10] | 0xb" (subscript_expression "local_b4[0x10]" identifier [ number_literal ]) = (binary_expression "local_b4[0x10] | 0xb" (subscript_expression "local_b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" ( (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" * (cast_expression "(code *)PTR_tcsetattr_000b2e98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "local_4c[0] = 0;" (assignment_expression "local_4c[0] = 0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(local_4c);" (call_expression "FUN_0007f6a8(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (expression_statement "puVar9 = (uint *)&DAT_0000540e;" (assignment_expression "puVar9 = (uint *)&DAT_0000540e" identifier = (cast_expression "(uint *)&DAT_0000540e" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000540e" & identifier))) ;) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" ( (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" * (cast_expression "(code *)PTR_tcsetattr_000b2e98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" if (parenthesized_expression "(local_4c[0] < 0xe)" ( (binary_expression "local_4c[0] < 0xe" (subscript_expression "local_4c[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }" { (if_statement "if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }" if (parenthesized_expression "((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f)" ( (binary_expression "(0x2401U >> (local_4c[0] & 0x1f)) << 0x1f" (parenthesized_expression "(0x2401U >> (local_4c[0] & 0x1f))" ( (binary_expression "0x2401U >> (local_4c[0] & 0x1f)" number_literal >> (parenthesized_expression "(local_4c[0] & 0x1f)" ( (binary_expression "local_4c[0] & 0x1f" (subscript_expression "local_4c[0]" identifier [ number_literal ]) & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }" { (expression_statement "puVar13 = (uint *)&DAT_00000016;" (assignment_expression "puVar13 = (uint *)&DAT_00000016" identifier = (cast_expression "(uint *)&DAT_00000016" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;" (call_expression "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" (parenthesized_expression "(*(code *)PTR_fwrite_000b2eb0)" ( (pointer_expression "*(code *)PTR_fwrite_000b2eb0" * (cast_expression "(code *)PTR_fwrite_000b2eb0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe58" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" * (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uVar8 = *(uint *)(puVar20 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(puVar20 + 0x36b4)" identifier = (pointer_expression "*(uint *)(puVar20 + 0x36b4)" * (cast_expression "(uint *)(puVar20 + 0x36b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x36b4)" ( (binary_expression "puVar20 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }" { (expression_statement "FUN_0007f688(auStack_e8);" (call_expression "FUN_0007f688(auStack_e8)" identifier (argument_list "(auStack_e8)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0007fb30;" goto statement_identifier ;) })) }) (else_clause "else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" else (if_statement "if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" if (parenthesized_expression "((local_4c[0] & 0xdf) == 0x59)" ( (binary_expression "(local_4c[0] & 0xdf) == 0x59" (parenthesized_expression "(local_4c[0] & 0xdf)" ( (binary_expression "local_4c[0] & 0xdf" (subscript_expression "local_4c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" { (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = param_4;" (assignment_expression "puVar13 = param_4" identifier = identifier) ;) (expression_statement "store_host_key(param_2,param_3,param_4,param_5);" (call_expression "store_host_key(param_2,param_3,param_4,param_5)" identifier (argument_list "(param_2,param_3,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) })))) (if_statement "if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }" if (parenthesized_expression "(*(int *)(puVar20 + 0x36b4) != 0)" ( (binary_expression "*(int *)(puVar20 + 0x36b4) != 0" (pointer_expression "*(int *)(puVar20 + 0x36b4)" * (cast_expression "(int *)(puVar20 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x36b4)" ( (binary_expression "puVar20 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0007f688(auStack_e8);\n    }" { (expression_statement "FUN_0007f688(auStack_e8);" (call_expression "FUN_0007f688(auStack_e8)" identifier (argument_list "(auStack_e8)" ( identifier ))) ;) })) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) }))) (expression_statement "pcVar21 = askalg;" (assignment_expression "pcVar21 = askalg" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_000b2ed8;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000b2ed8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b2ed8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b2ed8" * (cast_expression "(code *)PTR___stack_chk_fail_000b2ed8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_1f8 = puVar20 + 0x3a6f4;" (assignment_expression "puStack_1f8 = puVar20 + 0x3a6f4" identifier = (binary_expression "puVar20 + 0x3a6f4" identifier + number_literal)) ;) (expression_statement "puStack_124 = puVar1;" (assignment_expression "puStack_124 = puVar1" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(puVar20 + 0x3271c);" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x3271c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x3271c)" * (cast_expression "(int *)(puVar20 + 0x3271c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3271c)" ( (binary_expression "puVar20 + 0x3271c" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = *(int **)(puVar20 + 0x33288);" (assignment_expression "piVar15 = *(int **)(puVar20 + 0x33288)" identifier = (pointer_expression "*(int **)(puVar20 + 0x33288)" * (cast_expression "(int **)(puVar20 + 0x33288)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x33288)" ( (binary_expression "puVar20 + 0x33288" identifier + number_literal) ))))) ;) (expression_statement "iStack_12c = *piVar15;" (assignment_expression "iStack_12c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "puStack_200 = puVar13;" (assignment_expression "puStack_200 = puVar13" identifier = identifier) ;) (expression_statement "puStack_120 = param_4;" (assignment_expression "puStack_120 = param_4" identifier = identifier) ;) (expression_statement "uStack_11c = param_2;" (assignment_expression "uStack_11c = param_2" identifier = identifier) ;) (expression_statement "puStack_118 = param_3;" (assignment_expression "puStack_118 = param_3" identifier = identifier) ;) (expression_statement "pcStack_114 = pcVar21;" (assignment_expression "pcStack_114 = pcVar21" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }" { (expression_statement "puStack_1f0 = puVar9;" (assignment_expression "puStack_1f0 = puVar9" identifier = identifier) ;) (expression_statement "puStack_1ec = puVar13;" (assignment_expression "puStack_1ec = puVar13" identifier = identifier) ;) (expression_statement "FUN_0007f63c(auStack_1e8);" (call_expression "FUN_0007f63c(auStack_1e8)" identifier (argument_list "(auStack_1e8)" ( identifier ))) ;) (expression_statement "puStack_200 = puStack_1ec;" (assignment_expression "puStack_200 = puStack_1ec" identifier = identifier) ;) (expression_statement "puVar9 = puStack_1f0;" (assignment_expression "puVar9 = puStack_1f0" identifier = identifier) ;) })) (expression_statement "puVar11 = (undefined1 *)0x1;" (assignment_expression "puVar11 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);" (assignment_expression "puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(puStack_1f8 + -0x7454)" * (cast_expression "(undefined4 **)(puStack_1f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7454)" ( (binary_expression "puStack_1f8 + -0x7454" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(puStack_1f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(puStack_1f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(puStack_1f8 + -0x7bc8)" * (pointer_expression "*(int **)(puStack_1f8 + -0x7bc8)" * (cast_expression "(int **)(puStack_1f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7bc8)" ( (binary_expression "puStack_1f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }" { (expression_statement "param_3 = auStack_1b4;" (assignment_expression "param_3 = auStack_1b4" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" * (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" * (cast_expression "(code **)(puStack_1f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x75f4)" ( (binary_expression "puStack_1f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" ( (pointer_expression "*puVar17" * identifier) , number_literal , (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf5c" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x7450))(*puVar17);" (call_expression "(**(code **)(puStack_1f8 + -0x7450))(*puVar17)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x7450))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x7450)" * (pointer_expression "*(code **)(puStack_1f8 + -0x7450)" * (cast_expression "(code **)(puStack_1f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7450)" ( (binary_expression "puStack_1f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar17)" ( (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x760c))(0,param_3);" (call_expression "(**(code **)(puStack_1f8 + -0x760c))(0,param_3)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x760c))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x760c)" * (pointer_expression "*(code **)(puStack_1f8 + -0x760c)" * (cast_expression "(code **)(puStack_1f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x760c)" ( (binary_expression "puStack_1f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,param_3)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = auStack_1b4 + 0xd;" (assignment_expression "puVar13 = auStack_1b4 + 0xd" identifier = (binary_expression "auStack_1b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);" do (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" { (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != auStack_1b4 + 0xc)" ( (binary_expression "puVar5 != auStack_1b4 + 0xc" identifier != (binary_expression "auStack_1b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "pcVar21 = *(code **)(puStack_1f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(puStack_1f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" * (cast_expression "(code **)(puStack_1f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74d8)" ( (binary_expression "puStack_1f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;" (assignment_expression "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "abStack_14c[0] = 0;" (assignment_expression "abStack_14c[0] = 0" (subscript_expression "abStack_14c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(abStack_14c);" (call_expression "FUN_0007f6a8(abStack_14c)" identifier (argument_list "(abStack_14c)" ( identifier ))) ;) (expression_statement "puVar11 = &DAT_0000540e;" (assignment_expression "puVar11 = &DAT_0000540e" identifier = (pointer_expression "&DAT_0000540e" & identifier)) ;) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x74d8))(0);" (call_expression "(**(code **)(puStack_1f8 + -0x74d8))(0)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74d8))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x74d8)" * (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" * (cast_expression "(code **)(puStack_1f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74d8)" ( (binary_expression "puStack_1f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" if (parenthesized_expression "((abStack_14c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_14c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_14c[0] & 0xdf)" ( (binary_expression "abStack_14c[0] & 0xdf" (subscript_expression "abStack_14c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }" { (if_statement "if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar8 = 1;\n      }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" else (compound_statement "{\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" { (expression_statement "FUN_0007f688(auStack_1e8);" (call_expression "FUN_0007f688(auStack_1e8)" identifier (argument_list "(auStack_1e8)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" else (compound_statement "{\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" { (expression_statement "puVar13 = (uint *)&DAT_00000016;" (assignment_expression "puVar13 = (uint *)&DAT_00000016" identifier = (cast_expression "(uint *)&DAT_00000016" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "puVar11 = (undefined1 *)0x1;" (assignment_expression "puVar11 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;" (call_expression "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74c0))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x74c0)" * (pointer_expression "*(code **)(puStack_1f8 + -0x74c0)" * (cast_expression "(code **)(puStack_1f8 + -0x74c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x74c0)" ( (binary_expression "puStack_1f8 + -0x74c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)" ( (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf74" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x36b4)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x36b4)" * (cast_expression "(uint *)(iVar3 + 0x36b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }" { (expression_statement "FUN_0007f688(auStack_1e8);" (call_expression "FUN_0007f688(auStack_1e8)" identifier (argument_list "(auStack_1e8)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" else (compound_statement "{\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" { (expression_statement "puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);" (assignment_expression "puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" identifier = (cast_expression "(uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" ( (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xedc" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" * (cast_expression "(int *)(puStack_1f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_1f8 + -0x7f80)" ( (binary_expression "puStack_1f8 + -0x7f80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" ( (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" * (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" * (cast_expression "(code **)(puStack_1f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x75f4)" ( (binary_expression "puStack_1f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar17,1,puVar13,puVar9)" ( (pointer_expression "*puVar17" * identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_12c == *piVar15) {\n    return uVar8;\n  }" if (parenthesized_expression "(iStack_12c == *piVar15)" ( (binary_expression "iStack_12c == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(puStack_1f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(puStack_1f8 + -0x7498)" identifier = (pointer_expression "*(code **)(puStack_1f8 + -0x7498)" * (cast_expression "(code **)(puStack_1f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_1f8 + -0x7498)" ( (binary_expression "puStack_1f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = askhk;" (assignment_expression "pcVar22 = askhk" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_2f8 = pcVar21 + 0x3a4d0;" (assignment_expression "pcStack_2f8 = pcVar21 + 0x3a4d0" identifier = (binary_expression "pcVar21 + 0x3a4d0" identifier + number_literal)) ;) (expression_statement "iVar19 = *(int *)(pcVar21 + 0x324f8);" (assignment_expression "iVar19 = *(int *)(pcVar21 + 0x324f8)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x324f8)" * (cast_expression "(int *)(pcVar21 + 0x324f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x324f8)" ( (binary_expression "pcVar21 + 0x324f8" identifier + number_literal) ))))) ;) (expression_statement "piVar16 = *(int **)(pcVar21 + 0x33064);" (assignment_expression "piVar16 = *(int **)(pcVar21 + 0x33064)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x33064)" * (cast_expression "(int **)(pcVar21 + 0x33064)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x33064)" ( (binary_expression "pcVar21 + 0x33064" identifier + number_literal) ))))) ;) (expression_statement "iStack_22c = *piVar16;" (assignment_expression "iStack_22c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "puStack_300 = puVar13;" (assignment_expression "puStack_300 = puVar13" identifier = identifier) ;) (expression_statement "piStack_224 = piVar15;" (assignment_expression "piStack_224 = piVar15" identifier = identifier) ;) (expression_statement "puStack_220 = puVar17;" (assignment_expression "puStack_220 = puVar17" identifier = identifier) ;) (expression_statement "iStack_21c = iVar3;" (assignment_expression "iStack_21c = iVar3" identifier = identifier) ;) (expression_statement "puStack_218 = param_3;" (assignment_expression "puStack_218 = param_3" identifier = identifier) ;) (expression_statement "pcStack_214 = pcVar22;" (assignment_expression "pcStack_214 = pcVar22" identifier = identifier) ;) (if_statement "if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar19 + 0x36b4)" * (cast_expression "(int *)(iVar19 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x36b4)" ( (binary_expression "iVar19 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }" { (expression_statement "puStack_2f0 = puVar11;" (assignment_expression "puStack_2f0 = puVar11" identifier = identifier) ;) (expression_statement "puStack_2ec = puVar13;" (assignment_expression "puStack_2ec = puVar13" identifier = identifier) ;) (expression_statement "FUN_0007f63c(auStack_2e8);" (call_expression "FUN_0007f63c(auStack_2e8)" identifier (argument_list "(auStack_2e8)" ( identifier ))) ;) (expression_statement "puStack_300 = puStack_2ec;" (assignment_expression "puStack_300 = puStack_2ec" identifier = identifier) ;) (expression_statement "puVar11 = puStack_2f0;" (assignment_expression "puVar11 = puStack_2f0" identifier = identifier) ;) })) (expression_statement "puVar17 = (undefined4 *)0x1;" (assignment_expression "puVar17 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);" (assignment_expression "puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(pcStack_2f8 + -0x7454)" * (cast_expression "(undefined4 **)(pcStack_2f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7454)" ( (binary_expression "pcStack_2f8 + -0x7454" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(pcStack_2f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(pcStack_2f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_2f8 + -0x7bc8)" * (pointer_expression "*(int **)(pcStack_2f8 + -0x7bc8)" * (cast_expression "(int **)(pcStack_2f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7bc8)" ( (binary_expression "pcStack_2f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }" { (expression_statement "param_3 = auStack_2b4;" (assignment_expression "param_3 = auStack_2b4" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x75f4)" ( (binary_expression "pcStack_2f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1168" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_2f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x7450)" * (cast_expression "(code **)(pcStack_2f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7450)" ( (binary_expression "pcStack_2f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar18)" ( (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x760c))(0,param_3);" (call_expression "(**(code **)(pcStack_2f8 + -0x760c))(0,param_3)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x760c))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x760c)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x760c)" * (cast_expression "(code **)(pcStack_2f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x760c)" ( (binary_expression "pcStack_2f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,param_3)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "puVar13 = auStack_2b4 + 0xd;" (assignment_expression "puVar13 = auStack_2b4 + 0xd" identifier = (binary_expression "auStack_2b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);" do (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" { (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != auStack_2b4 + 0xc)" ( (binary_expression "puVar5 != auStack_2b4 + 0xc" identifier != (binary_expression "auStack_2b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(pcStack_2f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74d8)" ( (binary_expression "pcStack_2f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;" (assignment_expression "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "abStack_24c[0] = 0;" (assignment_expression "abStack_24c[0] = 0" (subscript_expression "abStack_24c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(abStack_24c);" (call_expression "FUN_0007f6a8(abStack_24c)" identifier (argument_list "(abStack_24c)" ( identifier ))) ;) (expression_statement "puVar17 = (undefined4 *)&DAT_0000540e;" (assignment_expression "puVar17 = (undefined4 *)&DAT_0000540e" identifier = (cast_expression "(undefined4 *)&DAT_0000540e" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000540e" & identifier))) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);" (call_expression "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74d8))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x74d8)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74d8)" ( (binary_expression "pcStack_2f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0,&DAT_0000540e,param_3)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" if (parenthesized_expression "((abStack_24c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_24c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_24c[0] & 0xdf)" ( (binary_expression "abStack_24c[0] & 0xdf" (subscript_expression "abStack_24c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }" { (if_statement "if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar19 + 0x36b4) == 0)" ( (binary_expression "*(int *)(iVar19 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar19 + 0x36b4)" * (cast_expression "(int *)(iVar19 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x36b4)" ( (binary_expression "iVar19 + 0x36b4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar8 = 1;\n      }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" else (compound_statement "{\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" { (expression_statement "FUN_0007f688(auStack_2e8);" (call_expression "FUN_0007f688(auStack_2e8)" identifier (argument_list "(auStack_2e8)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" else (compound_statement "{\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" { (expression_statement "puVar17 = (undefined4 *)0x1;" (assignment_expression "puVar17 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);" (call_expression "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74c0))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x74c0)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x74c0)" * (cast_expression "(code **)(pcStack_2f8 + -0x74c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x74c0)" ( (binary_expression "pcStack_2f8 + -0x74c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18)" ( (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1180" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar19 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 0x36b4)" identifier = (pointer_expression "*(uint *)(iVar19 + 0x36b4)" * (cast_expression "(uint *)(iVar19 + 0x36b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x36b4)" ( (binary_expression "iVar19 + 0x36b4" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }" { (expression_statement "FUN_0007f688(auStack_2e8);" (call_expression "FUN_0007f688(auStack_2e8)" identifier (argument_list "(auStack_2e8)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" { (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x75f4)" ( (binary_expression "pcStack_2f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1068" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f8 + -0x7f80)" ( (binary_expression "pcStack_2f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_22c == *piVar16) {\n    return uVar8;\n  }" if (parenthesized_expression "(iStack_22c == *piVar16)" ( (binary_expression "iStack_22c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_2f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(pcStack_2f8 + -0x7498)" identifier = (pointer_expression "*(code **)(pcStack_2f8 + -0x7498)" * (cast_expression "(code **)(pcStack_2f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f8 + -0x7498)" ( (binary_expression "pcStack_2f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = askappend;" (assignment_expression "pcVar22 = askappend" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_3f8 = pcVar21 + 0x3a2ac;" (assignment_expression "pcStack_3f8 = pcVar21 + 0x3a2ac" identifier = (binary_expression "pcVar21 + 0x3a2ac" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(pcVar21 + 0x322d4);" (assignment_expression "iVar3 = *(int *)(pcVar21 + 0x322d4)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x322d4)" * (cast_expression "(int *)(pcVar21 + 0x322d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x322d4)" ( (binary_expression "pcVar21 + 0x322d4" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x32e40);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x32e40)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x32e40)" * (cast_expression "(int **)(pcVar21 + 0x32e40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32e40)" ( (binary_expression "pcVar21 + 0x32e40" identifier + number_literal) ))))) ;) (expression_statement "iStack_32c = *piVar15;" (assignment_expression "iStack_32c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piStack_324 = piVar16;" (assignment_expression "piStack_324 = piVar16" identifier = identifier) ;) (expression_statement "puStack_320 = puVar18;" (assignment_expression "puStack_320 = puVar18" identifier = identifier) ;) (expression_statement "iStack_31c = iVar19;" (assignment_expression "iStack_31c = iVar19" identifier = identifier) ;) (expression_statement "puStack_318 = param_3;" (assignment_expression "puStack_318 = param_3" identifier = identifier) ;) (expression_statement "pcStack_314 = pcVar22;" (assignment_expression "pcStack_314 = pcVar22" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }" { (expression_statement "puStack_3ec = puVar17;" (assignment_expression "puStack_3ec = puVar17" identifier = identifier) ;) (expression_statement "FUN_0007f63c(auStack_3e8);" (call_expression "FUN_0007f63c(auStack_3e8)" identifier (argument_list "(auStack_3e8)" ( identifier ))) ;) (expression_statement "puVar17 = puStack_3ec;" (assignment_expression "puVar17 = puStack_3ec" identifier = identifier) ;) })) (expression_statement "puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);" (assignment_expression "puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454)" identifier = (pointer_expression "*(undefined4 **)(pcStack_3f8 + -0x7454)" * (cast_expression "(undefined4 **)(pcStack_3f8 + -0x7454)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7454)" ( (binary_expression "pcStack_3f8 + -0x7454" identifier + number_literal) ))))) ;) (expression_statement "uStack_400 = *puVar17;" (assignment_expression "uStack_400 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (if_statement "if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" if (parenthesized_expression "(**(int **)(pcStack_3f8 + -0x7bc8) == 0)" ( (binary_expression "**(int **)(pcStack_3f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_3f8 + -0x7bc8)" * (pointer_expression "*(int **)(pcStack_3f8 + -0x7bc8)" * (cast_expression "(int **)(pcStack_3f8 + -0x7bc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7bc8)" ( (binary_expression "pcStack_3f8 + -0x7bc8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x75f4)" ( (binary_expression "pcStack_3f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x1308" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3f8 + -0x7f80)" ( (binary_expression "pcStack_3f8 + -0x7f80" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" * (cast_expression "(code **)(pcStack_3f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7450)" ( (binary_expression "pcStack_3f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar18)" ( (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x760c))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x760c)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x760c)" * (cast_expression "(code **)(pcStack_3f8 + -0x760c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x760c)" ( (binary_expression "pcStack_3f8 + -0x760c" identifier + number_literal) ))))) )) (argument_list "(0,auStack_3b4)" ( number_literal , identifier ))) ;) (expression_statement "puVar9 = auStack_3b4;" (assignment_expression "puVar9 = auStack_3b4" identifier = identifier) ;) (expression_statement "puVar13 = auStack_3b4 + 0xd;" (assignment_expression "puVar13 = auStack_3b4 + 0xd" identifier = (binary_expression "auStack_3b4 + 0xd" identifier + number_literal)) ;) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);" do (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" { (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != auStack_3b4 + 0xc)" ( (binary_expression "puVar5 != auStack_3b4 + 0xc" identifier != (binary_expression "auStack_3b4 + 0xc" identifier + number_literal)) )) ;) (expression_statement "pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(pcStack_3f8 + -0x74d8)" identifier = (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x74d8)" ( (binary_expression "pcStack_3f8 + -0x74d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;" (assignment_expression "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" identifier [ number_literal ]) = (binary_expression "auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(0,&DAT_0000540e)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) ))) ;) (expression_statement "abStack_34c[0] = 0;" (assignment_expression "abStack_34c[0] = 0" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0007f6a8(abStack_34c);" (call_expression "FUN_0007f6a8(abStack_34c)" identifier (argument_list "(abStack_34c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x74d8))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x74d8)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" * (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x74d8)" ( (binary_expression "pcStack_3f8 + -0x74d8" identifier + number_literal) ))))) )) (argument_list "(0,&DAT_0000540e,auStack_3b4)" ( number_literal , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0007f688(auStack_3e8);\n    }" { (expression_statement "FUN_0007f688(auStack_3e8);" (call_expression "FUN_0007f688(auStack_3e8)" identifier (argument_list "(auStack_3e8)" ( identifier ))) ;) })) (if_statement "if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" if (parenthesized_expression "((abStack_34c[0] & 0xdf) == 0x59)" ( (binary_expression "(abStack_34c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_34c[0] & 0xdf)" ( (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar8 = 2;\n    }" { (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" else (compound_statement "{\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" { (expression_statement "uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);" (assignment_expression "uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e)" identifier = (call_expression "(uint)((abStack_34c[0] & 0xdf) == 0x4e)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((abStack_34c[0] & 0xdf) == 0x4e)" ( (binary_expression "(abStack_34c[0] & 0xdf) == 0x4e" (parenthesized_expression "(abStack_34c[0] & 0xdf)" ( (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) ;) }))) }) (else_clause "else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" { (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" * (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x75f4)" ( (binary_expression "pcStack_3f8 + -0x75f4" identifier + number_literal) ))))) )) (argument_list "(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" ( (pointer_expression "*puVar18" * identifier) , number_literal , (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" * (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3f8 + -0x7f80)" ( (binary_expression "pcStack_3f8 + -0x7f80" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" ( (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" * (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" * (cast_expression "(code **)(pcStack_3f8 + -0x7450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7450)" ( (binary_expression "pcStack_3f8 + -0x7450" identifier + number_literal) ))))) )) (argument_list "(*puVar18)" ( (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }" if (parenthesized_expression "(iStack_32c != *piVar15)" ( (binary_expression "iStack_32c != *piVar15" identifier != (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }" { (expression_statement "pcVar21 = *(code **)(pcStack_3f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(pcStack_3f8 + -0x7498)" identifier = (pointer_expression "*(code **)(pcStack_3f8 + -0x7498)" * (cast_expression "(code **)(pcStack_3f8 + -0x7498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3f8 + -0x7498)" ( (binary_expression "pcStack_3f8 + -0x7498" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = old_keyfile_warning;" (assignment_expression "pcVar22 = old_keyfile_warning" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(pcVar21 + 0x320dc);" (assignment_expression "iVar3 = *(int *)(pcVar21 + 0x320dc)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x320dc)" * (cast_expression "(int *)(pcVar21 + 0x320dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x320dc)" ( (binary_expression "pcVar21 + 0x320dc" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = *(uint **)(pcVar21 + 0x32c48);" (assignment_expression "puVar9 = *(uint **)(pcVar21 + 0x32c48)" identifier = (pointer_expression "*(uint **)(pcVar21 + 0x32c48)" * (cast_expression "(uint **)(pcVar21 + 0x32c48)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32c48)" ( (binary_expression "pcVar21 + 0x32c48" identifier + number_literal) ))))) ;) (expression_statement "uStack_424 = *puVar9;" (assignment_expression "uStack_424 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "piStack_41c = piVar15;" (assignment_expression "piStack_41c = piVar15" identifier = identifier) ;) (expression_statement "puStack_418 = puVar18;" (assignment_expression "puStack_418 = puVar18" identifier = identifier) ;) (expression_statement "pcStack_414 = pcVar22;" (assignment_expression "pcStack_414 = pcVar22" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0007f63c(auStack_458);\n    }" { (expression_statement "FUN_0007f63c(auStack_458);" (call_expression "FUN_0007f63c(auStack_458)" identifier (argument_list "(auStack_458)" ( identifier ))) ;) })) (expression_statement "puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);" (assignment_expression "puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470)" identifier = (cast_expression "(undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar21 + 0x32134) + -0x1470)" ( (binary_expression "*(int *)(pcVar21 + 0x32134) + -0x1470" (pointer_expression "*(int *)(pcVar21 + 0x32134)" * (cast_expression "(int *)(pcVar21 + 0x32134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x32134)" ( (binary_expression "pcVar21 + 0x32134" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));" (call_expression "(**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60))" (parenthesized_expression "(**(code **)(pcVar21 + 0x32bf4))" ( (pointer_expression "**(code **)(pcVar21 + 0x32bf4)" * (pointer_expression "*(code **)(pcVar21 + 0x32bf4)" * (cast_expression "(code **)(pcVar21 + 0x32bf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32bf4)" ( (binary_expression "pcVar21 + 0x32bf4" identifier + number_literal) ))))) )) (argument_list "(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar21 + 0x32c60)" * (pointer_expression "*(undefined4 **)(pcVar21 + 0x32c60)" * (cast_expression "(undefined4 **)(pcVar21 + 0x32c60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32c60)" ( (binary_expression "pcVar21 + 0x32c60" identifier + number_literal) ))))) ))) ;) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" * (cast_expression "(int *)(iVar3 + 0x36b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36b4)" ( (binary_expression "iVar3 + 0x36b4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }" { (expression_statement "puVar11 = auStack_458;" (assignment_expression "puVar11 = auStack_458" identifier = identifier) ;) (expression_statement "FUN_0007f688();" (call_expression "FUN_0007f688()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar8 = *puVar9;" (assignment_expression "uVar8 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }" if (parenthesized_expression "(uStack_424 != uVar8)" ( (binary_expression "uStack_424 != uVar8" identifier != identifier) )) (compound_statement "{\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }" { (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x32c1c);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x32c1c)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x32c1c)" * (cast_expression "(code **)(pcVar21 + 0x32c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x32c1c)" ( (binary_expression "pcVar21 + 0x32c1c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(pcVar21 + 0x3201c);" (assignment_expression "uVar8 = *(uint *)(pcVar21 + 0x3201c)" identifier = (pointer_expression "*(uint *)(pcVar21 + 0x3201c)" * (cast_expression "(uint *)(pcVar21 + 0x3201c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3201c)" ( (binary_expression "pcVar21 + 0x3201c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(uVar8 + 0x36ec) = puVar11;" (assignment_expression "*(undefined1 **)(uVar8 + 0x36ec) = puVar11" (pointer_expression "*(undefined1 **)(uVar8 + 0x36ec)" * (cast_expression "(undefined1 **)(uVar8 + 0x36ec)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x36ec)" ( (binary_expression "uVar8 + 0x36ec" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar8;" return identifier ;) })) (return_statement "return uVar8;" return identifier ;) })) (return_statement "return uVar8;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) ))) )) << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = 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 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (assignment_expression 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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * 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 IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (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 (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression 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 IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == 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 { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (assignment_expression 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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * 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 IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (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 (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & 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 IDENT + LIT) ))))) )) (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == 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 { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * 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 IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (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 (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "uint verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}" (type_identifier "uint") (function_declarator "verify_ssh_host_key(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)" (identifier "verify_ssh_host_key") (parameter_list "(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,\n                        undefined4 param_5,undefined4 param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\n  uint *puVar13;\n  uint uVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined1 auStack_458 [52];\n  uint uStack_424;\n  int *piStack_41c;\n  undefined4 *puStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  code *pcStack_3f8;\n  undefined4 *puStack_3ec;\n  undefined1 auStack_3e8 [52];\n  uint auStack_3b4 [26];\n  byte abStack_34c [32];\n  int iStack_32c;\n  int *piStack_324;\n  undefined4 *puStack_320;\n  int iStack_31c;\n  uint *puStack_318;\n  code *pcStack_314;\n  uint *puStack_300;\n  code *pcStack_2f8;\n  undefined1 *puStack_2f0;\n  uint *puStack_2ec;\n  undefined1 auStack_2e8 [52];\n  uint auStack_2b4 [26];\n  byte abStack_24c [32];\n  int iStack_22c;\n  int *piStack_224;\n  undefined4 *puStack_220;\n  int iStack_21c;\n  uint *puStack_218;\n  code *pcStack_214;\n  uint *puStack_200;\n  undefined *puStack_1f8;\n  uint *puStack_1f0;\n  uint *puStack_1ec;\n  undefined1 auStack_1e8 [52];\n  uint auStack_1b4 [26];\n  byte abStack_14c [32];\n  int iStack_12c;\n  undefined *puStack_124;\n  uint *puStack_120;\n  undefined4 uStack_11c;\n  uint *puStack_118;\n  code *pcStack_114;\n  undefined4 local_100;\n  undefined1 auStack_e8 [52];\n  uint local_b4 [26];\n  byte local_4c [32];\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000b2f04;\n  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;\n  puVar9 = param_3;\n  puVar13 = param_4;\n  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);\n  puVar20 = PTR_DAT_000b2398;\n  if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }\n  uVar8 = 1;\nLAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }\n  pcVar21 = askalg;\n  puVar20 = PTR___stack_chk_fail_000b2ed8;\n  (*(code *)PTR___stack_chk_fail_000b2ed8)();\n  puStack_1f8 = puVar20 + 0x3a6f4;\n  puStack_124 = puVar1;\n  iVar3 = *(int *)(puVar20 + 0x3271c);\n  piVar15 = *(int **)(puVar20 + 0x33288);\n  iStack_12c = *piVar15;\n  puStack_200 = puVar13;\n  puStack_120 = param_4;\n  uStack_11c = param_2;\n  puStack_118 = param_3;\n  pcStack_114 = pcVar21;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }\n  puVar11 = (undefined1 *)0x1;\n  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);\n  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }\n  if (iStack_12c == *piVar15) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(puStack_1f8 + -0x7498);\n  pcVar22 = askhk;\n  (*pcVar21)();\n  pcStack_2f8 = pcVar21 + 0x3a4d0;\n  iVar19 = *(int *)(pcVar21 + 0x324f8);\n  piVar16 = *(int **)(pcVar21 + 0x33064);\n  iStack_22c = *piVar16;\n  puStack_300 = puVar13;\n  piStack_224 = piVar15;\n  puStack_220 = puVar17;\n  iStack_21c = iVar3;\n  puStack_218 = param_3;\n  pcStack_214 = pcVar22;\n  if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }\n  puVar17 = (undefined4 *)0x1;\n  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);\n  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }\n  if (iStack_22c == *piVar16) {\n    return uVar8;\n  }\n  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);\n  pcVar22 = askappend;\n  (*pcVar21)();\n  pcStack_3f8 = pcVar21 + 0x3a2ac;\n  iVar3 = *(int *)(pcVar21 + 0x322d4);\n  piVar15 = *(int **)(pcVar21 + 0x32e40);\n  iStack_32c = *piVar15;\n  piStack_324 = piVar16;\n  puStack_320 = puVar18;\n  iStack_31c = iVar19;\n  puStack_318 = param_3;\n  pcStack_314 = pcVar22;\n  if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }\n  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);\n  uStack_400 = *puVar17;\n  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }\n  if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }\n  return uVar8;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "undefined1 auStack_458 [52];" (type_identifier "undefined1") (array_declarator "auStack_458 [52]" (identifier "auStack_458") ([ "[") (number_literal "52") (] "]")) (; ";")) (declaration "uint uStack_424;" (type_identifier "uint") (identifier "uStack_424") (; ";")) (declaration "int *piStack_41c;" (primitive_type "int") (pointer_declarator "*piStack_41c" (* "*") (identifier "piStack_41c")) (; ";")) (declaration "undefined4 *puStack_418;" (type_identifier "undefined4") (pointer_declarator "*puStack_418" (* "*") (identifier "puStack_418")) (; ";")) (declaration "code *pcStack_414;" (type_identifier "code") (pointer_declarator "*pcStack_414" (* "*") (identifier "pcStack_414")) (; ";")) (declaration "undefined4 uStack_400;" (type_identifier "undefined4") (identifier "uStack_400") (; ";")) (declaration "code *pcStack_3f8;" (type_identifier "code") (pointer_declarator "*pcStack_3f8" (* "*") (identifier "pcStack_3f8")) (; ";")) (declaration "undefined4 *puStack_3ec;" (type_identifier "undefined4") (pointer_declarator "*puStack_3ec" (* "*") (identifier "puStack_3ec")) (; ";")) (declaration "undefined1 auStack_3e8 [52];" (type_identifier "undefined1") (array_declarator "auStack_3e8 [52]" (identifier "auStack_3e8") ([ "[") (number_literal "52") (] "]")) (; ";")) (declaration "uint auStack_3b4 [26];" (type_identifier "uint") (array_declarator "auStack_3b4 [26]" (identifier "auStack_3b4") ([ "[") (number_literal "26") (] "]")) (; ";")) (declaration "byte abStack_34c [32];" (type_identifier "byte") (array_declarator "abStack_34c [32]" (identifier "abStack_34c") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int iStack_32c;" (primitive_type "int") (identifier "iStack_32c") (; ";")) (declaration "int *piStack_324;" (primitive_type "int") (pointer_declarator "*piStack_324" (* "*") (identifier "piStack_324")) (; ";")) (declaration "undefined4 *puStack_320;" (type_identifier "undefined4") (pointer_declarator "*puStack_320" (* "*") (identifier "puStack_320")) (; ";")) (declaration "int iStack_31c;" (primitive_type "int") (identifier "iStack_31c") (; ";")) (declaration "uint *puStack_318;" (type_identifier "uint") (pointer_declarator "*puStack_318" (* "*") (identifier "puStack_318")) (; ";")) (declaration "code *pcStack_314;" (type_identifier "code") (pointer_declarator "*pcStack_314" (* "*") (identifier "pcStack_314")) (; ";")) (declaration "uint *puStack_300;" (type_identifier "uint") (pointer_declarator "*puStack_300" (* "*") (identifier "puStack_300")) (; ";")) (declaration "code *pcStack_2f8;" (type_identifier "code") (pointer_declarator "*pcStack_2f8" (* "*") (identifier "pcStack_2f8")) (; ";")) (declaration "undefined1 *puStack_2f0;" (type_identifier "undefined1") (pointer_declarator "*puStack_2f0" (* "*") (identifier "puStack_2f0")) (; ";")) (declaration "uint *puStack_2ec;" (type_identifier "uint") (pointer_declarator "*puStack_2ec" (* "*") (identifier "puStack_2ec")) (; ";")) (declaration "undefined1 auStack_2e8 [52];" (type_identifier "undefined1") (array_declarator "auStack_2e8 [52]" (identifier "auStack_2e8") ([ "[") (number_literal "52") (] "]")) (; ";")) (declaration "uint auStack_2b4 [26];" (type_identifier "uint") (array_declarator "auStack_2b4 [26]" (identifier "auStack_2b4") ([ "[") (number_literal "26") (] "]")) (; ";")) (declaration "byte abStack_24c [32];" (type_identifier "byte") (array_declarator "abStack_24c [32]" (identifier "abStack_24c") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int iStack_22c;" (primitive_type "int") (identifier "iStack_22c") (; ";")) (declaration "int *piStack_224;" (primitive_type "int") (pointer_declarator "*piStack_224" (* "*") (identifier "piStack_224")) (; ";")) (declaration "undefined4 *puStack_220;" (type_identifier "undefined4") (pointer_declarator "*puStack_220" (* "*") (identifier "puStack_220")) (; ";")) (declaration "int iStack_21c;" (primitive_type "int") (identifier "iStack_21c") (; ";")) (declaration "uint *puStack_218;" (type_identifier "uint") (pointer_declarator "*puStack_218" (* "*") (identifier "puStack_218")) (; ";")) (declaration "code *pcStack_214;" (type_identifier "code") (pointer_declarator "*pcStack_214" (* "*") (identifier "pcStack_214")) (; ";")) (declaration "uint *puStack_200;" (type_identifier "uint") (pointer_declarator "*puStack_200" (* "*") (identifier "puStack_200")) (; ";")) (declaration "undefined *puStack_1f8;" (type_identifier "undefined") (pointer_declarator "*puStack_1f8" (* "*") (identifier "puStack_1f8")) (; ";")) (declaration "uint *puStack_1f0;" (type_identifier "uint") (pointer_declarator "*puStack_1f0" (* "*") (identifier "puStack_1f0")) (; ";")) (declaration "uint *puStack_1ec;" (type_identifier "uint") (pointer_declarator "*puStack_1ec" (* "*") (identifier "puStack_1ec")) (; ";")) (declaration "undefined1 auStack_1e8 [52];" (type_identifier "undefined1") (array_declarator "auStack_1e8 [52]" (identifier "auStack_1e8") ([ "[") (number_literal "52") (] "]")) (; ";")) (declaration "uint auStack_1b4 [26];" (type_identifier "uint") (array_declarator "auStack_1b4 [26]" (identifier "auStack_1b4") ([ "[") (number_literal "26") (] "]")) (; ";")) (declaration "byte abStack_14c [32];" (type_identifier "byte") (array_declarator "abStack_14c [32]" (identifier "abStack_14c") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int iStack_12c;" (primitive_type "int") (identifier "iStack_12c") (; ";")) (declaration "undefined *puStack_124;" (type_identifier "undefined") (pointer_declarator "*puStack_124" (* "*") (identifier "puStack_124")) (; ";")) (declaration "uint *puStack_120;" (type_identifier "uint") (pointer_declarator "*puStack_120" (* "*") (identifier "puStack_120")) (; ";")) (declaration "undefined4 uStack_11c;" (type_identifier "undefined4") (identifier "uStack_11c") (; ";")) (declaration "uint *puStack_118;" (type_identifier "uint") (pointer_declarator "*puStack_118" (* "*") (identifier "puStack_118")) (; ";")) (declaration "code *pcStack_114;" (type_identifier "code") (pointer_declarator "*pcStack_114" (* "*") (identifier "pcStack_114")) (; ";")) (declaration "undefined4 local_100;" (type_identifier "undefined4") (identifier "local_100") (; ";")) (declaration "undefined1 auStack_e8 [52];" (type_identifier "undefined1") (array_declarator "auStack_e8 [52]" (identifier "auStack_e8") ([ "[") (number_literal "52") (] "]")) (; ";")) (declaration "uint local_b4 [26];" (type_identifier "uint") (array_declarator "local_b4 [26]" (identifier "local_b4") ([ "[") (number_literal "26") (] "]")) (; ";")) (declaration "byte local_4c [32];" (type_identifier "byte") (array_declarator "local_4c [32]" (identifier "local_4c") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000b2f04;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000b2f04" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000b2f04")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b2f04;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b2f04" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b2f04" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b2f04" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b2f04")))) (; ";")) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" (identifier "puVar9") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar13 = param_4;" (assignment_expression "puVar13 = param_4" (identifier "puVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar3 = verify_host_key(param_2,param_3,param_4,param_5);" (assignment_expression "iVar3 = verify_host_key(param_2,param_3,param_4,param_5)" (identifier "iVar3") (= "=") (call_expression "verify_host_key(param_2,param_3,param_4,param_5)" (identifier "verify_host_key") (argument_list "(param_2,param_3,param_4,param_5)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "puVar20 = PTR_DAT_000b2398;" (assignment_expression "puVar20 = PTR_DAT_000b2398" (identifier "puVar20") (= "=") (identifier "PTR_DAT_000b2398")) (; ";")) (if_statement "if (iVar3 != 0) {\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }\n    puVar13 = local_b4;\n    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);\n    puVar9 = puVar13;\n    puVar5 = local_b4 + 0xd;\n    do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);\n    *puVar6 = *puVar4;\n    local_b4[0x10] = local_b4[0x10] | 0xb;\n    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);\n    local_4c[0] = 0;\n    FUN_0007f6a8(local_4c);\n    puVar9 = (uint *)&DAT_0000540e;\n    (*(code *)PTR_tcsetattr_000b2e98)(0);\n    if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }\n    if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }\n  }" ({ "{") (if_statement "if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }\n    else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0" (pointer_expression "*(int *)(PTR_DAT_000b2398 + 0x36b4)" (* "*") (cast_expression "(int *)(PTR_DAT_000b2398 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b2398 + 0x36b4)" (( "(") (binary_expression "PTR_DAT_000b2398 + 0x36b4" (identifier "PTR_DAT_000b2398") (+ "+") (number_literal "0x36b4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar3 == 2) goto LAB_0007fb6c;\nLAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }\n    }" ({ "{") (if_statement "if (iVar3 == 2) goto LAB_0007fb6c;" (if "if") (parenthesized_expression "(iVar3 == 2)" (( "(") (binary_expression "iVar3 == 2" (identifier "iVar3") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0007fb6c;" (goto "goto") (statement_identifier "LAB_0007fb6c") (; ";"))) (labeled_statement "LAB_0007f9e8:\n      if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" (statement_identifier "LAB_0007f9e8") (: ":") (if_statement "if (iVar3 == 1) {\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        puVar9 = (uint *)0x1;\n        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }\n        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;\n        goto LAB_0007fa1c;\n      }" ({ "{") (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" (identifier "puVar9") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" (* "*") (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000b2f1c")))) (; ";")) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }" (if "if") (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" (( "(") (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" (* "*") (cast_expression "(int *)PTR_console_batch_mode_000b27a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_console_batch_mode_000b27a8"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_100 = param_6;\n          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);\n          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n          uVar8 = 0;\n          goto LAB_0007fb30;\n        }" ({ "{") (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" (identifier "local_100") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);" (assignment_expression "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(PTR_s_entropy_source_000b23f0 + -0xc90)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0xc90)" (( "(") (binary_expression "PTR_s_entropy_source_000b23f0 + -0xc90" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0xc90")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000b2d7c"))) () ")")) (argument_list "(uVar7,1,puVar13,param_4)" (( "(") (identifier "uVar7") (, ",") (number_literal "1") (, ",") (identifier "puVar13") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007fb30;" (goto "goto") (statement_identifier "LAB_0007fb30") (; ";")) (} "}"))) (expression_statement "puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;" (assignment_expression "puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40" (identifier "puVar12") (= "=") (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe40" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0xe40"))) (; ";")) (goto_statement "goto LAB_0007fa1c;" (goto "goto") (statement_identifier "LAB_0007fa1c") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" (else "else") (compound_statement "{\n      FUN_0007f63c(auStack_e8);\n      if (iVar3 != 2) goto LAB_0007f9e8;\nLAB_0007fb6c:\n      puVar9 = (uint *)0x1;\n      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;\n      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }\n      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;\nLAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;\n      local_100 = param_6;\n      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);\n      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);\n    }" ({ "{") (expression_statement "FUN_0007f63c(auStack_e8);" (call_expression "FUN_0007f63c(auStack_e8)" (identifier "FUN_0007f63c") (argument_list "(auStack_e8)" (( "(") (identifier "auStack_e8") () ")"))) (; ";")) (if_statement "if (iVar3 != 2) goto LAB_0007f9e8;" (if "if") (parenthesized_expression "(iVar3 != 2)" (( "(") (binary_expression "iVar3 != 2" (identifier "iVar3") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_0007f9e8;" (goto "goto") (statement_identifier "LAB_0007f9e8") (; ";"))) (labeled_statement "LAB_0007fb6c:\n      puVar9 = (uint *)0x1;" (statement_identifier "LAB_0007fb6c") (: ":") (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" (identifier "puVar9") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";"))) (expression_statement "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;" (assignment_expression "uVar7 = *(undefined4 *)PTR_stderr_000b2f1c" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" (* "*") (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000b2f1c")))) (; ";")) (if_statement "if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }" (if "if") (parenthesized_expression "(*(int *)PTR_console_batch_mode_000b27a8 != 0)" (( "(") (binary_expression "*(int *)PTR_console_batch_mode_000b27a8 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000b27a8" (* "*") (cast_expression "(int *)PTR_console_batch_mode_000b27a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_console_batch_mode_000b27a8"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_100 = param_6;\n        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);\n        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);\n        uVar8 = 0;\n        goto LAB_0007fb30;\n      }" ({ "{") (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" (identifier "local_100") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);" (assignment_expression "puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(PTR_s_entropy_source_000b23f0 + -0x94c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_entropy_source_000b23f0 + -0x94c)" (( "(") (binary_expression "PTR_s_entropy_source_000b23f0 + -0x94c" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0x94c")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000b2d7c"))) () ")")) (argument_list "(uVar7,1,puVar13,param_4)" (( "(") (identifier "uVar7") (, ",") (number_literal "1") (, ",") (identifier "puVar13") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007fb30;" (goto "goto") (statement_identifier "LAB_0007fb30") (; ";")) (} "}"))) (expression_statement "puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;" (assignment_expression "puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4" (identifier "puVar12") (= "=") (binary_expression "PTR_s_entropy_source_000b23f0 + -0xbe4" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0xbe4"))) (; ";")) (labeled_statement "LAB_0007fa1c:\n      puVar2 = PTR_stderr_000b2f1c;" (statement_identifier "LAB_0007fa1c") (: ":") (expression_statement "puVar2 = PTR_stderr_000b2f1c;" (assignment_expression "puVar2 = PTR_stderr_000b2f1c" (identifier "puVar2") (= "=") (identifier "PTR_stderr_000b2f1c")) (; ";"))) (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" (identifier "local_100") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);" (call_expression "(*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000b2d7c)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000b2d7c" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000b2d7c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000b2d7c"))) () ")")) (argument_list "(uVar7,1,puVar12,param_4)" (( "(") (identifier "uVar7") (, ",") (number_literal "1") (, ",") (identifier "puVar12") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);" (call_expression "(*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2)" (parenthesized_expression "(*(code *)PTR_fflush_000b2f20)" (( "(") (pointer_expression "*(code *)PTR_fflush_000b2f20" (* "*") (cast_expression "(code *)PTR_fflush_000b2f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fflush_000b2f20"))) () ")")) (argument_list "(*(undefined4 *)puVar2)" (( "(") (pointer_expression "*(undefined4 *)puVar2" (* "*") (cast_expression "(undefined4 *)puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (} "}")))) (expression_statement "puVar13 = local_b4;" (assignment_expression "puVar13 = local_b4" (identifier "puVar13") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "(*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);" (call_expression "(*(code *)PTR_tcgetattr_000b2d64)(0,puVar13)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000b2d64)" (( "(") (pointer_expression "*(code *)PTR_tcgetattr_000b2d64" (* "*") (cast_expression "(code *)PTR_tcgetattr_000b2d64" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcgetattr_000b2d64"))) () ")")) (argument_list "(0,puVar13)" (( "(") (number_literal "0") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" (identifier "puVar9") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar5 = local_b4 + 0xd;" (assignment_expression "puVar5 = local_b4 + 0xd" (identifier "puVar5") (= "=") (binary_expression "local_b4 + 0xd" (identifier "local_b4") (+ "+") (number_literal "0xd"))) (; ";")) (do_statement "do {\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    } while (puVar4 != local_b4 + 0xc);" (do "do") (compound_statement "{\n      puVar4 = puVar9 + 4;\n      puVar6 = puVar5 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar5 = *puVar9;\n      puVar5[1] = uVar14;\n      puVar5[2] = uVar10;\n      puVar5[3] = uVar8;\n      puVar9 = puVar4;\n      puVar5 = puVar6;\n    }" ({ "{") (expression_statement "puVar4 = puVar9 + 4;" (assignment_expression "puVar4 = puVar9 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar6 = puVar5 + 4;" (assignment_expression "puVar6 = puVar5 + 4" (identifier "puVar6") (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" (identifier "uVar14") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" (identifier "uVar8") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar5 = *puVar9;" (assignment_expression "*puVar5 = *puVar9" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar5[1] = uVar14;" (assignment_expression "puVar5[1] = uVar14" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar5[2] = uVar10;" (assignment_expression "puVar5[2] = uVar10" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" (identifier "puVar9") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" (identifier "puVar5") (= "=") (identifier "puVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != local_b4 + 0xc)" (( "(") (binary_expression "puVar4 != local_b4 + 0xc" (identifier "puVar4") (!= "!=") (binary_expression "local_b4 + 0xc" (identifier "local_b4") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "*puVar6 = *puVar4;" (assignment_expression "*puVar6 = *puVar4" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "local_b4[0x10] = local_b4[0x10] | 0xb;" (assignment_expression "local_b4[0x10] = local_b4[0x10] | 0xb" (subscript_expression "local_b4[0x10]" (identifier "local_b4") ([ "[") (number_literal "0x10") (] "]")) (= "=") (binary_expression "local_b4[0x10] | 0xb" (subscript_expression "local_b4[0x10]" (identifier "local_b4") ([ "[") (number_literal "0x10") (] "]")) (| "|") (number_literal "0xb"))) (; ";")) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" (( "(") (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" (* "*") (cast_expression "(code *)PTR_tcsetattr_000b2e98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcsetattr_000b2e98"))) () ")")) (argument_list "(0,&DAT_0000540e)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) () ")"))) (; ";")) (expression_statement "local_4c[0] = 0;" (assignment_expression "local_4c[0] = 0" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0007f6a8(local_4c);" (call_expression "FUN_0007f6a8(local_4c)" (identifier "FUN_0007f6a8") (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (expression_statement "puVar9 = (uint *)&DAT_0000540e;" (assignment_expression "puVar9 = (uint *)&DAT_0000540e" (identifier "puVar9") (= "=") (cast_expression "(uint *)&DAT_0000540e" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")))) (; ";")) (expression_statement "(*(code *)PTR_tcsetattr_000b2e98)(0);" (call_expression "(*(code *)PTR_tcsetattr_000b2e98)(0)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000b2e98)" (( "(") (pointer_expression "*(code *)PTR_tcsetattr_000b2e98" (* "*") (cast_expression "(code *)PTR_tcsetattr_000b2e98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcsetattr_000b2e98"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_4c[0] < 0xe) {\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }\n    else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" (if "if") (parenthesized_expression "(local_4c[0] < 0xe)" (( "(") (binary_expression "local_4c[0] < 0xe" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (< "<") (number_literal "0xe")) () ")")) (compound_statement "{\n      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }\n    }" ({ "{") (if_statement "if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }" (if "if") (parenthesized_expression "((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0)" (( "(") (binary_expression "(int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0x2401U >> (local_4c[0] & 0x1f)) << 0x1f" (parenthesized_expression "(0x2401U >> (local_4c[0] & 0x1f))" (( "(") (binary_expression "0x2401U >> (local_4c[0] & 0x1f)" (number_literal "0x2401U") (>> ">>") (parenthesized_expression "(local_4c[0] & 0x1f)" (( "(") (binary_expression "local_4c[0] & 0x1f" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        puVar13 = (uint *)&DAT_00000016;\n        puVar9 = (uint *)0x1;\n        (*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;\n        uVar8 = *(uint *)(puVar20 + 0x36b4);\n        if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }\n        goto LAB_0007fb30;\n      }" ({ "{") (expression_statement "puVar13 = (uint *)&DAT_00000016;" (assignment_expression "puVar13 = (uint *)&DAT_00000016" (identifier "puVar13") (= "=") (cast_expression "(uint *)&DAT_00000016" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000016" (& "&") (identifier "DAT_00000016")))) (; ";")) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" (identifier "puVar9") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)\n        ;" (call_expression "(*(code *)PTR_fwrite_000b2eb0)\n                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" (parenthesized_expression "(*(code *)PTR_fwrite_000b2eb0)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000b2eb0" (* "*") (cast_expression "(code *)PTR_fwrite_000b2eb0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000b2eb0"))) () ")")) (argument_list "(PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)" (( "(") (binary_expression "PTR_s_entropy_source_000b23f0 + -0xe58" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0xe58")) (, ",") (number_literal "1") (, ",") (number_literal "0x16") (, ",") (pointer_expression "*(undefined4 *)PTR_stderr_000b2f1c" (* "*") (cast_expression "(undefined4 *)PTR_stderr_000b2f1c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000b2f1c"))) () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(puVar20 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(puVar20 + 0x36b4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar20 + 0x36b4)" (* "*") (cast_expression "(uint *)(puVar20 + 0x36b4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x36b4)" (( "(") (binary_expression "puVar20 + 0x36b4" (identifier "puVar20") (+ "+") (number_literal "0x36b4")) () ")"))))) (; ";")) (if_statement "if (uVar8 != 0) {\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0007f688(auStack_e8);\n          uVar8 = 0;\n        }" ({ "{") (expression_statement "FUN_0007f688(auStack_e8);" (call_expression "FUN_0007f688(auStack_e8)" (identifier "FUN_0007f688") (argument_list "(auStack_e8)" (( "(") (identifier "auStack_e8") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_0007fb30;" (goto "goto") (statement_identifier "LAB_0007fb30") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" (else "else") (if_statement "if ((local_4c[0] & 0xdf) == 0x59) {\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" (if "if") (parenthesized_expression "((local_4c[0] & 0xdf) == 0x59)" (( "(") (binary_expression "(local_4c[0] & 0xdf) == 0x59" (parenthesized_expression "(local_4c[0] & 0xdf)" (( "(") (binary_expression "local_4c[0] & 0xdf" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x59")) () ")")) (compound_statement "{\n      puVar9 = param_3;\n      puVar13 = param_4;\n      store_host_key(param_2,param_3,param_4,param_5);\n    }" ({ "{") (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" (identifier "puVar9") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar13 = param_4;" (assignment_expression "puVar13 = param_4" (identifier "puVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "store_host_key(param_2,param_3,param_4,param_5);" (call_expression "store_host_key(param_2,param_3,param_4,param_5)" (identifier "store_host_key") (argument_list "(param_2,param_3,param_4,param_5)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (} "}"))))) (if_statement "if (*(int *)(puVar20 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_e8);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar20 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(puVar20 + 0x36b4) != 0" (pointer_expression "*(int *)(puVar20 + 0x36b4)" (* "*") (cast_expression "(int *)(puVar20 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x36b4)" (( "(") (binary_expression "puVar20 + 0x36b4" (identifier "puVar20") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0007f688(auStack_e8);\n    }" ({ "{") (expression_statement "FUN_0007f688(auStack_e8);" (call_expression "FUN_0007f688(auStack_e8)" (identifier "FUN_0007f688") (argument_list "(auStack_e8)" (( "(") (identifier "auStack_e8") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0007fb30:\n  if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }" (statement_identifier "LAB_0007fb30") (: ":") (if_statement "if (local_2c == *(int *)puVar1) {\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return uVar8;\n  }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}")))) (expression_statement "pcVar21 = askalg;" (assignment_expression "pcVar21 = askalg" (identifier "pcVar21") (= "=") (identifier "askalg")) (; ";")) (expression_statement "puVar20 = PTR___stack_chk_fail_000b2ed8;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000b2ed8" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_fail_000b2ed8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b2ed8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b2ed8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b2ed8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b2ed8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b2ed8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_1f8 = puVar20 + 0x3a6f4;" (assignment_expression "puStack_1f8 = puVar20 + 0x3a6f4" (identifier "puStack_1f8") (= "=") (binary_expression "puVar20 + 0x3a6f4" (identifier "puVar20") (+ "+") (number_literal "0x3a6f4"))) (; ";")) (expression_statement "puStack_124 = puVar1;" (assignment_expression "puStack_124 = puVar1" (identifier "puStack_124") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "iVar3 = *(int *)(puVar20 + 0x3271c);" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x3271c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar20 + 0x3271c)" (* "*") (cast_expression "(int *)(puVar20 + 0x3271c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x3271c)" (( "(") (binary_expression "puVar20 + 0x3271c" (identifier "puVar20") (+ "+") (number_literal "0x3271c")) () ")"))))) (; ";")) (expression_statement "piVar15 = *(int **)(puVar20 + 0x33288);" (assignment_expression "piVar15 = *(int **)(puVar20 + 0x33288)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(puVar20 + 0x33288)" (* "*") (cast_expression "(int **)(puVar20 + 0x33288)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x33288)" (( "(") (binary_expression "puVar20 + 0x33288" (identifier "puVar20") (+ "+") (number_literal "0x33288")) () ")"))))) (; ";")) (expression_statement "iStack_12c = *piVar15;" (assignment_expression "iStack_12c = *piVar15" (identifier "iStack_12c") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "puStack_200 = puVar13;" (assignment_expression "puStack_200 = puVar13" (identifier "puStack_200") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puStack_120 = param_4;" (assignment_expression "puStack_120 = param_4" (identifier "puStack_120") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uStack_11c = param_2;" (assignment_expression "uStack_11c = param_2" (identifier "uStack_11c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puStack_118 = param_3;" (assignment_expression "puStack_118 = param_3" (identifier "puStack_118") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_114 = pcVar21;" (assignment_expression "pcStack_114 = pcVar21" (identifier "pcStack_114") (= "=") (identifier "pcVar21")) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puStack_1f0 = puVar9;\n    puStack_1ec = puVar13;\n    FUN_0007f63c(auStack_1e8);\n    puStack_200 = puStack_1ec;\n    puVar9 = puStack_1f0;\n  }" ({ "{") (expression_statement "puStack_1f0 = puVar9;" (assignment_expression "puStack_1f0 = puVar9" (identifier "puStack_1f0") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puStack_1ec = puVar13;" (assignment_expression "puStack_1ec = puVar13" (identifier "puStack_1ec") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "FUN_0007f63c(auStack_1e8);" (call_expression "FUN_0007f63c(auStack_1e8)" (identifier "FUN_0007f63c") (argument_list "(auStack_1e8)" (( "(") (identifier "auStack_1e8") () ")"))) (; ";")) (expression_statement "puStack_200 = puStack_1ec;" (assignment_expression "puStack_200 = puStack_1ec" (identifier "puStack_200") (= "=") (identifier "puStack_1ec")) (; ";")) (expression_statement "puVar9 = puStack_1f0;" (assignment_expression "puVar9 = puStack_1f0" (identifier "puVar9") (= "=") (identifier "puStack_1f0")) (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined1 *)0x1;" (assignment_expression "puVar11 = (undefined1 *)0x1" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);" (assignment_expression "puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454)" (identifier "puVar17") (= "=") (pointer_expression "*(undefined4 **)(puStack_1f8 + -0x7454)" (* "*") (cast_expression "(undefined4 **)(puStack_1f8 + -0x7454)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7454)" (( "(") (binary_expression "puStack_1f8 + -0x7454" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7454")) () ")"))))) (; ";")) (if_statement "if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" (if "if") (parenthesized_expression "(**(int **)(puStack_1f8 + -0x7bc8) == 0)" (( "(") (binary_expression "**(int **)(puStack_1f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(puStack_1f8 + -0x7bc8)" (* "*") (pointer_expression "*(int **)(puStack_1f8 + -0x7bc8)" (* "*") (cast_expression "(int **)(puStack_1f8 + -0x7bc8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7bc8)" (( "(") (binary_expression "puStack_1f8 + -0x7bc8" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7bc8")) () ")"))))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_3 = auStack_1b4;\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);\n    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);\n    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_1b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);\n    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_14c[0] = 0;\n    FUN_0007f6a8(abStack_14c);\n    puVar11 = &DAT_0000540e;\n    puVar13 = param_3;\n    (**(code **)(puStack_1f8 + -0x74d8))(0);\n    if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }\n  }" ({ "{") (expression_statement "param_3 = auStack_1b4;" (assignment_expression "param_3 = auStack_1b4" (identifier "param_3") (= "=") (identifier "auStack_1b4")) (; ";")) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" (( "(") (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" (* "*") (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x75f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x75f4)" (( "(") (binary_expression "puStack_1f8 + -0x75f4" (identifier "puStack_1f8") (+ "+") (number_literal "-0x75f4")) () ")"))))) () ")")) (argument_list "(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c)" (( "(") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf5c" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" (* "*") (cast_expression "(int *)(puStack_1f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7f80)" (( "(") (binary_expression "puStack_1f8 + -0x7f80" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0xf5c")) () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_1f8 + -0x7450))(*puVar17);" (call_expression "(**(code **)(puStack_1f8 + -0x7450))(*puVar17)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x7450))" (( "(") (pointer_expression "**(code **)(puStack_1f8 + -0x7450)" (* "*") (pointer_expression "*(code **)(puStack_1f8 + -0x7450)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x7450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7450)" (( "(") (binary_expression "puStack_1f8 + -0x7450" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7450")) () ")"))))) () ")")) (argument_list "(*puVar17)" (( "(") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_1f8 + -0x760c))(0,param_3);" (call_expression "(**(code **)(puStack_1f8 + -0x760c))(0,param_3)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x760c))" (( "(") (pointer_expression "**(code **)(puStack_1f8 + -0x760c)" (* "*") (pointer_expression "*(code **)(puStack_1f8 + -0x760c)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x760c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x760c)" (( "(") (binary_expression "puStack_1f8 + -0x760c" (identifier "puStack_1f8") (+ "+") (number_literal "-0x760c")) () ")"))))) () ")")) (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" (identifier "puVar9") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar13 = auStack_1b4 + 0xd;" (assignment_expression "puVar13 = auStack_1b4 + 0xd" (identifier "puVar13") (= "=") (binary_expression "auStack_1b4 + 0xd" (identifier "auStack_1b4") (+ "+") (number_literal "0xd"))) (; ";")) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_1b4 + 0xc);" (do "do") (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" ({ "{") (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" (identifier "uVar14") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" (identifier "uVar8") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" (identifier "puVar9") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" (identifier "puVar13") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != auStack_1b4 + 0xc)" (( "(") (binary_expression "puVar5 != auStack_1b4 + 0xc" (identifier "puVar5") (!= "!=") (binary_expression "auStack_1b4 + 0xc" (identifier "auStack_1b4") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "pcVar21 = *(code **)(puStack_1f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(puStack_1f8 + -0x74d8)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x74d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x74d8)" (( "(") (binary_expression "puStack_1f8 + -0x74d8" (identifier "puStack_1f8") (+ "+") (number_literal "-0x74d8")) () ")"))))) (; ";")) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;" (assignment_expression "auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" (identifier "auStack_1b4") ([ "[") (number_literal "0x10") (] "]")) (= "=") (binary_expression "auStack_1b4[0x10] | 0xb" (subscript_expression "auStack_1b4[0x10]" (identifier "auStack_1b4") ([ "[") (number_literal "0x10") (] "]")) (| "|") (number_literal "0xb"))) (; ";")) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(0,&DAT_0000540e)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) () ")"))) (; ";")) (expression_statement "abStack_14c[0] = 0;" (assignment_expression "abStack_14c[0] = 0" (subscript_expression "abStack_14c[0]" (identifier "abStack_14c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0007f6a8(abStack_14c);" (call_expression "FUN_0007f6a8(abStack_14c)" (identifier "FUN_0007f6a8") (argument_list "(abStack_14c)" (( "(") (identifier "abStack_14c") () ")"))) (; ";")) (expression_statement "puVar11 = &DAT_0000540e;" (assignment_expression "puVar11 = &DAT_0000540e" (identifier "puVar11") (= "=") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e"))) (; ";")) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" (identifier "puVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(**(code **)(puStack_1f8 + -0x74d8))(0);" (call_expression "(**(code **)(puStack_1f8 + -0x74d8))(0)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74d8))" (( "(") (pointer_expression "**(code **)(puStack_1f8 + -0x74d8)" (* "*") (pointer_expression "*(code **)(puStack_1f8 + -0x74d8)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x74d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x74d8)" (( "(") (binary_expression "puStack_1f8 + -0x74d8" (identifier "puStack_1f8") (+ "+") (number_literal "-0x74d8")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((abStack_14c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" (if "if") (parenthesized_expression "((abStack_14c[0] & 0xdf) == 0x59)" (( "(") (binary_expression "(abStack_14c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_14c[0] & 0xdf)" (( "(") (binary_expression "abStack_14c[0] & 0xdf" (subscript_expression "abStack_14c[0]" (identifier "abStack_14c") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x59")) () ")")) (compound_statement "{\n      if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iVar3 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = 1;\n      }" ({ "{") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" (else "else") (compound_statement "{\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 1;\n      }" ({ "{") (expression_statement "FUN_0007f688(auStack_1e8);" (call_expression "FUN_0007f688(auStack_1e8)" (identifier "FUN_0007f688") (argument_list "(auStack_1e8)" (( "(") (identifier "auStack_1e8") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" (else "else") (compound_statement "{\n      puVar13 = (uint *)&DAT_00000016;\n      puVar11 = (undefined1 *)0x1;\n      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;\n      uVar8 = *(uint *)(iVar3 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }\n    }" ({ "{") (expression_statement "puVar13 = (uint *)&DAT_00000016;" (assignment_expression "puVar13 = (uint *)&DAT_00000016" (identifier "puVar13") (= "=") (cast_expression "(uint *)&DAT_00000016" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000016" (& "&") (identifier "DAT_00000016")))) (; ";")) (expression_statement "puVar11 = (undefined1 *)0x1;" (assignment_expression "puVar11 = (undefined1 *)0x1" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)\n      ;" (call_expression "(**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x74c0))" (( "(") (pointer_expression "**(code **)(puStack_1f8 + -0x74c0)" (* "*") (pointer_expression "*(code **)(puStack_1f8 + -0x74c0)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x74c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x74c0)" (( "(") (binary_expression "puStack_1f8 + -0x74c0" (identifier "puStack_1f8") (+ "+") (number_literal "-0x74c0")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)" (( "(") (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xf74" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" (* "*") (cast_expression "(int *)(puStack_1f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7f80)" (( "(") (binary_expression "puStack_1f8 + -0x7f80" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0xf74")) (, ",") (number_literal "1") (, ",") (number_literal "0x16") (, ",") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x36b4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(uint *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")"))))) (; ";")) (if_statement "if (uVar8 != 0) {\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0007f688(auStack_1e8);\n        uVar8 = 0;\n      }" ({ "{") (expression_statement "FUN_0007f688(auStack_1e8);" (call_expression "FUN_0007f688(auStack_1e8)" (identifier "FUN_0007f688") (argument_list "(auStack_1e8)" (( "(") (identifier "auStack_1e8") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" (else "else") (compound_statement "{\n    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);\n    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);\n    uVar8 = 0;\n  }" ({ "{") (expression_statement "puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);" (assignment_expression "puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_1f8 + -0x7f80) + -0xedc)" (( "(") (binary_expression "*(int *)(puStack_1f8 + -0x7f80) + -0xedc" (pointer_expression "*(int *)(puStack_1f8 + -0x7f80)" (* "*") (cast_expression "(int *)(puStack_1f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7f80)" (( "(") (binary_expression "puStack_1f8 + -0x7f80" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0xedc")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);" (call_expression "(**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9)" (parenthesized_expression "(**(code **)(puStack_1f8 + -0x75f4))" (( "(") (pointer_expression "**(code **)(puStack_1f8 + -0x75f4)" (* "*") (pointer_expression "*(code **)(puStack_1f8 + -0x75f4)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x75f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x75f4)" (( "(") (binary_expression "puStack_1f8 + -0x75f4" (identifier "puStack_1f8") (+ "+") (number_literal "-0x75f4")) () ")"))))) () ")")) (argument_list "(*puVar17,1,puVar13,puVar9)" (( "(") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (, ",") (number_literal "1") (, ",") (identifier "puVar13") (, ",") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (iStack_12c == *piVar15) {\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(iStack_12c == *piVar15)" (( "(") (binary_expression "iStack_12c == *piVar15" (identifier "iStack_12c") (== "==") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n    return uVar8;\n  }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(puStack_1f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(puStack_1f8 + -0x7498)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(puStack_1f8 + -0x7498)" (* "*") (cast_expression "(code **)(puStack_1f8 + -0x7498)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_1f8 + -0x7498)" (( "(") (binary_expression "puStack_1f8 + -0x7498" (identifier "puStack_1f8") (+ "+") (number_literal "-0x7498")) () ")"))))) (; ";")) (expression_statement "pcVar22 = askhk;" (assignment_expression "pcVar22 = askhk" (identifier "pcVar22") (= "=") (identifier "askhk")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_2f8 = pcVar21 + 0x3a4d0;" (assignment_expression "pcStack_2f8 = pcVar21 + 0x3a4d0" (identifier "pcStack_2f8") (= "=") (binary_expression "pcVar21 + 0x3a4d0" (identifier "pcVar21") (+ "+") (number_literal "0x3a4d0"))) (; ";")) (expression_statement "iVar19 = *(int *)(pcVar21 + 0x324f8);" (assignment_expression "iVar19 = *(int *)(pcVar21 + 0x324f8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(pcVar21 + 0x324f8)" (* "*") (cast_expression "(int *)(pcVar21 + 0x324f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x324f8)" (( "(") (binary_expression "pcVar21 + 0x324f8" (identifier "pcVar21") (+ "+") (number_literal "0x324f8")) () ")"))))) (; ";")) (expression_statement "piVar16 = *(int **)(pcVar21 + 0x33064);" (assignment_expression "piVar16 = *(int **)(pcVar21 + 0x33064)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(pcVar21 + 0x33064)" (* "*") (cast_expression "(int **)(pcVar21 + 0x33064)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x33064)" (( "(") (binary_expression "pcVar21 + 0x33064" (identifier "pcVar21") (+ "+") (number_literal "0x33064")) () ")"))))) (; ";")) (expression_statement "iStack_22c = *piVar16;" (assignment_expression "iStack_22c = *piVar16" (identifier "iStack_22c") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "puStack_300 = puVar13;" (assignment_expression "puStack_300 = puVar13" (identifier "puStack_300") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "piStack_224 = piVar15;" (assignment_expression "piStack_224 = piVar15" (identifier "piStack_224") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "puStack_220 = puVar17;" (assignment_expression "puStack_220 = puVar17" (identifier "puStack_220") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "iStack_21c = iVar3;" (assignment_expression "iStack_21c = iVar3" (identifier "iStack_21c") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "puStack_218 = param_3;" (assignment_expression "puStack_218 = param_3" (identifier "puStack_218") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_214 = pcVar22;" (assignment_expression "pcStack_214 = pcVar22" (identifier "pcStack_214") (= "=") (identifier "pcVar22")) (; ";")) (if_statement "if (*(int *)(iVar19 + 0x36b4) != 0) {\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar19 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(iVar19 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar19 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar19 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x36b4)" (( "(") (binary_expression "iVar19 + 0x36b4" (identifier "iVar19") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puStack_2f0 = puVar11;\n    puStack_2ec = puVar13;\n    FUN_0007f63c(auStack_2e8);\n    puStack_300 = puStack_2ec;\n    puVar11 = puStack_2f0;\n  }" ({ "{") (expression_statement "puStack_2f0 = puVar11;" (assignment_expression "puStack_2f0 = puVar11" (identifier "puStack_2f0") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puStack_2ec = puVar13;" (assignment_expression "puStack_2ec = puVar13" (identifier "puStack_2ec") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "FUN_0007f63c(auStack_2e8);" (call_expression "FUN_0007f63c(auStack_2e8)" (identifier "FUN_0007f63c") (argument_list "(auStack_2e8)" (( "(") (identifier "auStack_2e8") () ")"))) (; ";")) (expression_statement "puStack_300 = puStack_2ec;" (assignment_expression "puStack_300 = puStack_2ec" (identifier "puStack_300") (= "=") (identifier "puStack_2ec")) (; ";")) (expression_statement "puVar11 = puStack_2f0;" (assignment_expression "puVar11 = puStack_2f0" (identifier "puVar11") (= "=") (identifier "puStack_2f0")) (; ";")) (} "}"))) (expression_statement "puVar17 = (undefined4 *)0x1;" (assignment_expression "puVar17 = (undefined4 *)0x1" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);" (assignment_expression "puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454)" (identifier "puVar18") (= "=") (pointer_expression "*(undefined4 **)(pcStack_2f8 + -0x7454)" (* "*") (cast_expression "(undefined4 **)(pcStack_2f8 + -0x7454)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7454)" (( "(") (binary_expression "pcStack_2f8 + -0x7454" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7454")) () ")"))))) (; ";")) (if_statement "if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }\n  else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" (if "if") (parenthesized_expression "(**(int **)(pcStack_2f8 + -0x7bc8) == 0)" (( "(") (binary_expression "**(int **)(pcStack_2f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_2f8 + -0x7bc8)" (* "*") (pointer_expression "*(int **)(pcStack_2f8 + -0x7bc8)" (* "*") (cast_expression "(int **)(pcStack_2f8 + -0x7bc8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7bc8)" (( "(") (binary_expression "pcStack_2f8 + -0x7bc8" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7bc8")) () ")"))))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_3 = auStack_2b4;\n    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);\n    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);\n    puVar9 = param_3;\n    puVar13 = auStack_2b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_24c[0] = 0;\n    FUN_0007f6a8(abStack_24c);\n    puVar17 = (undefined4 *)&DAT_0000540e;\n    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);\n    if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }\n  }" ({ "{") (expression_statement "param_3 = auStack_2b4;" (assignment_expression "param_3 = auStack_2b4" (identifier "param_3") (= "=") (identifier "auStack_2b4")) (; ";")) (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" (( "(") (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" (* "*") (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x75f4)" (( "(") (binary_expression "pcStack_2f8 + -0x75f4" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x75f4")) () ")"))))) () ")")) (argument_list "(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1168" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" (* "*") (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7f80)" (( "(") (binary_expression "pcStack_2f8 + -0x7f80" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0x1168")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_2f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_2f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x7450))" (( "(") (pointer_expression "**(code **)(pcStack_2f8 + -0x7450)" (* "*") (pointer_expression "*(code **)(pcStack_2f8 + -0x7450)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x7450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7450)" (( "(") (binary_expression "pcStack_2f8 + -0x7450" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7450")) () ")"))))) () ")")) (argument_list "(*puVar18)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_2f8 + -0x760c))(0,param_3);" (call_expression "(**(code **)(pcStack_2f8 + -0x760c))(0,param_3)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x760c))" (( "(") (pointer_expression "**(code **)(pcStack_2f8 + -0x760c)" (* "*") (pointer_expression "*(code **)(pcStack_2f8 + -0x760c)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x760c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x760c)" (( "(") (binary_expression "pcStack_2f8 + -0x760c" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x760c")) () ")"))))) () ")")) (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" (identifier "puVar9") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar13 = auStack_2b4 + 0xd;" (assignment_expression "puVar13 = auStack_2b4 + 0xd" (identifier "puVar13") (= "=") (binary_expression "auStack_2b4 + 0xd" (identifier "auStack_2b4") (+ "+") (number_literal "0xd"))) (; ";")) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_2b4 + 0xc);" (do "do") (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" ({ "{") (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" (identifier "uVar14") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" (identifier "uVar8") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" (identifier "puVar9") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" (identifier "puVar13") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != auStack_2b4 + 0xc)" (( "(") (binary_expression "puVar5 != auStack_2b4 + 0xc" (identifier "puVar5") (!= "!=") (binary_expression "auStack_2b4 + 0xc" (identifier "auStack_2b4") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(pcStack_2f8 + -0x74d8)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x74d8)" (( "(") (binary_expression "pcStack_2f8 + -0x74d8" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x74d8")) () ")"))))) (; ";")) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;" (assignment_expression "auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" (identifier "auStack_2b4") ([ "[") (number_literal "0x10") (] "]")) (= "=") (binary_expression "auStack_2b4[0x10] | 0xb" (subscript_expression "auStack_2b4[0x10]" (identifier "auStack_2b4") ([ "[") (number_literal "0x10") (] "]")) (| "|") (number_literal "0xb"))) (; ";")) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(0,&DAT_0000540e)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) () ")"))) (; ";")) (expression_statement "abStack_24c[0] = 0;" (assignment_expression "abStack_24c[0] = 0" (subscript_expression "abStack_24c[0]" (identifier "abStack_24c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0007f6a8(abStack_24c);" (call_expression "FUN_0007f6a8(abStack_24c)" (identifier "FUN_0007f6a8") (argument_list "(abStack_24c)" (( "(") (identifier "abStack_24c") () ")"))) (; ";")) (expression_statement "puVar17 = (undefined4 *)&DAT_0000540e;" (assignment_expression "puVar17 = (undefined4 *)&DAT_0000540e" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)&DAT_0000540e" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")))) (; ";")) (expression_statement "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);" (call_expression "(**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74d8))" (( "(") (pointer_expression "**(code **)(pcStack_2f8 + -0x74d8)" (* "*") (pointer_expression "*(code **)(pcStack_2f8 + -0x74d8)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x74d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x74d8)" (( "(") (binary_expression "pcStack_2f8 + -0x74d8" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x74d8")) () ")"))))) () ")")) (argument_list "(0,&DAT_0000540e,param_3)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) (, ",") (identifier "param_3") () ")"))) (; ";")) (if_statement "if ((abStack_24c[0] & 0xdf) == 0x59) {\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }\n    else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" (if "if") (parenthesized_expression "((abStack_24c[0] & 0xdf) == 0x59)" (( "(") (binary_expression "(abStack_24c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_24c[0] & 0xdf)" (( "(") (binary_expression "abStack_24c[0] & 0xdf" (subscript_expression "abStack_24c[0]" (identifier "abStack_24c") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x59")) () ")")) (compound_statement "{\n      if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iVar19 + 0x36b4) == 0) {\n        uVar8 = 1;\n      }\n      else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar19 + 0x36b4) == 0)" (( "(") (binary_expression "*(int *)(iVar19 + 0x36b4) == 0" (pointer_expression "*(int *)(iVar19 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar19 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x36b4)" (( "(") (binary_expression "iVar19 + 0x36b4" (identifier "iVar19") (+ "+") (number_literal "0x36b4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = 1;\n      }" ({ "{") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" (else "else") (compound_statement "{\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 1;\n      }" ({ "{") (expression_statement "FUN_0007f688(auStack_2e8);" (call_expression "FUN_0007f688(auStack_2e8)" (identifier "FUN_0007f688") (argument_list "(auStack_2e8)" (( "(") (identifier "auStack_2e8") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" (else "else") (compound_statement "{\n      puVar17 = (undefined4 *)0x1;\n      (**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);\n      uVar8 = *(uint *)(iVar19 + 0x36b4);\n      if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }\n    }" ({ "{") (expression_statement "puVar17 = (undefined4 *)0x1;" (assignment_expression "puVar17 = (undefined4 *)0x1" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);" (call_expression "(**(code **)(pcStack_2f8 + -0x74c0))\n                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x74c0))" (( "(") (pointer_expression "**(code **)(pcStack_2f8 + -0x74c0)" (* "*") (pointer_expression "*(code **)(pcStack_2f8 + -0x74c0)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x74c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x74c0)" (( "(") (binary_expression "pcStack_2f8 + -0x74c0" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x74c0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18)" (( "(") (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1180" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" (* "*") (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7f80)" (( "(") (binary_expression "pcStack_2f8 + -0x7f80" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0x1180")) (, ",") (number_literal "1") (, ",") (number_literal "0x16") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar19 + 0x36b4);" (assignment_expression "uVar8 = *(uint *)(iVar19 + 0x36b4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar19 + 0x36b4)" (* "*") (cast_expression "(uint *)(iVar19 + 0x36b4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x36b4)" (( "(") (binary_expression "iVar19 + 0x36b4" (identifier "iVar19") (+ "+") (number_literal "0x36b4")) () ")"))))) (; ";")) (if_statement "if (uVar8 != 0) {\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0007f688(auStack_2e8);\n        uVar8 = 0;\n      }" ({ "{") (expression_statement "FUN_0007f688(auStack_2e8);" (call_expression "FUN_0007f688(auStack_2e8)" (identifier "FUN_0007f688") (argument_list "(auStack_2e8)" (( "(") (identifier "auStack_2e8") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);\n    uVar8 = 0;\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);" (call_expression "(**(code **)(pcStack_2f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11)" (parenthesized_expression "(**(code **)(pcStack_2f8 + -0x75f4))" (( "(") (pointer_expression "**(code **)(pcStack_2f8 + -0x75f4)" (* "*") (pointer_expression "*(code **)(pcStack_2f8 + -0x75f4)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x75f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x75f4)" (( "(") (binary_expression "pcStack_2f8 + -0x75f4" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x75f4")) () ")"))))) () ")")) (argument_list "(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(pcStack_2f8 + -0x7f80) + -0x1068" (pointer_expression "*(int *)(pcStack_2f8 + -0x7f80)" (* "*") (cast_expression "(int *)(pcStack_2f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7f80)" (( "(") (binary_expression "pcStack_2f8 + -0x7f80" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0x1068")) (, ",") (identifier "puVar11") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (iStack_22c == *piVar16) {\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(iStack_22c == *piVar16)" (( "(") (binary_expression "iStack_22c == *piVar16" (identifier "iStack_22c") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n    return uVar8;\n  }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(pcStack_2f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(pcStack_2f8 + -0x7498)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_2f8 + -0x7498)" (* "*") (cast_expression "(code **)(pcStack_2f8 + -0x7498)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_2f8 + -0x7498)" (( "(") (binary_expression "pcStack_2f8 + -0x7498" (identifier "pcStack_2f8") (+ "+") (number_literal "-0x7498")) () ")"))))) (; ";")) (expression_statement "pcVar22 = askappend;" (assignment_expression "pcVar22 = askappend" (identifier "pcVar22") (= "=") (identifier "askappend")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_3f8 = pcVar21 + 0x3a2ac;" (assignment_expression "pcStack_3f8 = pcVar21 + 0x3a2ac" (identifier "pcStack_3f8") (= "=") (binary_expression "pcVar21 + 0x3a2ac" (identifier "pcVar21") (+ "+") (number_literal "0x3a2ac"))) (; ";")) (expression_statement "iVar3 = *(int *)(pcVar21 + 0x322d4);" (assignment_expression "iVar3 = *(int *)(pcVar21 + 0x322d4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar21 + 0x322d4)" (* "*") (cast_expression "(int *)(pcVar21 + 0x322d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x322d4)" (( "(") (binary_expression "pcVar21 + 0x322d4" (identifier "pcVar21") (+ "+") (number_literal "0x322d4")) () ")"))))) (; ";")) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x32e40);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x32e40)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(pcVar21 + 0x32e40)" (* "*") (cast_expression "(int **)(pcVar21 + 0x32e40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x32e40)" (( "(") (binary_expression "pcVar21 + 0x32e40" (identifier "pcVar21") (+ "+") (number_literal "0x32e40")) () ")"))))) (; ";")) (expression_statement "iStack_32c = *piVar15;" (assignment_expression "iStack_32c = *piVar15" (identifier "iStack_32c") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "piStack_324 = piVar16;" (assignment_expression "piStack_324 = piVar16" (identifier "piStack_324") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "puStack_320 = puVar18;" (assignment_expression "puStack_320 = puVar18" (identifier "puStack_320") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iStack_31c = iVar19;" (assignment_expression "iStack_31c = iVar19" (identifier "iStack_31c") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "puStack_318 = param_3;" (assignment_expression "puStack_318 = param_3" (identifier "puStack_318") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_314 = pcVar22;" (assignment_expression "pcStack_314 = pcVar22" (identifier "pcStack_314") (= "=") (identifier "pcVar22")) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puStack_3ec = puVar17;\n    FUN_0007f63c(auStack_3e8);\n    puVar17 = puStack_3ec;\n  }" ({ "{") (expression_statement "puStack_3ec = puVar17;" (assignment_expression "puStack_3ec = puVar17" (identifier "puStack_3ec") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "FUN_0007f63c(auStack_3e8);" (call_expression "FUN_0007f63c(auStack_3e8)" (identifier "FUN_0007f63c") (argument_list "(auStack_3e8)" (( "(") (identifier "auStack_3e8") () ")"))) (; ";")) (expression_statement "puVar17 = puStack_3ec;" (assignment_expression "puVar17 = puStack_3ec" (identifier "puVar17") (= "=") (identifier "puStack_3ec")) (; ";")) (} "}"))) (expression_statement "puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);" (assignment_expression "puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454)" (identifier "puVar18") (= "=") (pointer_expression "*(undefined4 **)(pcStack_3f8 + -0x7454)" (* "*") (cast_expression "(undefined4 **)(pcStack_3f8 + -0x7454)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7454)" (( "(") (binary_expression "pcStack_3f8 + -0x7454" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7454")) () ")"))))) (; ";")) (expression_statement "uStack_400 = *puVar17;" (assignment_expression "uStack_400 = *puVar17" (identifier "uStack_400") (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (if_statement "if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }\n  else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" (if "if") (parenthesized_expression "(**(int **)(pcStack_3f8 + -0x7bc8) == 0)" (( "(") (binary_expression "**(int **)(pcStack_3f8 + -0x7bc8) == 0" (pointer_expression "**(int **)(pcStack_3f8 + -0x7bc8)" (* "*") (pointer_expression "*(int **)(pcStack_3f8 + -0x7bc8)" (* "*") (cast_expression "(int **)(pcStack_3f8 + -0x7bc8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7bc8)" (( "(") (binary_expression "pcStack_3f8 + -0x7bc8" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7bc8")) () ")"))))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);\n    puVar9 = auStack_3b4;\n    puVar13 = auStack_3b4 + 0xd;\n    do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);\n    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);\n    *puVar4 = *puVar5;\n    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;\n    (*pcVar21)(0,&DAT_0000540e);\n    abStack_34c[0] = 0;\n    FUN_0007f6a8(abStack_34c);\n    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }\n    if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" (( "(") (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" (* "*") (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x75f4)" (( "(") (binary_expression "pcStack_3f8 + -0x75f4" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x75f4")) () ")"))))) () ")")) (argument_list "(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x1308" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" (* "*") (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7f80)" (( "(") (binary_expression "pcStack_3f8 + -0x7f80" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0x1308")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" (( "(") (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" (* "*") (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x7450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7450)" (( "(") (binary_expression "pcStack_3f8 + -0x7450" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7450")) () ")"))))) () ")")) (argument_list "(*puVar18)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x760c))" (( "(") (pointer_expression "**(code **)(pcStack_3f8 + -0x760c)" (* "*") (pointer_expression "*(code **)(pcStack_3f8 + -0x760c)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x760c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x760c)" (( "(") (binary_expression "pcStack_3f8 + -0x760c" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x760c")) () ")"))))) () ")")) (argument_list "(0,auStack_3b4)" (( "(") (number_literal "0") (, ",") (identifier "auStack_3b4") () ")"))) (; ";")) (expression_statement "puVar9 = auStack_3b4;" (assignment_expression "puVar9 = auStack_3b4" (identifier "puVar9") (= "=") (identifier "auStack_3b4")) (; ";")) (expression_statement "puVar13 = auStack_3b4 + 0xd;" (assignment_expression "puVar13 = auStack_3b4 + 0xd" (identifier "puVar13") (= "=") (binary_expression "auStack_3b4 + 0xd" (identifier "auStack_3b4") (+ "+") (number_literal "0xd"))) (; ";")) (do_statement "do {\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    } while (puVar5 != auStack_3b4 + 0xc);" (do "do") (compound_statement "{\n      puVar5 = puVar9 + 4;\n      puVar4 = puVar13 + 4;\n      uVar14 = puVar9[1];\n      uVar10 = puVar9[2];\n      uVar8 = puVar9[3];\n      *puVar13 = *puVar9;\n      puVar13[1] = uVar14;\n      puVar13[2] = uVar10;\n      puVar13[3] = uVar8;\n      puVar9 = puVar5;\n      puVar13 = puVar4;\n    }" ({ "{") (expression_statement "puVar5 = puVar9 + 4;" (assignment_expression "puVar5 = puVar9 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar4 = puVar13 + 4;" (assignment_expression "puVar4 = puVar13 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar14 = puVar9[1];" (assignment_expression "uVar14 = puVar9[1]" (identifier "uVar14") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar9[2];" (assignment_expression "uVar10 = puVar9[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar9[3];" (assignment_expression "uVar8 = puVar9[3]" (identifier "uVar8") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar13 = *puVar9;" (assignment_expression "*puVar13 = *puVar9" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar13[3] = uVar8;" (assignment_expression "puVar13[3] = uVar8" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" (identifier "puVar9") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" (identifier "puVar13") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != auStack_3b4 + 0xc)" (( "(") (binary_expression "puVar5 != auStack_3b4 + 0xc" (identifier "puVar5") (!= "!=") (binary_expression "auStack_3b4 + 0xc" (identifier "auStack_3b4") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);" (assignment_expression "pcVar21 = *(code **)(pcStack_3f8 + -0x74d8)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x74d8)" (( "(") (binary_expression "pcStack_3f8 + -0x74d8" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x74d8")) () ")"))))) (; ";")) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;" (assignment_expression "auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" (identifier "auStack_3b4") ([ "[") (number_literal "0x10") (] "]")) (= "=") (binary_expression "auStack_3b4[0x10] | 0xb" (subscript_expression "auStack_3b4[0x10]" (identifier "auStack_3b4") ([ "[") (number_literal "0x10") (] "]")) (| "|") (number_literal "0xb"))) (; ";")) (expression_statement "(*pcVar21)(0,&DAT_0000540e);" (call_expression "(*pcVar21)(0,&DAT_0000540e)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(0,&DAT_0000540e)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) () ")"))) (; ";")) (expression_statement "abStack_34c[0] = 0;" (assignment_expression "abStack_34c[0] = 0" (subscript_expression "abStack_34c[0]" (identifier "abStack_34c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0007f6a8(abStack_34c);" (call_expression "FUN_0007f6a8(abStack_34c)" (identifier "FUN_0007f6a8") (argument_list "(abStack_34c)" (( "(") (identifier "abStack_34c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);" (call_expression "(**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x74d8))" (( "(") (pointer_expression "**(code **)(pcStack_3f8 + -0x74d8)" (* "*") (pointer_expression "*(code **)(pcStack_3f8 + -0x74d8)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x74d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x74d8)" (( "(") (binary_expression "pcStack_3f8 + -0x74d8" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x74d8")) () ")"))))) () ")")) (argument_list "(0,&DAT_0000540e,auStack_3b4)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) (, ",") (identifier "auStack_3b4") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f688(auStack_3e8);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0007f688(auStack_3e8);\n    }" ({ "{") (expression_statement "FUN_0007f688(auStack_3e8);" (call_expression "FUN_0007f688(auStack_3e8)" (identifier "FUN_0007f688") (argument_list "(auStack_3e8)" (( "(") (identifier "auStack_3e8") () ")"))) (; ";")) (} "}"))) (if_statement "if ((abStack_34c[0] & 0xdf) == 0x59) {\n      uVar8 = 2;\n    }\n    else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" (if "if") (parenthesized_expression "((abStack_34c[0] & 0xdf) == 0x59)" (( "(") (binary_expression "(abStack_34c[0] & 0xdf) == 0x59" (parenthesized_expression "(abStack_34c[0] & 0xdf)" (( "(") (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" (identifier "abStack_34c") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x59")) () ")")) (compound_statement "{\n      uVar8 = 2;\n    }" ({ "{") (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" (identifier "uVar8") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" (else "else") (compound_statement "{\n      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);\n    }" ({ "{") (expression_statement "uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);" (assignment_expression "uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e)" (identifier "uVar8") (= "=") (call_expression "(uint)((abStack_34c[0] & 0xdf) == 0x4e)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((abStack_34c[0] & 0xdf) == 0x4e)" (( "(") (binary_expression "(abStack_34c[0] & 0xdf) == 0x4e" (parenthesized_expression "(abStack_34c[0] & 0xdf)" (( "(") (binary_expression "abStack_34c[0] & 0xdf" (subscript_expression "abStack_34c[0]" (identifier "abStack_34c") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x4e")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);\n    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);\n    uVar8 = 0;\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);" (call_expression "(**(code **)(pcStack_3f8 + -0x75f4))\n              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x75f4))" (( "(") (pointer_expression "**(code **)(pcStack_3f8 + -0x75f4)" (* "*") (pointer_expression "*(code **)(pcStack_3f8 + -0x75f4)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x75f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x75f4)" (( "(") (binary_expression "pcStack_3f8 + -0x75f4" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x75f4")) () ")"))))) () ")")) (argument_list "(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc" (pointer_expression "*(int *)(pcStack_3f8 + -0x7f80)" (* "*") (cast_expression "(int *)(pcStack_3f8 + -0x7f80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7f80)" (( "(") (binary_expression "pcStack_3f8 + -0x7f80" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7f80")) () ")")))) (+ "+") (number_literal "-0x11cc")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18);" (call_expression "(**(code **)(pcStack_3f8 + -0x7450))(*puVar18)" (parenthesized_expression "(**(code **)(pcStack_3f8 + -0x7450))" (( "(") (pointer_expression "**(code **)(pcStack_3f8 + -0x7450)" (* "*") (pointer_expression "*(code **)(pcStack_3f8 + -0x7450)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x7450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7450)" (( "(") (binary_expression "pcStack_3f8 + -0x7450" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7450")) () ")"))))) () ")")) (argument_list "(*puVar18)" (( "(") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (iStack_32c != *piVar15) {\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(iStack_32c != *piVar15)" (( "(") (binary_expression "iStack_32c != *piVar15" (identifier "iStack_32c") (!= "!=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);\n    pcVar22 = old_keyfile_warning;\n    (*pcVar21)();\n    iVar3 = *(int *)(pcVar21 + 0x320dc);\n    puVar9 = *(uint **)(pcVar21 + 0x32c48);\n    uStack_424 = *puVar9;\n    piStack_41c = piVar15;\n    puStack_418 = puVar18;\n    pcStack_414 = pcVar22;\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }\n    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);\n    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));\n    if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }\n    uVar8 = *puVar9;\n    if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }\n    return uVar8;\n  }" ({ "{") (expression_statement "pcVar21 = *(code **)(pcStack_3f8 + -0x7498);" (assignment_expression "pcVar21 = *(code **)(pcStack_3f8 + -0x7498)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_3f8 + -0x7498)" (* "*") (cast_expression "(code **)(pcStack_3f8 + -0x7498)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3f8 + -0x7498)" (( "(") (binary_expression "pcStack_3f8 + -0x7498" (identifier "pcStack_3f8") (+ "+") (number_literal "-0x7498")) () ")"))))) (; ";")) (expression_statement "pcVar22 = old_keyfile_warning;" (assignment_expression "pcVar22 = old_keyfile_warning" (identifier "pcVar22") (= "=") (identifier "old_keyfile_warning")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(pcVar21 + 0x320dc);" (assignment_expression "iVar3 = *(int *)(pcVar21 + 0x320dc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar21 + 0x320dc)" (* "*") (cast_expression "(int *)(pcVar21 + 0x320dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x320dc)" (( "(") (binary_expression "pcVar21 + 0x320dc" (identifier "pcVar21") (+ "+") (number_literal "0x320dc")) () ")"))))) (; ";")) (expression_statement "puVar9 = *(uint **)(pcVar21 + 0x32c48);" (assignment_expression "puVar9 = *(uint **)(pcVar21 + 0x32c48)" (identifier "puVar9") (= "=") (pointer_expression "*(uint **)(pcVar21 + 0x32c48)" (* "*") (cast_expression "(uint **)(pcVar21 + 0x32c48)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x32c48)" (( "(") (binary_expression "pcVar21 + 0x32c48" (identifier "pcVar21") (+ "+") (number_literal "0x32c48")) () ")"))))) (; ";")) (expression_statement "uStack_424 = *puVar9;" (assignment_expression "uStack_424 = *puVar9" (identifier "uStack_424") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "piStack_41c = piVar15;" (assignment_expression "piStack_41c = piVar15" (identifier "piStack_41c") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "puStack_418 = puVar18;" (assignment_expression "puStack_418 = puVar18" (identifier "puStack_418") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "pcStack_414 = pcVar22;" (assignment_expression "pcStack_414 = pcVar22" (identifier "pcStack_414") (= "=") (identifier "pcVar22")) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      FUN_0007f63c(auStack_458);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0007f63c(auStack_458);\n    }" ({ "{") (expression_statement "FUN_0007f63c(auStack_458);" (call_expression "FUN_0007f63c(auStack_458)" (identifier "FUN_0007f63c") (argument_list "(auStack_458)" (( "(") (identifier "auStack_458") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);" (assignment_expression "puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar21 + 0x32134) + -0x1470)" (( "(") (binary_expression "*(int *)(pcVar21 + 0x32134) + -0x1470" (pointer_expression "*(int *)(pcVar21 + 0x32134)" (* "*") (cast_expression "(int *)(pcVar21 + 0x32134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x32134)" (( "(") (binary_expression "pcVar21 + 0x32134" (identifier "pcVar21") (+ "+") (number_literal "0x32134")) () ")")))) (+ "+") (number_literal "-0x1470")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));" (call_expression "(**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60))" (parenthesized_expression "(**(code **)(pcVar21 + 0x32bf4))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x32bf4)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x32bf4)" (* "*") (cast_expression "(code **)(pcVar21 + 0x32bf4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x32bf4)" (( "(") (binary_expression "pcVar21 + 0x32bf4" (identifier "pcVar21") (+ "+") (number_literal "0x32bf4")) () ")"))))) () ")")) (argument_list "(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60))" (( "(") (identifier "puVar11") (, ",") (number_literal "1") (, ",") (number_literal "0x165") (, ",") (pointer_expression "**(undefined4 **)(pcVar21 + 0x32c60)" (* "*") (pointer_expression "*(undefined4 **)(pcVar21 + 0x32c60)" (* "*") (cast_expression "(undefined4 **)(pcVar21 + 0x32c60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x32c60)" (( "(") (binary_expression "pcVar21 + 0x32c60" (identifier "pcVar21") (+ "+") (number_literal "0x32c60")) () ")"))))) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x36b4) != 0) {\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x36b4) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x36b4) != 0" (pointer_expression "*(int *)(iVar3 + 0x36b4)" (* "*") (cast_expression "(int *)(iVar3 + 0x36b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x36b4)" (( "(") (binary_expression "iVar3 + 0x36b4" (identifier "iVar3") (+ "+") (number_literal "0x36b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar11 = auStack_458;\n      FUN_0007f688();\n    }" ({ "{") (expression_statement "puVar11 = auStack_458;" (assignment_expression "puVar11 = auStack_458" (identifier "puVar11") (= "=") (identifier "auStack_458")) (; ";")) (expression_statement "FUN_0007f688();" (call_expression "FUN_0007f688()" (identifier "FUN_0007f688") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar8 = *puVar9;" (assignment_expression "uVar8 = *puVar9" (identifier "uVar8") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (if_statement "if (uStack_424 != uVar8) {\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }" (if "if") (parenthesized_expression "(uStack_424 != uVar8)" (( "(") (binary_expression "uStack_424 != uVar8" (identifier "uStack_424") (!= "!=") (identifier "uVar8")) () ")")) (compound_statement "{\n      pcVar21 = *(code **)(pcVar21 + 0x32c1c);\n      (*pcVar21)();\n      uVar8 = *(uint *)(pcVar21 + 0x3201c);\n      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;\n      return uVar8;\n    }" ({ "{") (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x32c1c);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x32c1c)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcVar21 + 0x32c1c)" (* "*") (cast_expression "(code **)(pcVar21 + 0x32c1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x32c1c)" (( "(") (binary_expression "pcVar21 + 0x32c1c" (identifier "pcVar21") (+ "+") (number_literal "0x32c1c")) () ")"))))) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(pcVar21 + 0x3201c);" (assignment_expression "uVar8 = *(uint *)(pcVar21 + 0x3201c)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(pcVar21 + 0x3201c)" (* "*") (cast_expression "(uint *)(pcVar21 + 0x3201c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x3201c)" (( "(") (binary_expression "pcVar21 + 0x3201c" (identifier "pcVar21") (+ "+") (number_literal "0x3201c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(uVar8 + 0x36ec) = puVar11;" (assignment_expression "*(undefined1 **)(uVar8 + 0x36ec) = puVar11" (pointer_expression "*(undefined1 **)(uVar8 + 0x36ec)" (* "*") (cast_expression "(undefined1 **)(uVar8 + 0x36ec)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar8 + 0x36ec)" (( "(") (binary_expression "uVar8 + 0x36ec" (identifier "uVar8") (+ "+") (number_literal "0x36ec")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}")))

int function_1(void *frontend,char *host,int port,char *keytype,char *keystr,
                       char *fingerprint,type_1 *callback,void *ctx)

{
  type_2 cVar1;
  type_2 cVar2;
  type_2 cVar3;
  type_3 *puVar4;
  type_3 *puVar5;
  type_4 *ptVar6;
  type_4 *ptVar7;
  int var_10;
  int var_2;
  type_4 *ptVar10;
  type_5 *var_15;
  type_4 *ptVar12;
  type_5 *puVar13;
  type_5 *var_14;
  type_6 uVar15;
  type_7 tVar16;
  type_5 uVar17;
  type_4 *ptVar18;
  type_8 *puVar19;
  type_7 tVar20;
  type_8 *puVar21;
  type_5 uVar22;
  type_3 *puVar23;
  type_4 *len;
  type_5 *puVar24;
  type_5 *var_13;
  type_7 tVar26;
  type_5 uVar27;
  int *piVar28;
  int *piVar29;
  type_6 *puVar30;
  type_6 *puVar31;
  type_3 *var_7;
  type_9 *var_17;
  type_9 *pcVar34;
  type_4 tStack_458;
  int var_24;
  int *piStack_41c;
  type_6 *puStack_418;
  type_9 *pcStack_414;
  type_6 uStack_400;
  type_9 *var_21;
  type_6 *puStack_3ec;
  type_4 tStack_3e8;
  type_5 var_22 [26];
  type_10 abStack_34c [32];
  int var_23;
  int *piStack_324;
  type_6 *puStack_320;
  int iStack_31c;
  type_5 *puStack_318;
  type_9 *pcStack_314;
  type_5 *puStack_300;
  type_9 *var_18;
  type_8 *puStack_2f0;
  type_5 *puStack_2ec;
  type_4 tStack_2e8;
  type_5 var_19 [26];
  type_10 abStack_24c [32];
  int var_20;
  int *piStack_224;
  type_6 *puStack_220;
  int iStack_21c;
  type_5 *puStack_218;
  type_9 *pcStack_214;
  type_4 *ptStack_200;
  type_3 *var_11;
  type_8 *puStack_1f0;
  type_4 *ptStack_1ec;
  type_4 tStack_1e8;
  type_5 var_12 [26];
  type_10 abStack_14c [32];
  int var_16;
  type_3 *puStack_124;
  char *pcStack_120;
  char *pcStack_11c;
  int iStack_118;
  type_9 *pcStack_114;
  char *local_100;
  type_4 cf;
  type_4 oldmode;
  type_4 newmode;
  char line [32];
  
  puVar4 = PTR___stack_chk_guard_000b2f04;
  var_10 = *(int *)PTR___stack_chk_guard_000b2f04;
  puVar19 = (type_8 *)port;
  ptVar18 = (type_4 *)keytype;
  var_2 = var_1(host,port,keytype,keystr);
  var_7 = var_3;
  if (var_2 != 0) {
    if (*(int *)(var_3 + 0x36b4) == 0) {
      if (var_2 == 2) goto LAB_0007fb6c;
LAB_0007f9e8:
      if (var_2 == 1) {
        puVar19 = (type_8 *)0x1;
        uVar15 = *(type_6 *)PTR_stderr_000b2f1c;
        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
          local_100 = fingerprint;
          ptVar18 = (type_4 *)(var_4 + -0xc90);
          (*(type_9 *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);
          var_2 = 0;
          goto LAB_0007fb30;
        }
        puVar23 = var_4 + -0xe40;
        goto LAB_0007fa1c;
      }
    }
    else {
      var_5(&cf);
      if (var_2 != 2) goto LAB_0007f9e8;
LAB_0007fb6c:
      puVar19 = (type_8 *)0x1;
      uVar15 = *(type_6 *)PTR_stderr_000b2f1c;
      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
        local_100 = fingerprint;
        ptVar18 = (type_4 *)(var_4 + -0x94c);
        (*(type_9 *)PTR___fprintf_chk_000b2d7c)(uVar15,1,ptVar18,keytype);
        var_2 = 0;
        goto LAB_0007fb30;
      }
      puVar23 = var_4 + -0xbe4;
LAB_0007fa1c:
      puVar5 = PTR_stderr_000b2f1c;
      local_100 = fingerprint;
      (*(type_9 *)PTR___fprintf_chk_000b2d7c)(uVar15,1,puVar23,keytype);
      (*(type_9 *)PTR_fflush_000b2f20)(*(type_6 *)puVar5);
    }
    ptVar18 = &oldmode;
    (*(type_9 *)PTR_tcgetattr_000b2d64)(0,ptVar18);
    len = &newmode;
    ptVar6 = ptVar18;
    ptVar7 = len;
    do {
      ptVar12 = ptVar7;
      ptVar10 = ptVar6;
      tVar26 = ptVar10->c_oflag;
      tVar20 = ptVar10->c_cflag;
      tVar16 = ptVar10->c_lflag;
      ptVar12->c_iflag = ptVar10->c_iflag;
      ptVar12->c_oflag = tVar26;
      ptVar12->c_cflag = tVar20;
      ptVar12->c_lflag = tVar16;
      ptVar6 = (type_4 *)&ptVar10->c_line;
      ptVar7 = (type_4 *)&ptVar12->c_line;
    } while (&ptVar10->c_line != oldmode.c_cc + 0x1f);
    cVar1 = ptVar10->c_cc[0];
    cVar2 = ptVar10->c_cc[1];
    cVar3 = ptVar10->c_cc[2];
    puVar19 = &DAT_0000540e;
    ptVar12->c_line = ptVar10->c_line;
    ptVar12->c_cc[0] = cVar1;
    ptVar12->c_cc[1] = cVar2;
    ptVar12->c_cc[2] = cVar3;
    newmode.c_lflag = newmode.c_lflag | 0xb;
    (*(type_9 *)PTR_tcsetattr_000b2e98)(0);
    line[0] = '\0';
    var_6((int)line,puVar19,(size_t)len);
    puVar19 = &DAT_0000540e;
    (*(type_9 *)PTR_tcsetattr_000b2e98)(0);
    if ((type_10)line[0] < 0xe) {
      if ((int)((0x2401U >> ((type_10)line[0] & 0x1f)) << 0x1f) < 0) {
        ptVar18 = (type_4 *)&DAT_00000016;
        puVar19 = (type_8 *)0x1;
        (*(type_9 *)PTR_fwrite_000b2eb0)
                  (var_4 + -0xe58,1,0x16,*(type_6 *)PTR_stderr_000b2f1c)
        ;
        var_2 = *(int *)(var_7 + 0x36b4);
        if (var_2 != 0) {
          var_8(&cf);
          var_2 = 0;
        }
        goto LAB_0007fb30;
      }
    }
    else if ((line[0] & 0xdfU) == 0x59) {
      puVar19 = (type_8 *)port;
      ptVar18 = (type_4 *)keytype;
      var_9(host,port,keytype,keystr);
    }
    if (*(int *)(var_7 + 0x36b4) != 0) {
      var_8(&cf);
    }
  }
  var_2 = 1;
LAB_0007fb30:
  if (var_10 == *(int *)puVar4) {
    return var_2;
  }
  var_17 = askalg;
  var_7 = PTR___stack_chk_fail_000b2ed8;
  (*(type_9 *)PTR___stack_chk_fail_000b2ed8)();
  var_11 = var_7 + 0x3a6f4;
  puStack_124 = puVar4;
  var_10 = *(int *)(var_7 + 0x3271c);
  piVar28 = *(int **)(var_7 + 0x33288);
  var_16 = *piVar28;
  ptStack_200 = ptVar18;
  pcStack_120 = keytype;
  pcStack_11c = host;
  iStack_118 = port;
  pcStack_114 = var_17;
  if (*(int *)(var_10 + 0x36b4) != 0) {
    puStack_1f0 = puVar19;
    ptStack_1ec = ptVar18;
    var_5(&tStack_1e8);
    ptStack_200 = ptStack_1ec;
    puVar19 = puStack_1f0;
  }
  puVar21 = (type_8 *)0x1;
  puVar30 = *(type_6 **)(var_11 + -0x7454);
  if (**(int **)(var_11 + -0x7bc8) == 0) {
    port = (int)var_12;
    (**(type_9 **)(var_11 + -0x75f4))(*puVar30,1,*(int *)(var_11 + -0x7f80) + -0xf5c);
    (**(type_9 **)(var_11 + -0x7450))(*puVar30);
    (**(type_9 **)(var_11 + -0x760c))(0,port);
    puVar24 = var_12 + 0xd;
    var_13 = (type_5 *)port;
    var_14 = puVar24;
    do {
      var_15 = var_13 + 4;
      puVar13 = var_14 + 4;
      uVar27 = var_13[1];
      uVar22 = var_13[2];
      uVar17 = var_13[3];
      *var_14 = *var_13;
      var_14[1] = uVar27;
      var_14[2] = uVar22;
      var_14[3] = uVar17;
      var_13 = var_15;
      var_14 = puVar13;
    } while (var_15 != var_12 + 0xc);
    puVar19 = &DAT_0000540e;
    var_17 = *(type_9 **)(var_11 + -0x74d8);
    *puVar13 = *var_15;
    var_12[0x10] = var_12[0x10] | 0xb;
    (*var_17)(0);
    abStack_14c[0] = 0;
    var_6((int)abStack_14c,puVar19,(size_t)puVar24);
    puVar21 = &DAT_0000540e;
    var_13 = (type_5 *)port;
    (**(type_9 **)(var_11 + -0x74d8))(0);
    if ((abStack_14c[0] & 0xdf) == 0x59) {
      if (*(int *)(var_10 + 0x36b4) == 0) {
        var_2 = 1;
      }
      else {
        var_8(&tStack_1e8);
        var_2 = 1;
      }
    }
    else {
      var_13 = (type_5 *)&DAT_00000016;
      puVar21 = (type_8 *)0x1;
      (**(type_9 **)(var_11 + -0x74c0))(*(int *)(var_11 + -0x7f80) + -0xf74,1,0x16,*puVar30)
      ;
      var_2 = *(int *)(var_10 + 0x36b4);
      if (var_2 != 0) {
        var_8(&tStack_1e8);
        var_2 = 0;
      }
    }
  }
  else {
    var_13 = (type_5 *)(*(int *)(var_11 + -0x7f80) + -0xedc);
    (**(type_9 **)(var_11 + -0x75f4))(*puVar30,1,var_13,puVar19);
    var_2 = 0;
  }
  if (var_16 == *piVar28) {
    return var_2;
  }
  var_17 = *(type_9 **)(var_11 + -0x7498);
  pcVar34 = askhk;
  (*var_17)();
  var_18 = var_17 + 0x3a4d0;
  var_2 = *(int *)(var_17 + 0x324f8);
  piVar29 = *(int **)(var_17 + 0x33064);
  var_20 = *piVar29;
  puStack_300 = var_13;
  piStack_224 = piVar28;
  puStack_220 = puVar30;
  iStack_21c = var_10;
  puStack_218 = (type_5 *)port;
  pcStack_214 = pcVar34;
  if (*(int *)(var_2 + 0x36b4) != 0) {
    puStack_2f0 = puVar21;
    puStack_2ec = var_13;
    var_5(&tStack_2e8);
    puStack_300 = puStack_2ec;
    puVar21 = puStack_2f0;
  }
  puVar30 = (type_6 *)&DAT_00000001;
  puVar31 = *(type_6 **)(var_18 + -0x7454);
  if (**(int **)(var_18 + -0x7bc8) == 0) {
    port = (int)var_19;
    (**(type_9 **)(var_18 + -0x75f4))(*puVar31,1,*(int *)(var_18 + -0x7f80) + -0x1168);
    (**(type_9 **)(var_18 + -0x7450))(*puVar31);
    (**(type_9 **)(var_18 + -0x760c))(0,port);
    puVar24 = var_19 + 0xd;
    var_13 = (type_5 *)port;
    var_14 = puVar24;
    do {
      var_15 = var_13 + 4;
      puVar13 = var_14 + 4;
      uVar27 = var_13[1];
      uVar22 = var_13[2];
      uVar17 = var_13[3];
      *var_14 = *var_13;
      var_14[1] = uVar27;
      var_14[2] = uVar22;
      var_14[3] = uVar17;
      var_13 = var_15;
      var_14 = puVar13;
    } while (var_15 != var_19 + 0xc);
    puVar19 = &DAT_0000540e;
    var_17 = *(type_9 **)(var_18 + -0x74d8);
    *puVar13 = *var_15;
    var_19[0x10] = var_19[0x10] | 0xb;
    (*var_17)(0);
    abStack_24c[0] = 0;
    var_6((int)abStack_24c,puVar19,(size_t)puVar24);
    puVar30 = (type_6 *)&DAT_0000540e;
    (**(type_9 **)(var_18 + -0x74d8))(0,&DAT_0000540e,port);
    if ((abStack_24c[0] & 0xdf) == 0x59) {
      if (*(int *)(var_2 + 0x36b4) == 0) {
        var_10 = 1;
      }
      else {
        var_8(&tStack_2e8);
        var_10 = 1;
      }
    }
    else {
      puVar30 = (type_6 *)&DAT_00000001;
      (**(type_9 **)(var_18 + -0x74c0))
                (*(int *)(var_18 + -0x7f80) + -0x1180,1,0x16,*puVar31);
      var_10 = *(int *)(var_2 + 0x36b4);
      if (var_10 != 0) {
        var_8(&tStack_2e8);
        var_10 = 0;
      }
    }
  }
  else {
    (**(type_9 **)(var_18 + -0x75f4))
              (*puVar31,1,*(int *)(var_18 + -0x7f80) + -0x1068,puVar21);
    var_10 = 0;
  }
  if (var_20 == *piVar29) {
    return var_10;
  }
  var_17 = *(type_9 **)(var_18 + -0x7498);
  pcVar34 = askappend;
  (*var_17)();
  var_21 = var_17 + 0x3a2ac;
  var_10 = *(int *)(var_17 + 0x322d4);
  piVar28 = *(int **)(var_17 + 0x32e40);
  var_23 = *piVar28;
  piStack_324 = piVar29;
  puStack_320 = puVar31;
  iStack_31c = var_2;
  puStack_318 = (type_5 *)port;
  pcStack_314 = pcVar34;
  if (*(int *)(var_10 + 0x36b4) != 0) {
    puStack_3ec = puVar30;
    var_5(&tStack_3e8);
    puVar30 = puStack_3ec;
  }
  puVar31 = *(type_6 **)(var_21 + -0x7454);
  uStack_400 = *puVar30;
  if (**(int **)(var_21 + -0x7bc8) == 0) {
    (**(type_9 **)(var_21 + -0x75f4))(*puVar31,1,*(int *)(var_21 + -0x7f80) + -0x1308);
    (**(type_9 **)(var_21 + -0x7450))(*puVar31);
    (**(type_9 **)(var_21 + -0x760c))(0,var_22);
    puVar24 = var_22 + 0xd;
    var_13 = var_22;
    var_14 = puVar24;
    do {
      var_15 = var_13 + 4;
      puVar13 = var_14 + 4;
      uVar27 = var_13[1];
      uVar22 = var_13[2];
      uVar17 = var_13[3];
      *var_14 = *var_13;
      var_14[1] = uVar27;
      var_14[2] = uVar22;
      var_14[3] = uVar17;
      var_13 = var_15;
      var_14 = puVar13;
    } while (var_15 != var_22 + 0xc);
    puVar19 = &DAT_0000540e;
    var_17 = *(type_9 **)(var_21 + -0x74d8);
    *puVar13 = *var_15;
    var_22[0x10] = var_22[0x10] | 0xb;
    (*var_17)(0);
    abStack_34c[0] = 0;
    var_6((int)abStack_34c,puVar19,(size_t)puVar24);
    (**(type_9 **)(var_21 + -0x74d8))(0,&DAT_0000540e,var_22);
    if (*(int *)(var_10 + 0x36b4) != 0) {
      var_8(&tStack_3e8);
    }
    if ((abStack_34c[0] & 0xdf) == 0x59) {
      uVar17 = 2;
    }
    else {
      uVar17 = (type_5)((abStack_34c[0] & 0xdf) == 0x4e);
    }
  }
  else {
    (**(type_9 **)(var_21 + -0x75f4))
              (*puVar31,1,*(int *)(var_21 + -0x7f80) + -0x11cc,0x1000);
    (**(type_9 **)(var_21 + -0x7450))(*puVar31);
    uVar17 = 0;
  }
  if (var_23 != *piVar28) {
    var_17 = *(type_9 **)(var_21 + -0x7498);
    pcVar34 = old_keyfile_warning;
    (*var_17)();
    var_10 = *(int *)(var_17 + 0x320dc);
    piVar29 = *(int **)(var_17 + 0x32c48);
    var_24 = *piVar29;
    piStack_41c = piVar28;
    puStack_418 = puVar31;
    pcStack_414 = pcVar34;
    if (*(int *)(var_10 + 0x36b4) != 0) {
      var_5(&tStack_458);
    }
    ptVar18 = (type_4 *)(*(int *)(var_17 + 0x32134) + -0x1470);
    (**(type_9 **)(var_17 + 0x32bf4))(ptVar18,1,0x165,**(type_6 **)(var_17 + 0x32c60));
    if (*(int *)(var_10 + 0x36b4) != 0) {
      ptVar18 = &tStack_458;
      var_8(ptVar18);
    }
    var_10 = *piVar29;
    if (var_24 != var_10) {
      var_17 = *(type_9 **)(var_17 + 0x32c1c);
      (*var_17)();
      var_10 = *(int *)(var_17 + 0x3201c);
      *(type_4 **)(var_10 + 0x36ec) = ptVar18;
      return var_10;
    }
    return var_10;
  }
  return uVar17;
}


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

uint MASKED(undefined4 param_1,undefined4 param_2,uint *param_3,uint *param_4,
                        undefined4 param_5,undefined4 param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  undefined4 uVar7;
  uint uVar8;
  uint *puVar9;
  uint uVar10;
  undefined1 *puVar11;
  undefined *puVar12;
  uint *puVar13;
  uint uVar14;
  int *piVar15;
  int *piVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  int iVar19;
  undefined *puVar20;
  code *pcVar21;
  code *pcVar22;
  undefined1 auStack_458 [52];
  uint uStack_424;
  int *piStack_41c;
  undefined4 *puStack_418;
  code *pcStack_414;
  undefined4 uStack_400;
  code *pcStack_3f8;
  undefined4 *puStack_3ec;
  undefined1 auStack_3e8 [52];
  uint auStack_3b4 [26];
  byte abStack_34c [32];
  int iStack_32c;
  int *piStack_324;
  undefined4 *puStack_320;
  int iStack_31c;
  uint *puStack_318;
  code *pcStack_314;
  uint *puStack_300;
  code *pcStack_2f8;
  undefined1 *puStack_2f0;
  uint *puStack_2ec;
  undefined1 auStack_2e8 [52];
  uint auStack_2b4 [26];
  byte abStack_24c [32];
  int iStack_22c;
  int *piStack_224;
  undefined4 *puStack_220;
  int iStack_21c;
  uint *puStack_218;
  code *pcStack_214;
  uint *puStack_200;
  undefined *puStack_1f8;
  uint *puStack_1f0;
  uint *puStack_1ec;
  undefined1 auStack_1e8 [52];
  uint auStack_1b4 [26];
  byte abStack_14c [32];
  int iStack_12c;
  undefined *puStack_124;
  uint *puStack_120;
  undefined4 uStack_11c;
  uint *puStack_118;
  code *pcStack_114;
  undefined4 local_100;
  undefined1 auStack_e8 [52];
  uint local_b4 [26];
  byte local_4c [32];
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_000b2f04;
  local_2c = *(int *)PTR___stack_chk_guard_000b2f04;
  puVar9 = param_3;
  puVar13 = param_4;
  iVar3 = verify_host_key(param_2,param_3,param_4,param_5);
  puVar20 = PTR_DAT_000b2398;
  if (iVar3 != 0) {
    if (*(int *)(PTR_DAT_000b2398 + 0x36b4) == 0) {
      if (iVar3 == 2) goto LAB_0007fb6c;
LAB_0007f9e8:
      if (iVar3 == 1) {
        puVar9 = (uint *)0x1;
        uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;
        if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
          local_100 = param_6;
          puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0xc90);
          (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);
          uVar8 = 0;
          goto LAB_0007fb30;
        }
        puVar12 = PTR_s_entropy_source_000b23f0 + -0xe40;
        goto LAB_0007fa1c;
      }
    }
    else {
      FUN_0007f63c(auStack_e8);
      if (iVar3 != 2) goto LAB_0007f9e8;
LAB_0007fb6c:
      puVar9 = (uint *)0x1;
      uVar7 = *(undefined4 *)PTR_stderr_000b2f1c;
      if (*(int *)PTR_console_batch_mode_000b27a8 != 0) {
        local_100 = param_6;
        puVar13 = (uint *)(PTR_s_entropy_source_000b23f0 + -0x94c);
        (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar13,param_4);
        uVar8 = 0;
        goto LAB_0007fb30;
      }
      puVar12 = PTR_s_entropy_source_000b23f0 + -0xbe4;
LAB_0007fa1c:
      puVar2 = PTR_stderr_000b2f1c;
      local_100 = param_6;
      (*(code *)PTR___fprintf_chk_000b2d7c)(uVar7,1,puVar12,param_4);
      (*(code *)PTR_fflush_000b2f20)(*(undefined4 *)puVar2);
    }
    puVar13 = local_b4;
    (*(code *)PTR_tcgetattr_000b2d64)(0,puVar13);
    puVar9 = puVar13;
    puVar5 = local_b4 + 0xd;
    do {
      puVar4 = puVar9 + 4;
      puVar6 = puVar5 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar5 = *puVar9;
      puVar5[1] = uVar14;
      puVar5[2] = uVar10;
      puVar5[3] = uVar8;
      puVar9 = puVar4;
      puVar5 = puVar6;
    } while (puVar4 != local_b4 + 0xc);
    *puVar6 = *puVar4;
    local_b4[0x10] = local_b4[0x10] | 0xb;
    (*(code *)PTR_tcsetattr_000b2e98)(0,&DAT_0000540e);
    local_4c[0] = 0;
    FUN_0007f6a8(local_4c);
    puVar9 = (uint *)&DAT_0000540e;
    (*(code *)PTR_tcsetattr_000b2e98)(0);
    if (local_4c[0] < 0xe) {
      if ((int)((0x2401U >> (local_4c[0] & 0x1f)) << 0x1f) < 0) {
        puVar13 = (uint *)&DAT_00000016;
        puVar9 = (uint *)0x1;
        (*(code *)PTR_fwrite_000b2eb0)
                  (PTR_s_entropy_source_000b23f0 + -0xe58,1,0x16,*(undefined4 *)PTR_stderr_000b2f1c)
        ;
        uVar8 = *(uint *)(puVar20 + 0x36b4);
        if (uVar8 != 0) {
          FUN_0007f688(auStack_e8);
          uVar8 = 0;
        }
        goto LAB_0007fb30;
      }
    }
    else if ((local_4c[0] & 0xdf) == 0x59) {
      puVar9 = param_3;
      puVar13 = param_4;
      store_host_key(param_2,param_3,param_4,param_5);
    }
    if (*(int *)(puVar20 + 0x36b4) != 0) {
      FUN_0007f688(auStack_e8);
    }
  }
  uVar8 = 1;
LAB_0007fb30:
  if (local_2c == *(int *)puVar1) {
    return uVar8;
  }
  pcVar21 = askalg;
  puVar20 = PTR___stack_chk_fail_000b2ed8;
  (*(code *)PTR___stack_chk_fail_000b2ed8)();
  puStack_1f8 = puVar20 + 0x3a6f4;
  puStack_124 = puVar1;
  iVar3 = *(int *)(puVar20 + 0x3271c);
  piVar15 = *(int **)(puVar20 + 0x33288);
  iStack_12c = *piVar15;
  puStack_200 = puVar13;
  puStack_120 = param_4;
  uStack_11c = param_2;
  puStack_118 = param_3;
  pcStack_114 = pcVar21;
  if (*(int *)(iVar3 + 0x36b4) != 0) {
    puStack_1f0 = puVar9;
    puStack_1ec = puVar13;
    FUN_0007f63c(auStack_1e8);
    puStack_200 = puStack_1ec;
    puVar9 = puStack_1f0;
  }
  puVar11 = (undefined1 *)0x1;
  puVar17 = *(undefined4 **)(puStack_1f8 + -0x7454);
  if (**(int **)(puStack_1f8 + -0x7bc8) == 0) {
    param_3 = auStack_1b4;
    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,*(int *)(puStack_1f8 + -0x7f80) + -0xf5c);
    (**(code **)(puStack_1f8 + -0x7450))(*puVar17);
    (**(code **)(puStack_1f8 + -0x760c))(0,param_3);
    puVar9 = param_3;
    puVar13 = auStack_1b4 + 0xd;
    do {
      puVar5 = puVar9 + 4;
      puVar4 = puVar13 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar13 = *puVar9;
      puVar13[1] = uVar14;
      puVar13[2] = uVar10;
      puVar13[3] = uVar8;
      puVar9 = puVar5;
      puVar13 = puVar4;
    } while (puVar5 != auStack_1b4 + 0xc);
    pcVar21 = *(code **)(puStack_1f8 + -0x74d8);
    *puVar4 = *puVar5;
    auStack_1b4[0x10] = auStack_1b4[0x10] | 0xb;
    (*pcVar21)(0,&DAT_0000540e);
    abStack_14c[0] = 0;
    FUN_0007f6a8(abStack_14c);
    puVar11 = &DAT_0000540e;
    puVar13 = param_3;
    (**(code **)(puStack_1f8 + -0x74d8))(0);
    if ((abStack_14c[0] & 0xdf) == 0x59) {
      if (*(int *)(iVar3 + 0x36b4) == 0) {
        uVar8 = 1;
      }
      else {
        FUN_0007f688(auStack_1e8);
        uVar8 = 1;
      }
    }
    else {
      puVar13 = (uint *)&DAT_00000016;
      puVar11 = (undefined1 *)0x1;
      (**(code **)(puStack_1f8 + -0x74c0))(*(int *)(puStack_1f8 + -0x7f80) + -0xf74,1,0x16,*puVar17)
      ;
      uVar8 = *(uint *)(iVar3 + 0x36b4);
      if (uVar8 != 0) {
        FUN_0007f688(auStack_1e8);
        uVar8 = 0;
      }
    }
  }
  else {
    puVar13 = (uint *)(*(int *)(puStack_1f8 + -0x7f80) + -0xedc);
    (**(code **)(puStack_1f8 + -0x75f4))(*puVar17,1,puVar13,puVar9);
    uVar8 = 0;
  }
  if (iStack_12c == *piVar15) {
    return uVar8;
  }
  pcVar21 = *(code **)(puStack_1f8 + -0x7498);
  pcVar22 = askhk;
  (*pcVar21)();
  pcStack_2f8 = pcVar21 + 0x3a4d0;
  iVar19 = *(int *)(pcVar21 + 0x324f8);
  piVar16 = *(int **)(pcVar21 + 0x33064);
  iStack_22c = *piVar16;
  puStack_300 = puVar13;
  piStack_224 = piVar15;
  puStack_220 = puVar17;
  iStack_21c = iVar3;
  puStack_218 = param_3;
  pcStack_214 = pcVar22;
  if (*(int *)(iVar19 + 0x36b4) != 0) {
    puStack_2f0 = puVar11;
    puStack_2ec = puVar13;
    FUN_0007f63c(auStack_2e8);
    puStack_300 = puStack_2ec;
    puVar11 = puStack_2f0;
  }
  puVar17 = (undefined4 *)0x1;
  puVar18 = *(undefined4 **)(pcStack_2f8 + -0x7454);
  if (**(int **)(pcStack_2f8 + -0x7bc8) == 0) {
    param_3 = auStack_2b4;
    (**(code **)(pcStack_2f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1168);
    (**(code **)(pcStack_2f8 + -0x7450))(*puVar18);
    (**(code **)(pcStack_2f8 + -0x760c))(0,param_3);
    puVar9 = param_3;
    puVar13 = auStack_2b4 + 0xd;
    do {
      puVar5 = puVar9 + 4;
      puVar4 = puVar13 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar13 = *puVar9;
      puVar13[1] = uVar14;
      puVar13[2] = uVar10;
      puVar13[3] = uVar8;
      puVar9 = puVar5;
      puVar13 = puVar4;
    } while (puVar5 != auStack_2b4 + 0xc);
    pcVar21 = *(code **)(pcStack_2f8 + -0x74d8);
    *puVar4 = *puVar5;
    auStack_2b4[0x10] = auStack_2b4[0x10] | 0xb;
    (*pcVar21)(0,&DAT_0000540e);
    abStack_24c[0] = 0;
    FUN_0007f6a8(abStack_24c);
    puVar17 = (undefined4 *)&DAT_0000540e;
    (**(code **)(pcStack_2f8 + -0x74d8))(0,&DAT_0000540e,param_3);
    if ((abStack_24c[0] & 0xdf) == 0x59) {
      if (*(int *)(iVar19 + 0x36b4) == 0) {
        uVar8 = 1;
      }
      else {
        FUN_0007f688(auStack_2e8);
        uVar8 = 1;
      }
    }
    else {
      puVar17 = (undefined4 *)0x1;
      (**(code **)(pcStack_2f8 + -0x74c0))
                (*(int *)(pcStack_2f8 + -0x7f80) + -0x1180,1,0x16,*puVar18);
      uVar8 = *(uint *)(iVar19 + 0x36b4);
      if (uVar8 != 0) {
        FUN_0007f688(auStack_2e8);
        uVar8 = 0;
      }
    }
  }
  else {
    (**(code **)(pcStack_2f8 + -0x75f4))
              (*puVar18,1,*(int *)(pcStack_2f8 + -0x7f80) + -0x1068,puVar11);
    uVar8 = 0;
  }
  if (iStack_22c == *piVar16) {
    return uVar8;
  }
  pcVar21 = *(code **)(pcStack_2f8 + -0x7498);
  pcVar22 = askappend;
  (*pcVar21)();
  pcStack_3f8 = pcVar21 + 0x3a2ac;
  iVar3 = *(int *)(pcVar21 + 0x322d4);
  piVar15 = *(int **)(pcVar21 + 0x32e40);
  iStack_32c = *piVar15;
  piStack_324 = piVar16;
  puStack_320 = puVar18;
  iStack_31c = iVar19;
  puStack_318 = param_3;
  pcStack_314 = pcVar22;
  if (*(int *)(iVar3 + 0x36b4) != 0) {
    puStack_3ec = puVar17;
    FUN_0007f63c(auStack_3e8);
    puVar17 = puStack_3ec;
  }
  puVar18 = *(undefined4 **)(pcStack_3f8 + -0x7454);
  uStack_400 = *puVar17;
  if (**(int **)(pcStack_3f8 + -0x7bc8) == 0) {
    (**(code **)(pcStack_3f8 + -0x75f4))(*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x1308);
    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);
    (**(code **)(pcStack_3f8 + -0x760c))(0,auStack_3b4);
    puVar9 = auStack_3b4;
    puVar13 = auStack_3b4 + 0xd;
    do {
      puVar5 = puVar9 + 4;
      puVar4 = puVar13 + 4;
      uVar14 = puVar9[1];
      uVar10 = puVar9[2];
      uVar8 = puVar9[3];
      *puVar13 = *puVar9;
      puVar13[1] = uVar14;
      puVar13[2] = uVar10;
      puVar13[3] = uVar8;
      puVar9 = puVar5;
      puVar13 = puVar4;
    } while (puVar5 != auStack_3b4 + 0xc);
    pcVar21 = *(code **)(pcStack_3f8 + -0x74d8);
    *puVar4 = *puVar5;
    auStack_3b4[0x10] = auStack_3b4[0x10] | 0xb;
    (*pcVar21)(0,&DAT_0000540e);
    abStack_34c[0] = 0;
    FUN_0007f6a8(abStack_34c);
    (**(code **)(pcStack_3f8 + -0x74d8))(0,&DAT_0000540e,auStack_3b4);
    if (*(int *)(iVar3 + 0x36b4) != 0) {
      FUN_0007f688(auStack_3e8);
    }
    if ((abStack_34c[0] & 0xdf) == 0x59) {
      uVar8 = 2;
    }
    else {
      uVar8 = (uint)((abStack_34c[0] & 0xdf) == 0x4e);
    }
  }
  else {
    (**(code **)(pcStack_3f8 + -0x75f4))
              (*puVar18,1,*(int *)(pcStack_3f8 + -0x7f80) + -0x11cc,0x1000);
    (**(code **)(pcStack_3f8 + -0x7450))(*puVar18);
    uVar8 = 0;
  }
  if (iStack_32c != *piVar15) {
    pcVar21 = *(code **)(pcStack_3f8 + -0x7498);
    pcVar22 = old_keyfile_warning;
    (*pcVar21)();
    iVar3 = *(int *)(pcVar21 + 0x320dc);
    puVar9 = *(uint **)(pcVar21 + 0x32c48);
    uStack_424 = *puVar9;
    piStack_41c = piVar15;
    puStack_418 = puVar18;
    pcStack_414 = pcVar22;
    if (*(int *)(iVar3 + 0x36b4) != 0) {
      FUN_0007f63c(auStack_458);
    }
    puVar11 = (undefined1 *)(*(int *)(pcVar21 + 0x32134) + -0x1470);
    (**(code **)(pcVar21 + 0x32bf4))(puVar11,1,0x165,**(undefined4 **)(pcVar21 + 0x32c60));
    if (*(int *)(iVar3 + 0x36b4) != 0) {
      puVar11 = auStack_458;
      FUN_0007f688();
    }
    uVar8 = *puVar9;
    if (uStack_424 != uVar8) {
      pcVar21 = *(code **)(pcVar21 + 0x32c1c);
      (*pcVar21)();
      uVar8 = *(uint *)(pcVar21 + 0x3201c);
      *(undefined1 **)(uVar8 + 0x36ec) = puVar11;
      return uVar8;
    }
    return uVar8;
  }
  return uVar8;
}

