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

int proxy_socks5_handlechap(Proxy_Socket p)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int len;
  bufchain *ch;
  uchar md5buf [16];
  uchar outbuf [20];
  uchar data [260];
  
  puVar1 = PTR___stack_chk_guard_000adcd4;
  uVar2 = p->chap_num_attributes;
  ch = &p->pending_input_data;
  iVar4 = *(int *)PTR___stack_chk_guard_000adcd4;
LAB_0001e6f4:
  if (uVar2 == 0) goto LAB_0001e7c4;
  uVar2 = (uint)(p->chap_num_attributes_processed < (int)uVar2);
  if (uVar2 != 0) {
    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;
    while( true ) {
      iVar3 = bufchain_size(ch);
      len = p->chap_current_datalen;
      if (iVar3 < len) break;
      while( true ) {
        bufchain_fetch(ch,data,len);
        bufchain_consume(ch,p->chap_current_datalen);
        iVar3 = p->chap_current_attribute;
        if (iVar3 == 3) {
                    /* WARNING: Subroutine does not return */
          conf_get_str(p->conf,0x11);
        }
        if (iVar3 == 0x11) {
          if (data[0] != 0x85) {
            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);
            uVar2 = 1;
            goto LAB_0001e898;
          }
        }
        else if (iVar3 == 0) {
          if (data[0] == '\0') {
            uVar2 = p->chap_num_attributes;
            p->state = 2;
            p->chap_current_attribute = -1;
            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;
            goto LAB_0001e6f4;
          }
          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);
          uVar2 = 1;
          goto LAB_0001e898;
        }
        iVar3 = p->state;
        uVar2 = p->chap_num_attributes;
        p->chap_current_attribute = -1;
        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;
        while( true ) {
          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;
          p->chap_num_attributes = 0;
          p->chap_num_attributes_processed = 0;
          p->chap_current_datalen = 0;
LAB_0001e7c4:
          iVar3 = bufchain_size(ch);
          if (iVar3 < 2) goto LAB_0001e894;
          bufchain_fetch(ch,data,2);
          bufchain_consume(ch,2);
          if (p->chap_num_attributes != 0) break;
          if (data[0] != '\x01') {
            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);
            uVar2 = 1;
            goto LAB_0001e898;
          }
          uVar2 = (uint)data[1];
          if (uVar2 == 0) {
            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);
            uVar2 = 1;
            goto LAB_0001e898;
          }
          iVar3 = p->state;
          p->chap_num_attributes = uVar2;
        }
        if (p->chap_current_attribute != -1) break;
        p->chap_current_attribute = (uint)data[0];
        p->chap_current_datalen = (uint)data[1];
        iVar3 = bufchain_size(ch);
        len = p->chap_current_datalen;
        if (iVar3 < len) goto LAB_0001e894;
      }
    }
LAB_0001e894:
    uVar2 = 1;
  }
LAB_0001e898:
  if (iVar4 == *(int *)puVar1) {
    return uVar2;
  }
  (*(code *)PTR___stack_chk_fail_000adca4)();
                    /* WARNING: Subroutine does not return */
  conf_get_str(*(Conf **)(iVar4 + 0x74),0x10);
}



uint proxy_socks5_handlechap(int param_1)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  char *pcVar6;
  uint uVar7;
  int *piVar8;
  undefined4 *puVar9;
  uint *puVar10;
  int iVar11;
  int *piVar12;
  undefined *puVar13;
  code *pcVar14;
  undefined4 uVar15;
  code *pcVar16;
  undefined4 uVar17;
  undefined1 uStack_3cc;
  char cStack_3cb;
  uint uStack_3c4;
  int iStack_3c0;
  char *pcStack_3bc;
  int *piStack_3b8;
  undefined4 uStack_3b4;
  char acStack_3ac [12];
  undefined *puStack_3a0;
  undefined4 uStack_398;
  undefined2 uStack_394;
  undefined1 uStack_392;
  undefined1 auStack_391 [509];
  int *piStack_194;
  int iStack_18c;
  int iStack_188;
  undefined4 uStack_184;
  undefined *puStack_180;
  code *pcStack_17c;
  undefined1 auStack_154 [16];
  undefined4 local_144;
  undefined1 auStack_140 [16];
  byte local_130;
  byte local_12f;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_000adcd4;
  uVar2 = *(uint *)(param_1 + 0x78);
  iVar11 = param_1 + 0x34;
  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;
LAB_0001e6f4:
  if (uVar2 == 0) goto LAB_0001e7c4;
  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);
  if (uVar2 != 0) {
    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;
    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {
      while( true ) {
        bufchain_fetch(iVar11,&local_130);
        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));
        iVar3 = *(int *)(param_1 + 0x80);
        if (iVar3 == 3) {
          uVar15 = *(undefined4 *)(param_1 + 0x84);
          local_144 = 0x1010410;
          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);
          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);
          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);
          if (uVar2 < 0x41) {
            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);
          }
          else {
            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);
            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);
          }
          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);
          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);
          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);
          iVar3 = *(int *)(param_1 + 0x44);
        }
        else {
          if (iVar3 == 0x11) {
            if (local_130 != 0x85) {
              (**(code **)(**(int **)(param_1 + 0xc) + 4))
                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);
              uVar2 = 1;
              goto LAB_0001e898;
            }
          }
          else if (iVar3 == 0) {
            if (local_130 != 0) {
              (**(code **)(**(int **)(param_1 + 0xc) + 4))
                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);
              uVar2 = 1;
              goto LAB_0001e898;
            }
            uVar2 = *(uint *)(param_1 + 0x78);
            *(undefined4 *)(param_1 + 0x44) = 2;
            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;
            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;
            goto LAB_0001e6f4;
          }
          iVar3 = *(int *)(param_1 + 0x44);
        }
        uVar2 = *(uint *)(param_1 + 0x78);
        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;
        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;
        while( true ) {
          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;
          *(undefined4 *)(param_1 + 0x78) = 0;
          *(undefined4 *)(param_1 + 0x7c) = 0;
          *(undefined4 *)(param_1 + 0x84) = 0;
LAB_0001e7c4:
          iVar3 = bufchain_size(iVar11);
          if (iVar3 < 2) goto LAB_0001e894;
          bufchain_fetch(iVar11,&local_130,2);
          bufchain_consume(iVar11,2);
          if (*(int *)(param_1 + 0x78) != 0) break;
          if (local_130 != 1) {
            (**(code **)(**(int **)(param_1 + 0xc) + 4))
                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);
            uVar2 = 1;
            goto LAB_0001e898;
          }
          uVar2 = (uint)local_12f;
          if (uVar2 == 0) {
            (**(code **)(**(int **)(param_1 + 0xc) + 4))
                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);
            uVar2 = 1;
            goto LAB_0001e898;
          }
          iVar3 = *(int *)(param_1 + 0x44);
          *(uint *)(param_1 + 0x78) = uVar2;
        }
        if (*(int *)(param_1 + 0x80) != -1) break;
        *(uint *)(param_1 + 0x80) = (uint)local_130;
        *(uint *)(param_1 + 0x84) = (uint)local_12f;
        iVar3 = bufchain_size(iVar11);
        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;
      }
    }
LAB_0001e894:
    uVar2 = 1;
  }
LAB_0001e898:
  if (local_2c == *(int *)puVar1) {
    return uVar2;
  }
  pcVar16 = proxy_socks5_selectchap;
  iVar3 = local_2c;
  puVar13 = PTR___stack_chk_fail_000adca4;
  (*(code *)PTR___stack_chk_fail_000adca4)();
  puStack_3a0 = puVar13 + 0x96800;
  uStack_184 = 0x1010410;
  piVar12 = *(int **)(puVar13 + 0x8f244);
  puStack_180 = puVar1;
  piStack_194 = (int *)*piVar12;
  iStack_18c = param_1;
  iStack_188 = iVar11;
  pcStack_17c = pcVar16;
  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);
  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);
  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {
    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);
    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);
  }
  else {
    uStack_394 = 0x8502;
    uStack_398 = 0x1021101;
    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);
    if (uVar2 < 0x100) {
      iVar11 = 8;
      if (uVar2 == 0) {
        uVar2 = 1;
        uStack_392 = 1;
      }
      else {
        iVar11 = uVar2 + 7;
        uStack_392 = (undefined1)uVar2;
      }
    }
    else {
      iVar11 = 0x106;
      uVar2 = 0xff;
      uStack_392 = 0xff;
    }
    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);
    puVar9 = &uStack_398;
    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);
    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;
    *(undefined4 *)(iVar3 + 0x78) = 0;
    *(undefined4 *)(iVar3 + 0x7c) = 0;
    *(undefined4 *)(iVar3 + 0x84) = 0;
    *(undefined4 *)(iVar3 + 0x44) = 8;
  }
  if (piStack_194 == (int *)*piVar12) {
    return 1;
  }
  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);
  uVar17 = 0x1ec1c;
  piVar8 = piStack_194;
  (*pcVar16)();
  uVar2 = (uint)puVar9 & 0xff;
  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);
  acStack_3ac[0] = (char)puVar9;
  uStack_3c4 = *puVar10;
  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);
  iStack_3c0 = iVar3;
  pcStack_3bc = pcVar5;
  piStack_3b8 = piVar12;
  uStack_3b4 = uVar17;
  if (uVar2 - 0x20 < 0x5f) {
LAB_0001ec9c:
    piVar12 = (int *)piVar8[3];
    uVar2 = 0;
    (*pcVar14)(piVar12,0,acStack_3ac,1);
  }
  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))
  {
    if (0x9f < uVar2) {
      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);
      goto LAB_0001ec9c;
    }
    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;
    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);
    uVar2 = 0;
    piVar12 = (int *)piVar8[3];
    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);
  }
  else {
    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);
    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;
LAB_0001ece4:
    if (uVar2 == 0x7f) {
      cStack_3cb = '?';
    }
    else {
      cStack_3cb = acStack_3ac[0] + '@';
    }
    piVar12 = (int *)piVar8[3];
    uVar2 = 0;
    uStack_3cc = 0x5e;
    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);
  }
  uVar7 = *puVar10;
  if (uStack_3c4 == uVar7) {
    return uVar7;
  }
  (**(code **)(pcVar16 + 0x8f084))();
  if (uVar2 - 0x20 < 0x5f) {
    return 1;
  }
  if (uVar2 < 0xa0) {
    if (-1 < (char)uVar2) {
      return 2;
    }
    iVar11 = *piVar12;
    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;
  }
  else {
    iVar11 = *piVar12;
    if (*(int *)(iVar11 + 0xdc) == 0) {
      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {
        return 1;
      }
LAB_0001ede0:
      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {
        return (uint)(0xbf < uVar2);
      }
      return 4;
    }
  }
  return uVar2 < 0xc0 ^ 1;
}


lui gp,0x9
addiu gp,gp,0x6c00
addu gp,gp,t9
addiu sp,sp,-0x178
lw v0,0x78(a0)
sw s3,0x15c(sp)
sw s2,0x158(sp)
lui s2,0x101
lw s3,-0x75bc(gp)
sw s5,0x164(sp)
addiu s2,s2,0x410
sw s4,0x160(sp)
addiu s5,sp,0x34
sw s1,0x154(sp)
addiu s4,sp,0x48
sw s0,0x150(sp)
addiu s1,a0,0x34
sw gp,0x10(sp)
or s0,a0,zero
sw ra,0x174(sp)
sw s8,0x170(sp)
sw s7,0x16c(sp)
sw s6,0x168(sp)
lw v1,0x0(s3)
sw v1,0x14c(sp)
beq v0,zero,0x0001e7c4
_lw t9,-0x7f90(gp)
lw v1,0x7c(s0)
slt v0,v1,v0
beq v0,zero,0x0001e898
_nop
lw v1,0x80(s0)
li v0,-0x1
beq v1,v0,0x0001e7c4
_nop
lw t9,-0x7f90(gp)
bal 0x00021e70
_or a0,s1,zero
lw a2,0x84(s0)
slt v0,v0,a2
bne v0,zero,0x0001e894
_lw gp,0x10(sp)
lw t9,-0x7e78(gp)
or a1,s4,zero
bal 0x00021fa4
_or a0,s1,zero
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7f7c(gp)
bal 0x00021e78
_lw a1,0x84(s0)
li v1,0x3
lw v0,0x80(s0)
beq v0,v1,0x0001e90c
_lw gp,0x10(sp)
li v1,0x11
beq v0,v1,0x0001e8d4
_lbu v1,0x48(sp)
beq v0,zero,0x0001e834
_lbu v0,0x48(sp)
lw a0,0x44(s0)
lw v1,0x7c(s0)
li a1,-0x1
lw v0,0x78(s0)
sw a1,0x80(s0)
addiu v1,v1,0x1
sw v1,0x7c(s0)
li v1,0x8
bne a0,v1,0x0001e6f4
_nop
lw v1,0x7c(s0)
slt v1,v1,v0
bne v1,zero,0x0001e6f4
_lw t9,-0x7f90(gp)
sw zero,0x78(s0)
sw zero,0x7c(s0)
sw zero,0x84(s0)
bal 0x00021e70
_or a0,s1,zero
slti v0,v0,0x2
bne v0,zero,0x0001e894
_lw gp,0x10(sp)
lw t9,-0x7e78(gp)
li a2,0x2
or a1,s4,zero
bal 0x00021fa4
_or a0,s1,zero
li a1,0x2
lw gp,0x10(sp)
lw t9,-0x7f7c(gp)
bal 0x00021e78
_or a0,s1,zero
lw v0,0x78(s0)
bne v0,zero,0x0001e85c
_lw gp,0x10(sp)
lbu v1,0x48(sp)
li v0,0x1
bne v1,v0,0x0001ea00
_or a3,zero,zero
lbu v0,0x49(sp)
beq v0,zero,0x0001ea2c
_lw a1,-0x7fc8(gp)
lw a0,0x44(s0)
b 0x0001e79c
_sw v0,0x78(s0)
bne v0,zero,0x0001ea54
_li a0,0x2
lw v1,0x7c(s0)
lw v0,0x78(s0)
sw a0,0x44(s0)
li a0,-0x1
addiu v1,v1,0x1
sw a0,0x80(s0)
b 0x0001e6f4
_sw v1,0x7c(s0)
lw v1,0x80(s0)
li v0,-0x1
bne v1,v0,0x0001e71c
_lbu v1,0x48(sp)
or a0,s1,zero
lbu v0,0x49(sp)
lw t9,-0x7f90(gp)
sw v1,0x80(s0)
bal 0x00021e70
_sw v0,0x84(s0)
lw a2,0x84(s0)
slt v0,v0,a2
beq v0,zero,0x0001e738
_lw gp,0x10(sp)
li v0,0x1
lw a0,0x14c(sp)
lw v1,0x0(s3)
bne a0,v1,0x0001ea84
_lw ra,0x174(sp)
lw s8,0x170(sp)
lw s7,0x16c(sp)
lw s6,0x168(sp)
lw s5,0x164(sp)
lw s4,0x160(sp)
lw s3,0x15c(sp)
lw s2,0x158(sp)
lw s1,0x154(sp)
lw s0,0x150(sp)
jr ra
_addiu sp,sp,0x178
li v0,0x85
beq v1,v0,0x0001e780
_or a3,zero,zero
lw v0,0xc(s0)
lw a1,-0x7fc8(gp)
li a2,0x1f40
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_addiu a1,a1,-0x5a48
li v0,0x1
b 0x0001e898
_lw gp,0x10(sp)
lw t9,-0x7f18(gp)
li a1,0x11
lw a0,0x74(s0)
lw s8,0x84(s0)
bal 0x0001d010
_sw s2,0x34(sp)
or a0,zero,zero
lw gp,0x10(sp)
lw t9,-0x7df4(gp)
jalr t9
_or s7,v0,zero
or a0,s7,zero
lw gp,0x10(sp)
lw t9,-0x7668(gp)
jalr t9
_or s6,v0,zero
sltiu v1,v0,0x41
bne v1,zero,0x0001e9e4
_lw gp,0x10(sp)
lw t9,-0x7df0(gp)
or a1,v0,zero
addiu v0,sp,0x24
or a0,s7,zero
or a2,v0,zero
jalr t9
_sw v0,0x1c(sp)
li a2,0x10
lw gp,0x10(sp)
or a0,s6,zero
lw v0,0x1c(sp)
lw t9,-0x7dec(gp)
jalr t9
_or a1,v0,zero
lw gp,0x10(sp)
lw t9,-0x7de8(gp)
addiu a3,sp,0x38
or a2,s8,zero
or a1,s4,zero
jalr t9
_or a0,s6,zero
lw gp,0x10(sp)
lw t9,-0x7de4(gp)
jalr t9
_or a0,s6,zero
li a2,0x14
lw v0,0x8(s0)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x8(v0)
jalr t9
_or a1,s5,zero
lw gp,0x10(sp)
b 0x0001e784
_lw a0,0x44(s0)
lw t9,-0x7dec(gp)
or a2,v0,zero
or a1,s7,zero
jalr t9
_or a0,s6,zero
b 0x0001e994
_lw gp,0x10(sp)
lw v0,0xc(s0)
lw a1,-0x7fc8(gp)
li a2,0x1f40
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_addiu a1,a1,-0x5af0
li v0,0x1
b 0x0001e898
_lw gp,0x10(sp)
lw v0,0xc(s0)
li a2,0x1f40
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_addiu a1,a1,-0x5ab8
li v0,0x1
b 0x0001e898
_lw gp,0x10(sp)
lw v0,0xc(s0)
or a3,zero,zero
lw a1,-0x7fc8(gp)
li a2,0x1f40
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_addiu a1,a1,-0x5a80
li v0,0x1
b 0x0001e898
_lw gp,0x10(sp)
lw t9,-0x75ec(gp)
jalr t9
_nop
(translation_unit "uint proxy_socks5_handlechap(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}\n\n" (function_definition "uint proxy_socks5_handlechap(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}" type_identifier (function_declarator "proxy_socks5_handlechap(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "undefined1 uStack_3cc;" type_identifier identifier ;) (declaration "char cStack_3cb;" primitive_type identifier ;) (declaration "uint uStack_3c4;" type_identifier identifier ;) (declaration "int iStack_3c0;" primitive_type identifier ;) (declaration "char *pcStack_3bc;" primitive_type (pointer_declarator "*pcStack_3bc" * identifier) ;) (declaration "int *piStack_3b8;" primitive_type (pointer_declarator "*piStack_3b8" * identifier) ;) (declaration "undefined4 uStack_3b4;" type_identifier identifier ;) (declaration "char acStack_3ac [12];" primitive_type (array_declarator "acStack_3ac [12]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_3a0;" type_identifier (pointer_declarator "*puStack_3a0" * identifier) ;) (declaration "undefined4 uStack_398;" type_identifier identifier ;) (declaration "undefined2 uStack_394;" type_identifier identifier ;) (declaration "undefined1 uStack_392;" type_identifier identifier ;) (declaration "undefined1 auStack_391 [509];" type_identifier (array_declarator "auStack_391 [509]" identifier [ number_literal ]) ;) (declaration "int *piStack_194;" primitive_type (pointer_declarator "*piStack_194" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "undefined4 uStack_184;" type_identifier identifier ;) (declaration "undefined *puStack_180;" type_identifier (pointer_declarator "*puStack_180" * identifier) ;) (declaration "code *pcStack_17c;" type_identifier (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "undefined1 auStack_154 [16];" type_identifier (array_declarator "auStack_154 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_144;" type_identifier identifier ;) (declaration "undefined1 auStack_140 [16];" type_identifier (array_declarator "auStack_140 [16]" identifier [ number_literal ]) ;) (declaration "byte local_130;" type_identifier identifier ;) (declaration "byte local_12f;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" identifier = (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = param_1 + 0x34;" (assignment_expression "iVar11 = param_1 + 0x34" identifier = (binary_expression "param_1 + 0x34" identifier + number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;" statement_identifier : (if_statement "if (uVar2 == 0) goto LAB_0001e7c4;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001e7c4;" goto statement_identifier ;))) (expression_statement "uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);" (assignment_expression "uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2)" identifier = (call_expression "(uint)(*(int *)(param_1 + 0x7c) < (int)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x7c) < (int)uVar2)" ( (binary_expression "*(int *)(param_1 + 0x7c) < (int)uVar2" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" { (if_statement "if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;" if (parenthesized_expression "(*(int *)(param_1 + 0x80) == -1)" ( (binary_expression "*(int *)(param_1 + 0x80) == -1" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001e7c4;" goto statement_identifier ;)) (while_statement "while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }" while (parenthesized_expression "(iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3)" ( (comma_expression "iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3" (assignment_expression "iVar3 = bufchain_size(iVar11)" identifier = (call_expression "bufchain_size(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) , (binary_expression "*(int *)(param_1 + 0x84) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x84)" * (cast_expression "(int *)(param_1 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) <= identifier)) )) (compound_statement "{\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }" { (while_statement "while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }" { (expression_statement "bufchain_fetch(iVar11,&local_130);" (call_expression "bufchain_fetch(iVar11,&local_130)" identifier (argument_list "(iVar11,&local_130)" ( identifier , (pointer_expression "&local_130" & identifier) ))) ;) (expression_statement "bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));" (call_expression "bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84))" identifier (argument_list "(iVar11,*(undefined4 *)(param_1 + 0x84))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x80);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x80)" identifier = (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 0x84);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 0x84)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "local_144 = 0x1010410;" (assignment_expression "local_144 = 0x1010410" identifier = number_literal) ;) (expression_statement "uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);" (assignment_expression "uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11)" identifier = (call_expression "conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);" (assignment_expression "uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0)" identifier = (call_expression "(*(code *)PTR_hmacmd5_make_context_000ad49c)(0)" (parenthesized_expression "(*(code *)PTR_hmacmd5_make_context_000ad49c)" ( (pointer_expression "*(code *)PTR_hmacmd5_make_context_000ad49c" * (cast_expression "(code *)PTR_hmacmd5_make_context_000ad49c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(uVar17)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar17)" ( identifier )))) ;) (if_statement "if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" if (parenthesized_expression "(uVar2 < 0x41)" ( (binary_expression "uVar2 < 0x41" identifier < number_literal) )) (compound_statement "{\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }" { (expression_statement "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);" (call_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2)" (parenthesized_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)" ( (pointer_expression "*(code *)PTR_hmacmd5_key_000ad4a4" * (cast_expression "(code *)PTR_hmacmd5_key_000ad4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar17,uVar2)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" else (compound_statement "{\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" { (expression_statement "(*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);" (call_expression "(*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154)" (parenthesized_expression "(*(code *)PTR_MD5Simple_000ad4a0)" ( (pointer_expression "*(code *)PTR_MD5Simple_000ad4a0" * (cast_expression "(code *)PTR_MD5Simple_000ad4a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar17,uVar2,auStack_154)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);" (call_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10)" (parenthesized_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)" ( (pointer_expression "*(code *)PTR_hmacmd5_key_000ad4a4" * (cast_expression "(code *)PTR_hmacmd5_key_000ad4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,auStack_154,0x10)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);" (call_expression "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140)" (parenthesized_expression "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)" ( (pointer_expression "*(code *)PTR_hmacmd5_do_hmac_000ad4a8" * (cast_expression "(code *)PTR_hmacmd5_do_hmac_000ad4a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,&local_130,uVar15,auStack_140)" ( identifier , (pointer_expression "&local_130" & identifier) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);" (call_expression "(*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4)" (parenthesized_expression "(*(code *)PTR_hmacmd5_free_context_000ad4ac)" ( (pointer_expression "*(code *)PTR_hmacmd5_free_context_000ad4ac" * (cast_expression "(code *)PTR_hmacmd5_free_context_000ad4ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);" (call_expression "(**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 8)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 8)" ( (binary_expression "**(int **)(param_1 + 8) + 8" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 8),&local_144,0x14)" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (pointer_expression "&local_144" & identifier) , number_literal ))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" else (compound_statement "{\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" { (if_statement "if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" if (parenthesized_expression "(iVar3 == 0x11)" ( (binary_expression "iVar3 == 0x11" identifier == number_literal) )) (compound_statement "{\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }" { (if_statement "if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" if (parenthesized_expression "(local_130 != 0x85)" ( (binary_expression "local_130 != 0x85" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5a48" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) }) (else_clause "else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" else (if_statement "if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" { (if_statement "if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5a80" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" identifier = (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;" (assignment_expression "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0001e6f4;" goto statement_identifier ;) })))) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" identifier = (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;" (assignment_expression "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) + number_literal)) ;) (while_statement "while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }" { (if_statement "if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;" if (parenthesized_expression "((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2))" ( (binary_expression "(iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)" (parenthesized_expression "(iVar3 != 8)" ( (binary_expression "iVar3 != 8" identifier != number_literal) )) || (parenthesized_expression "(*(int *)(param_1 + 0x7c) < (int)uVar2)" ( (binary_expression "*(int *)(param_1 + 0x7c) < (int)uVar2" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_0001e6f4;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);" statement_identifier : (expression_statement "iVar3 = bufchain_size(iVar11);" (assignment_expression "iVar3 = bufchain_size(iVar11)" identifier = (call_expression "bufchain_size(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;)) (if_statement "if (iVar3 < 2) goto LAB_0001e894;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0001e894;" goto statement_identifier ;)) (expression_statement "bufchain_fetch(iVar11,&local_130,2);" (call_expression "bufchain_fetch(iVar11,&local_130,2)" identifier (argument_list "(iVar11,&local_130,2)" ( identifier , (pointer_expression "&local_130" & identifier) , number_literal ))) ;) (expression_statement "bufchain_consume(iVar11,2);" (call_expression "bufchain_consume(iVar11,2)" identifier (argument_list "(iVar11,2)" ( identifier , number_literal ))) ;) (if_statement "if (*(int *)(param_1 + 0x78) != 0) break;" if (parenthesized_expression "(*(int *)(param_1 + 0x78) != 0)" ( (binary_expression "*(int *)(param_1 + 0x78) != 0" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(local_130 != 1)" ( (binary_expression "local_130 != 1" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5af0" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "uVar2 = (uint)local_12f;" (assignment_expression "uVar2 = (uint)local_12f" identifier = (cast_expression "(uint)local_12f" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5ab8" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x78) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x78) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(param_1 + 0x80) != -1) break;" if (parenthesized_expression "(*(int *)(param_1 + 0x80) != -1)" ( (binary_expression "*(int *)(param_1 + 0x80) != -1" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(uint *)(param_1 + 0x80) = (uint)local_130;" (assignment_expression "*(uint *)(param_1 + 0x80) = (uint)local_130" (pointer_expression "*(uint *)(param_1 + 0x80)" * (cast_expression "(uint *)(param_1 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = (cast_expression "(uint)local_130" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x84) = (uint)local_12f;" (assignment_expression "*(uint *)(param_1 + 0x84) = (uint)local_12f" (pointer_expression "*(uint *)(param_1 + 0x84)" * (cast_expression "(uint *)(param_1 + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = (cast_expression "(uint)local_12f" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar3 = bufchain_size(iVar11);" (assignment_expression "iVar3 = bufchain_size(iVar11)" identifier = (call_expression "bufchain_size(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x84))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x84)" identifier < (pointer_expression "*(int *)(param_1 + 0x84)" * (cast_expression "(int *)(param_1 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001e894;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0001e894:\n    uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) })) (labeled_statement "LAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return uVar2;\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 uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "pcVar16 = proxy_socks5_selectchap;" (assignment_expression "pcVar16 = proxy_socks5_selectchap" identifier = identifier) ;) (expression_statement "iVar3 = local_2c;" (assignment_expression "iVar3 = local_2c" identifier = identifier) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000adca4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_3a0 = puVar13 + 0x96800;" (assignment_expression "puStack_3a0 = puVar13 + 0x96800" identifier = (binary_expression "puVar13 + 0x96800" identifier + number_literal)) ;) (expression_statement "uStack_184 = 0x1010410;" (assignment_expression "uStack_184 = 0x1010410" identifier = number_literal) ;) (expression_statement "piVar12 = *(int **)(puVar13 + 0x8f244);" (assignment_expression "piVar12 = *(int **)(puVar13 + 0x8f244)" identifier = (pointer_expression "*(int **)(puVar13 + 0x8f244)" * (cast_expression "(int **)(puVar13 + 0x8f244)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8f244)" ( (binary_expression "puVar13 + 0x8f244" identifier + number_literal) ))))) ;) (expression_statement "puStack_180 = puVar1;" (assignment_expression "puStack_180 = puVar1" identifier = identifier) ;) (expression_statement "piStack_194 = (int *)*piVar12;" (assignment_expression "piStack_194 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "iStack_18c = param_1;" (assignment_expression "iStack_18c = param_1" identifier = identifier) ;) (expression_statement "iStack_188 = iVar11;" (assignment_expression "iStack_188 = iVar11" identifier = identifier) ;) (expression_statement "pcStack_17c = pcVar16;" (assignment_expression "pcStack_17c = pcVar16" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);" (assignment_expression "pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" * (cast_expression "(undefined4 *)(iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x74)" ( (binary_expression "iVar3 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);" (assignment_expression "pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" * (cast_expression "(undefined4 *)(iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x74)" ( (binary_expression "iVar3 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" if (parenthesized_expression "((*pcVar5 == '\0') && (*pcVar6 == '\0'))" ( (binary_expression "(*pcVar5 == '\0') && (*pcVar6 == '\0')" (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }" { (expression_statement "puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);" (assignment_expression "puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" identifier = (cast_expression "(undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" ( (binary_expression "*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8" (pointer_expression "*(int *)(puStack_3a0 + -0x7fc8)" * (cast_expression "(int *)(puStack_3a0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_3a0 + -0x7fc8)" ( (binary_expression "puStack_3a0 + -0x7fc8" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);" (call_expression "(**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(iVar3 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar3 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar3 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar3 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar3 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar3 + 0xc) + 4" (pointer_expression "**(int **)(iVar3 + 0xc)" * (pointer_expression "*(int **)(iVar3 + 0xc)" * (cast_expression "(int **)(iVar3 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar3 + 0xc),puVar9,8000,0)" ( (pointer_expression "*(int **)(iVar3 + 0xc)" * (cast_expression "(int **)(iVar3 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) , identifier , number_literal , number_literal ))) ;) }) (else_clause "else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" else (compound_statement "{\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" { (expression_statement "uStack_394 = 0x8502;" (assignment_expression "uStack_394 = 0x8502" identifier = number_literal) ;) (expression_statement "uStack_398 = 0x1021101;" (assignment_expression "uStack_398 = 0x1021101" identifier = number_literal) ;) (expression_statement "uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);" (assignment_expression "uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5)" identifier = (call_expression "(**(code **)(puStack_3a0 + -0x7668))(pcVar5)" (parenthesized_expression "(**(code **)(puStack_3a0 + -0x7668))" ( (pointer_expression "**(code **)(puStack_3a0 + -0x7668)" * (pointer_expression "*(code **)(puStack_3a0 + -0x7668)" * (cast_expression "(code **)(puStack_3a0 + -0x7668)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_3a0 + -0x7668)" ( (binary_expression "puStack_3a0 + -0x7668" identifier + number_literal) ))))) )) (argument_list "(pcVar5)" ( identifier )))) ;) (if_statement "if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" if (parenthesized_expression "(uVar2 < 0x100)" ( (binary_expression "uVar2 < 0x100" identifier < number_literal) )) (compound_statement "{\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }" { (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" identifier = number_literal) ;) (if_statement "if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 1;\n        uStack_392 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "uStack_392 = 1;" (assignment_expression "uStack_392 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" else (compound_statement "{\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" { (expression_statement "iVar11 = uVar2 + 7;" (assignment_expression "iVar11 = uVar2 + 7" identifier = (binary_expression "uVar2 + 7" identifier + number_literal)) ;) (expression_statement "uStack_392 = (undefined1)uVar2;" (assignment_expression "uStack_392 = (undefined1)uVar2" identifier = (cast_expression "(undefined1)uVar2" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }))) }) (else_clause "else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" else (compound_statement "{\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" { (expression_statement "iVar11 = 0x106;" (assignment_expression "iVar11 = 0x106" identifier = number_literal) ;) (expression_statement "uVar2 = 0xff;" (assignment_expression "uVar2 = 0xff" identifier = number_literal) ;) (expression_statement "uStack_392 = 0xff;" (assignment_expression "uStack_392 = 0xff" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);" (call_expression "(**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb)" (parenthesized_expression "(**(code **)(puStack_3a0 + -0x7640))" ( (pointer_expression "**(code **)(puStack_3a0 + -0x7640)" * (pointer_expression "*(code **)(puStack_3a0 + -0x7640)" * (cast_expression "(code **)(puStack_3a0 + -0x7640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_3a0 + -0x7640)" ( (binary_expression "puStack_3a0 + -0x7640" identifier + number_literal) ))))) )) (argument_list "(auStack_391,pcVar5,uVar2,0x1fb)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "puVar9 = &uStack_398;" (assignment_expression "puVar9 = &uStack_398" identifier = (pointer_expression "&uStack_398" & identifier)) ;) (expression_statement "(**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);" (call_expression "(**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11)" (parenthesized_expression "(**(code **)(**(int **)(iVar3 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar3 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar3 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar3 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar3 + 8) + 8)" ( (binary_expression "**(int **)(iVar3 + 8) + 8" (pointer_expression "**(int **)(iVar3 + 8)" * (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar3 + 8),puVar9,iVar11)" ( (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x80)" * (cast_expression "(undefined4 *)(iVar3 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x80)" ( (binary_expression "iVar3 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x78)" * (cast_expression "(undefined4 *)(iVar3 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x78)" ( (binary_expression "iVar3 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x7c)" * (cast_expression "(undefined4 *)(iVar3 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x7c)" ( (binary_expression "iVar3 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x84) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x84)" * (cast_expression "(undefined4 *)(iVar3 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x44) = 8;" (assignment_expression "*(undefined4 *)(iVar3 + 0x44) = 8" (pointer_expression "*(undefined4 *)(iVar3 + 0x44)" * (cast_expression "(undefined4 *)(iVar3 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }" if (parenthesized_expression "(piStack_194 == (int *)*piVar12)" ( (binary_expression "piStack_194 == (int *)*piVar12" identifier == (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar16 = *(code **)(puStack_3a0 + -0x75ec);" (assignment_expression "pcVar16 = *(code **)(puStack_3a0 + -0x75ec)" identifier = (pointer_expression "*(code **)(puStack_3a0 + -0x75ec)" * (cast_expression "(code **)(puStack_3a0 + -0x75ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_3a0 + -0x75ec)" ( (binary_expression "puStack_3a0 + -0x75ec" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = 0x1ec1c;" (assignment_expression "uVar17 = 0x1ec1c" identifier = number_literal) ;) (expression_statement "piVar8 = piStack_194;" (assignment_expression "piVar8 = piStack_194" identifier = identifier) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = (uint)puVar9 & 0xff;" (assignment_expression "uVar2 = (uint)puVar9 & 0xff" identifier = (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar10 = *(uint **)(pcVar16 + 0x8f0b4);" (assignment_expression "puVar10 = *(uint **)(pcVar16 + 0x8f0b4)" identifier = (pointer_expression "*(uint **)(pcVar16 + 0x8f0b4)" * (cast_expression "(uint **)(pcVar16 + 0x8f0b4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8f0b4)" ( (binary_expression "pcVar16 + 0x8f0b4" identifier + number_literal) ))))) ;) (expression_statement "acStack_3ac[0] = (char)puVar9;" (assignment_expression "acStack_3ac[0] = (char)puVar9" (subscript_expression "acStack_3ac[0]" identifier [ number_literal ]) = (cast_expression "(char)puVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uStack_3c4 = *puVar10;" (assignment_expression "uStack_3c4 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) ;) (expression_statement "iStack_3c0 = iVar3;" (assignment_expression "iStack_3c0 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_3bc = pcVar5;" (assignment_expression "pcStack_3bc = pcVar5" identifier = identifier) ;) (expression_statement "piStack_3b8 = piVar12;" (assignment_expression "piStack_3b8 = piVar12" identifier = identifier) ;) (expression_statement "uStack_3b4 = uVar17;" (assignment_expression "uStack_3b4 = uVar17" identifier = identifier) ;) (if_statement "if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" if (parenthesized_expression "(uVar2 - 0x20 < 0x5f)" ( (binary_expression "uVar2 - 0x20 < 0x5f" (binary_expression "uVar2 - 0x20" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }" { (labeled_statement "LAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];" statement_identifier : (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" identifier = (cast_expression "(int *)piVar8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[3]" identifier [ number_literal ]))) ;)) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "(*pcVar14)(piVar12,0,acStack_3ac,1);" (call_expression "(*pcVar14)(piVar12,0,acStack_3ac,1)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(piVar12,0,acStack_3ac,1)" ( identifier , number_literal , identifier , number_literal ))) ;) }) (else_clause "else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" else (if_statement "if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" if (parenthesized_expression "((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))" ( (binary_expression "(*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37)" (parenthesized_expression "(*(int *)(*piVar8 + 0xdc) == 0)" ( (binary_expression "*(int *)(*piVar8 + 0xdc) == 0" (pointer_expression "*(int *)(*piVar8 + 0xdc)" * (cast_expression "(int *)(*piVar8 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 0xdc)" ( (binary_expression "*piVar8 + 0xdc" (pointer_expression "*piVar8" * identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37)" ( (binary_expression "*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37" (pointer_expression "*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar8 + 0x1090) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar8 + 0x1090) + 0xc)" ( (binary_expression "*(int *)(*piVar8 + 0x1090) + 0xc" (pointer_expression "*(int *)(*piVar8 + 0x1090)" * (cast_expression "(int *)(*piVar8 + 0x1090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 0x1090)" ( (binary_expression "*piVar8 + 0x1090" (pointer_expression "*piVar8" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }" { (if_statement "if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }" if (parenthesized_expression "(0x9f < uVar2)" ( (binary_expression "0x9f < uVar2" number_literal < identifier) )) (compound_statement "{\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }" { (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001ec9c;" goto statement_identifier ;) })) (if_statement "if (-1 < acStack_3ac[0]) goto LAB_0001ece4;" if (parenthesized_expression "(-1 < acStack_3ac[0])" ( (binary_expression "-1 < acStack_3ac[0]" number_literal < (subscript_expression "acStack_3ac[0]" identifier [ number_literal ])) )) (goto_statement "goto LAB_0001ece4;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);" (call_expression "(**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8eed0))" ( (pointer_expression "**(code **)(pcVar16 + 0x8eed0)" * (pointer_expression "*(code **)(pcVar16 + 0x8eed0)" * (cast_expression "(code **)(pcVar16 + 0x8eed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8eed0)" ( (binary_expression "pcVar16 + 0x8eed0" identifier + number_literal) ))))) )) (argument_list "(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2)" ( (pointer_expression "&uStack_3cc" & identifier) , number_literal , number_literal , (binary_expression "*(int *)(pcVar16 + 0x8e6a8) + -0x59b0" (pointer_expression "*(int *)(pcVar16 + 0x8e6a8)" * (cast_expression "(int *)(pcVar16 + 0x8e6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x8e6a8)" ( (binary_expression "pcVar16 + 0x8e6a8" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" identifier = (cast_expression "(int *)piVar8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);" (call_expression "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8e7f0))" ( (pointer_expression "**(code **)(pcVar16 + 0x8e7f0)" * (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) )) (argument_list "(piVar12,0,&uStack_3cc,4)" ( identifier , number_literal , (pointer_expression "&uStack_3cc" & identifier) , number_literal ))) ;) }) (else_clause "else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" else (compound_statement "{\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" { (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) ;) (if_statement "if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;" if (parenthesized_expression "(acStack_3ac[0] < '\0')" ( (binary_expression "acStack_3ac[0] < '\0'" (subscript_expression "acStack_3ac[0]" identifier [ number_literal ]) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001ec9c;" goto statement_identifier ;)) (labeled_statement "LAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" statement_identifier : (if_statement "if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" if (parenthesized_expression "(uVar2 == 0x7f)" ( (binary_expression "uVar2 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      cStack_3cb = '?';\n    }" { (expression_statement "cStack_3cb = '?';" (assignment_expression "cStack_3cb = '?'" identifier = (char_literal "'?'" ' character ')) ;) }) (else_clause "else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" else (compound_statement "{\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" { (expression_statement "cStack_3cb = acStack_3ac[0] + '@';" (assignment_expression "cStack_3cb = acStack_3ac[0] + '@'" identifier = (binary_expression "acStack_3ac[0] + '@'" (subscript_expression "acStack_3ac[0]" identifier [ number_literal ]) + (char_literal "'@'" ' character '))) ;) })))) (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" identifier = (cast_expression "(int *)piVar8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "uStack_3cc = 0x5e;" (assignment_expression "uStack_3cc = 0x5e" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);" (call_expression "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8e7f0))" ( (pointer_expression "**(code **)(pcVar16 + 0x8e7f0)" * (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) )) (argument_list "(piVar12,0,&uStack_3cc,2)" ( identifier , number_literal , (pointer_expression "&uStack_3cc" & identifier) , number_literal ))) ;) }))))) (expression_statement "uVar7 = *puVar10;" (assignment_expression "uVar7 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (if_statement "if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }" if (parenthesized_expression "(uStack_3c4 == uVar7)" ( (binary_expression "uStack_3c4 == uVar7" identifier == identifier) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) })) (expression_statement "(**(code **)(pcVar16 + 0x8f084))();" (call_expression "(**(code **)(pcVar16 + 0x8f084))()" (parenthesized_expression "(**(code **)(pcVar16 + 0x8f084))" ( (pointer_expression "**(code **)(pcVar16 + 0x8f084)" * (pointer_expression "*(code **)(pcVar16 + 0x8f084)" * (cast_expression "(code **)(pcVar16 + 0x8f084)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8f084)" ( (binary_expression "pcVar16 + 0x8f084" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(uVar2 - 0x20 < 0x5f)" ( (binary_expression "uVar2 - 0x20 < 0x5f" (binary_expression "uVar2 - 0x20" identifier - number_literal) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" if (parenthesized_expression "(uVar2 < 0xa0)" ( (binary_expression "uVar2 < 0xa0" identifier < number_literal) )) (compound_statement "{\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }" { (if_statement "if (-1 < (char)uVar2) {\n      return 2;\n    }" if (parenthesized_expression "(-1 < (char)uVar2)" ( (binary_expression "-1 < (char)uVar2" number_literal < (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;" if (parenthesized_expression "(*(int *)(iVar11 + 0xdc) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xdc) == 0" (pointer_expression "*(int *)(iVar11 + 0xdc)" * (cast_expression "(int *)(iVar11 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xdc)" ( (binary_expression "iVar11 + 0xdc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001ede0;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" else (compound_statement "{\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }" if (parenthesized_expression "(*(int *)(iVar11 + 0xdc) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xdc) == 0" (pointer_expression "*(int *)(iVar11 + 0xdc)" * (cast_expression "(int *)(iVar11 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xdc)" ( (binary_expression "iVar11 + 0xdc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }" { (if_statement "if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }" if (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x1090) + 0xc)" ( (binary_expression "*(int *)(iVar11 + 0x1090) + 0xc" (pointer_expression "*(int *)(iVar11 + 0x1090)" * (cast_expression "(int *)(iVar11 + 0x1090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1090)" ( (binary_expression "iVar11 + 0x1090" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }" statement_identifier : (if_statement "if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }" if (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x1090) + 0xc)" ( (binary_expression "*(int *)(iVar11 + 0x1090) + 0xc" (pointer_expression "*(int *)(iVar11 + 0x1090)" * (cast_expression "(int *)(iVar11 + 0x1090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1090)" ( (binary_expression "iVar11 + 0x1090" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        return (uint)(0xbf < uVar2);\n      }" { (return_statement "return (uint)(0xbf < uVar2);" return (call_expression "(uint)(0xbf < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xbf < uVar2)" ( (binary_expression "0xbf < uVar2" number_literal < identifier) ))) ;) }))) (return_statement "return 4;" return number_literal ;) })) }))) (return_statement "return uVar2 < 0xc0 ^ 1;" return (binary_expression "uVar2 < 0xc0 ^ 1" (binary_expression "uVar2 < 0xc0" identifier < number_literal) ^ number_literal) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint proxy_socks5_handlechap(Proxy_Socket p)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int len;\n  bufchain *ch;\n  uchar md5buf [16];\n  uchar outbuf [20];\n  uchar data [260];\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = p->chap_num_attributes;\n  ch = &p->pending_input_data;\n  iVar4 = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(p->chap_num_attributes_processed < (int)uVar2);\n  if (uVar2 != 0) {\n    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;\n    while( true ) {\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (iVar4 == *(int *)puVar1) {\n    return uVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n                    /* WARNING: Subroutine does not return */\n  conf_get_str(*(Conf **)(iVar4 + 0x74),0x10);\n}\n\n" comment (function_definition "int proxy_socks5_handlechap(Proxy_Socket p)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int len;\n  bufchain *ch;\n  uchar md5buf [16];\n  uchar outbuf [20];\n  uchar data [260];\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = p->chap_num_attributes;\n  ch = &p->pending_input_data;\n  iVar4 = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(p->chap_num_attributes_processed < (int)uVar2);\n  if (uVar2 != 0) {\n    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;\n    while( true ) {\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (iVar4 == *(int *)puVar1) {\n    return uVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n                    /* WARNING: Subroutine does not return */\n  conf_get_str(*(Conf **)(iVar4 + 0x74),0x10);\n}" primitive_type (function_declarator "proxy_socks5_handlechap(Proxy_Socket p)" identifier (parameter_list "(Proxy_Socket p)" ( (parameter_declaration "Proxy_Socket p" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int len;\n  bufchain *ch;\n  uchar md5buf [16];\n  uchar outbuf [20];\n  uchar data [260];\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = p->chap_num_attributes;\n  ch = &p->pending_input_data;\n  iVar4 = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(p->chap_num_attributes_processed < (int)uVar2);\n  if (uVar2 != 0) {\n    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;\n    while( true ) {\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (iVar4 == *(int *)puVar1) {\n    return uVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n                    /* WARNING: Subroutine does not return */\n  conf_get_str(*(Conf **)(iVar4 + 0x74),0x10);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int len;" primitive_type identifier ;) (declaration "bufchain *ch;" type_identifier (pointer_declarator "*ch" * identifier) ;) (declaration "uchar md5buf [16];" type_identifier (array_declarator "md5buf [16]" identifier [ number_literal ]) ;) (declaration "uchar outbuf [20];" type_identifier (array_declarator "outbuf [20]" identifier [ number_literal ]) ;) (declaration "uchar data [260];" type_identifier (array_declarator "data [260]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "uVar2 = p->chap_num_attributes;" (assignment_expression "uVar2 = p->chap_num_attributes" identifier = (field_expression "p->chap_num_attributes" identifier -> field_identifier)) ;) (expression_statement "ch = &p->pending_input_data;" (assignment_expression "ch = &p->pending_input_data" identifier = (pointer_expression "&p->pending_input_data" & (field_expression "p->pending_input_data" identifier -> field_identifier))) ;) (expression_statement "iVar4 = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "iVar4 = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;" statement_identifier : (if_statement "if (uVar2 == 0) goto LAB_0001e7c4;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001e7c4;" goto statement_identifier ;))) (expression_statement "uVar2 = (uint)(p->chap_num_attributes_processed < (int)uVar2);" (assignment_expression "uVar2 = (uint)(p->chap_num_attributes_processed < (int)uVar2)" identifier = (call_expression "(uint)(p->chap_num_attributes_processed < (int)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(p->chap_num_attributes_processed < (int)uVar2)" ( (binary_expression "p->chap_num_attributes_processed < (int)uVar2" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar2 != 0) {\n    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;\n    while( true ) {\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;\n    while( true ) {\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" { (if_statement "if (p->chap_current_attribute == -1) goto LAB_0001e7c4;" if (parenthesized_expression "(p->chap_current_attribute == -1)" ( (binary_expression "p->chap_current_attribute == -1" (field_expression "p->chap_current_attribute" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0001e7c4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar3 = bufchain_size(ch);\n      len = p->chap_current_datalen;\n      if (iVar3 < len) break;\n      while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }\n    }" { (expression_statement "iVar3 = bufchain_size(ch);" (assignment_expression "iVar3 = bufchain_size(ch)" identifier = (call_expression "bufchain_size(ch)" identifier (argument_list "(ch)" ( identifier )))) ;) (expression_statement "len = p->chap_current_datalen;" (assignment_expression "len = p->chap_current_datalen" identifier = (field_expression "p->chap_current_datalen" identifier -> field_identifier)) ;) (if_statement "if (iVar3 < len) break;" if (parenthesized_expression "(iVar3 < len)" ( (binary_expression "iVar3 < len" identifier < identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bufchain_fetch(ch,data,len);\n        bufchain_consume(ch,p->chap_current_datalen);\n        iVar3 = p->chap_current_attribute;\n        if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }\n        if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }\n        iVar3 = p->state;\n        uVar2 = p->chap_num_attributes;\n        p->chap_current_attribute = -1;\n        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }\n        if (p->chap_current_attribute != -1) break;\n        p->chap_current_attribute = (uint)data[0];\n        p->chap_current_datalen = (uint)data[1];\n        iVar3 = bufchain_size(ch);\n        len = p->chap_current_datalen;\n        if (iVar3 < len) goto LAB_0001e894;\n      }" { (expression_statement "bufchain_fetch(ch,data,len);" (call_expression "bufchain_fetch(ch,data,len)" identifier (argument_list "(ch,data,len)" ( identifier , identifier , identifier ))) ;) (expression_statement "bufchain_consume(ch,p->chap_current_datalen);" (call_expression "bufchain_consume(ch,p->chap_current_datalen)" identifier (argument_list "(ch,p->chap_current_datalen)" ( identifier , (field_expression "p->chap_current_datalen" identifier -> field_identifier) ))) ;) (expression_statement "iVar3 = p->chap_current_attribute;" (assignment_expression "iVar3 = p->chap_current_attribute" identifier = (field_expression "p->chap_current_attribute" identifier -> field_identifier)) ;) (if_statement "if (iVar3 == 3) {\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          conf_get_str(p->conf,0x11);\n        }" { comment (expression_statement "conf_get_str(p->conf,0x11);" (call_expression "conf_get_str(p->conf,0x11)" identifier (argument_list "(p->conf,0x11)" ( (field_expression "p->conf" identifier -> field_identifier) , number_literal ))) ;) })) (if_statement "if (iVar3 == 0x11) {\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }\n        else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }" if (parenthesized_expression "(iVar3 == 0x11)" ( (binary_expression "iVar3 == 0x11" identifier == number_literal) )) (compound_statement "{\n          if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n        }" { (if_statement "if (data[0] != 0x85) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(data[0] != 0x85)" ( (binary_expression "data[0] != 0x85" (subscript_expression "data[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,PTR_DAT_000ad2c8 + -0x5a48,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (binary_expression "PTR_DAT_000ad2c8 + -0x5a48" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) }) (else_clause "else if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }" else (if_statement "if (iVar3 == 0) {\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }\n          (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n          uVar2 = 1;\n          goto LAB_0001e898;\n        }" { (if_statement "if (data[0] == '\0') {\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }" if (parenthesized_expression "(data[0] == '\0')" ( (binary_expression "data[0] == '\0'" (subscript_expression "data[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar2 = p->chap_num_attributes;\n            p->state = 2;\n            p->chap_current_attribute = -1;\n            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;\n            goto LAB_0001e6f4;\n          }" { (expression_statement "uVar2 = p->chap_num_attributes;" (assignment_expression "uVar2 = p->chap_num_attributes" identifier = (field_expression "p->chap_num_attributes" identifier -> field_identifier)) ;) (expression_statement "p->state = 2;" (assignment_expression "p->state = 2" (field_expression "p->state" identifier -> field_identifier) = number_literal) ;) (expression_statement "p->chap_current_attribute = -1;" (assignment_expression "p->chap_current_attribute = -1" (field_expression "p->chap_current_attribute" identifier -> field_identifier) = number_literal) ;) (expression_statement "p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;" (assignment_expression "p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) = (binary_expression "p->chap_num_attributes_processed + 1" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) + number_literal)) ;) (goto_statement "goto LAB_0001e6f4;" goto statement_identifier ;) })) (expression_statement "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,PTR_DAT_000ad2c8 + -0x5a80,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (binary_expression "PTR_DAT_000ad2c8 + -0x5a80" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })))) (expression_statement "iVar3 = p->state;" (assignment_expression "iVar3 = p->state" identifier = (field_expression "p->state" identifier -> field_identifier)) ;) (expression_statement "uVar2 = p->chap_num_attributes;" (assignment_expression "uVar2 = p->chap_num_attributes" identifier = (field_expression "p->chap_num_attributes" identifier -> field_identifier)) ;) (expression_statement "p->chap_current_attribute = -1;" (assignment_expression "p->chap_current_attribute = -1" (field_expression "p->chap_current_attribute" identifier -> field_identifier) = number_literal) ;) (expression_statement "p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;" (assignment_expression "p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) = (binary_expression "p->chap_num_attributes_processed + 1" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) + number_literal)) ;) (while_statement "while( true ) {\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;\n          p->chap_num_attributes = 0;\n          p->chap_num_attributes_processed = 0;\n          p->chap_current_datalen = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(ch);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(ch,data,2);\n          bufchain_consume(ch,2);\n          if (p->chap_num_attributes != 0) break;\n          if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)data[1];\n          if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = p->state;\n          p->chap_num_attributes = uVar2;\n        }" { (if_statement "if ((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)) goto LAB_0001e6f4;" if (parenthesized_expression "((iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2))" ( (binary_expression "(iVar3 != 8) || (p->chap_num_attributes_processed < (int)uVar2)" (parenthesized_expression "(iVar3 != 8)" ( (binary_expression "iVar3 != 8" identifier != number_literal) )) || (parenthesized_expression "(p->chap_num_attributes_processed < (int)uVar2)" ( (binary_expression "p->chap_num_attributes_processed < (int)uVar2" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_0001e6f4;" goto statement_identifier ;)) (expression_statement "p->chap_num_attributes = 0;" (assignment_expression "p->chap_num_attributes = 0" (field_expression "p->chap_num_attributes" identifier -> field_identifier) = number_literal) ;) (expression_statement "p->chap_num_attributes_processed = 0;" (assignment_expression "p->chap_num_attributes_processed = 0" (field_expression "p->chap_num_attributes_processed" identifier -> field_identifier) = number_literal) ;) (expression_statement "p->chap_current_datalen = 0;" (assignment_expression "p->chap_current_datalen = 0" (field_expression "p->chap_current_datalen" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0001e7c4:\n          iVar3 = bufchain_size(ch);" statement_identifier : (expression_statement "iVar3 = bufchain_size(ch);" (assignment_expression "iVar3 = bufchain_size(ch)" identifier = (call_expression "bufchain_size(ch)" identifier (argument_list "(ch)" ( identifier )))) ;)) (if_statement "if (iVar3 < 2) goto LAB_0001e894;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0001e894;" goto statement_identifier ;)) (expression_statement "bufchain_fetch(ch,data,2);" (call_expression "bufchain_fetch(ch,data,2)" identifier (argument_list "(ch,data,2)" ( identifier , identifier , number_literal ))) ;) (expression_statement "bufchain_consume(ch,2);" (call_expression "bufchain_consume(ch,2)" identifier (argument_list "(ch,2)" ( identifier , number_literal ))) ;) (if_statement "if (p->chap_num_attributes != 0) break;" if (parenthesized_expression "(p->chap_num_attributes != 0)" ( (binary_expression "p->chap_num_attributes != 0" (field_expression "p->chap_num_attributes" identifier -> field_identifier) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (data[0] != '\x01') {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(data[0] != '\x01')" ( (binary_expression "data[0] != '\x01'" (subscript_expression "data[0]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,PTR_DAT_000ad2c8 + -0x5af0,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (binary_expression "PTR_DAT_000ad2c8 + -0x5af0" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "uVar2 = (uint)data[1];" (assignment_expression "uVar2 = (uint)data[1]" identifier = (cast_expression "(uint)data[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "data[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar2 == 0) {\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            (*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,PTR_DAT_000ad2c8 + -0x5ab8,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (binary_expression "PTR_DAT_000ad2c8 + -0x5ab8" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "iVar3 = p->state;" (assignment_expression "iVar3 = p->state" identifier = (field_expression "p->state" identifier -> field_identifier)) ;) (expression_statement "p->chap_num_attributes = uVar2;" (assignment_expression "p->chap_num_attributes = uVar2" (field_expression "p->chap_num_attributes" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (p->chap_current_attribute != -1) break;" if (parenthesized_expression "(p->chap_current_attribute != -1)" ( (binary_expression "p->chap_current_attribute != -1" (field_expression "p->chap_current_attribute" identifier -> field_identifier) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "p->chap_current_attribute = (uint)data[0];" (assignment_expression "p->chap_current_attribute = (uint)data[0]" (field_expression "p->chap_current_attribute" identifier -> field_identifier) = (cast_expression "(uint)data[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "data[0]" identifier [ number_literal ]))) ;) (expression_statement "p->chap_current_datalen = (uint)data[1];" (assignment_expression "p->chap_current_datalen = (uint)data[1]" (field_expression "p->chap_current_datalen" identifier -> field_identifier) = (cast_expression "(uint)data[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "data[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = bufchain_size(ch);" (assignment_expression "iVar3 = bufchain_size(ch)" identifier = (call_expression "bufchain_size(ch)" identifier (argument_list "(ch)" ( identifier )))) ;) (expression_statement "len = p->chap_current_datalen;" (assignment_expression "len = p->chap_current_datalen" identifier = (field_expression "p->chap_current_datalen" identifier -> field_identifier)) ;) (if_statement "if (iVar3 < len) goto LAB_0001e894;" if (parenthesized_expression "(iVar3 < len)" ( (binary_expression "iVar3 < len" identifier < identifier) )) (goto_statement "goto LAB_0001e894;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0001e894:\n    uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) })) (labeled_statement "LAB_0001e898:\n  if (iVar4 == *(int *)puVar1) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (iVar4 == *(int *)puVar1) {\n    return uVar2;\n  }" if (parenthesized_expression "(iVar4 == *(int *)puVar1)" ( (binary_expression "iVar4 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) comment (expression_statement "conf_get_str(*(Conf **)(iVar4 + 0x74),0x10);" (call_expression "conf_get_str(*(Conf **)(iVar4 + 0x74),0x10)" identifier (argument_list "(*(Conf **)(iVar4 + 0x74),0x10)" ( (pointer_expression "*(Conf **)(iVar4 + 0x74)" * (cast_expression "(Conf **)(iVar4 + 0x74)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x74)" ( (binary_expression "iVar4 + 0x74" identifier + number_literal) )))) , number_literal ))) ;) })))
(translation_unit "uint proxy_socks5_handlechap(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}\n\n" (function_definition "uint proxy_socks5_handlechap(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}" type_identifier (function_declarator "proxy_socks5_handlechap(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "undefined1 uStack_3cc;" type_identifier identifier ;) (declaration "char cStack_3cb;" primitive_type identifier ;) (declaration "uint uStack_3c4;" type_identifier identifier ;) (declaration "int iStack_3c0;" primitive_type identifier ;) (declaration "char *pcStack_3bc;" primitive_type (pointer_declarator "*pcStack_3bc" * identifier) ;) (declaration "int *piStack_3b8;" primitive_type (pointer_declarator "*piStack_3b8" * identifier) ;) (declaration "undefined4 uStack_3b4;" type_identifier identifier ;) (declaration "char acStack_3ac [12];" primitive_type (array_declarator "acStack_3ac [12]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_3a0;" type_identifier (pointer_declarator "*puStack_3a0" * identifier) ;) (declaration "undefined4 uStack_398;" type_identifier identifier ;) (declaration "undefined2 uStack_394;" type_identifier identifier ;) (declaration "undefined1 uStack_392;" type_identifier identifier ;) (declaration "undefined1 auStack_391 [509];" type_identifier (array_declarator "auStack_391 [509]" identifier [ number_literal ]) ;) (declaration "int *piStack_194;" primitive_type (pointer_declarator "*piStack_194" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "undefined4 uStack_184;" type_identifier identifier ;) (declaration "undefined *puStack_180;" type_identifier (pointer_declarator "*puStack_180" * identifier) ;) (declaration "code *pcStack_17c;" type_identifier (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "undefined1 auStack_154 [16];" type_identifier (array_declarator "auStack_154 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_144;" type_identifier identifier ;) (declaration "undefined1 auStack_140 [16];" type_identifier (array_declarator "auStack_140 [16]" identifier [ number_literal ]) ;) (declaration "byte local_130;" type_identifier identifier ;) (declaration "byte local_12f;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" identifier = (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = param_1 + 0x34;" (assignment_expression "iVar11 = param_1 + 0x34" identifier = (binary_expression "param_1 + 0x34" identifier + number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;" statement_identifier : (if_statement "if (uVar2 == 0) goto LAB_0001e7c4;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001e7c4;" goto statement_identifier ;))) (expression_statement "uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);" (assignment_expression "uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2)" identifier = (call_expression "(uint)(*(int *)(param_1 + 0x7c) < (int)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x7c) < (int)uVar2)" ( (binary_expression "*(int *)(param_1 + 0x7c) < (int)uVar2" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" { (if_statement "if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;" if (parenthesized_expression "(*(int *)(param_1 + 0x80) == -1)" ( (binary_expression "*(int *)(param_1 + 0x80) == -1" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001e7c4;" goto statement_identifier ;)) (while_statement "while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }" while (parenthesized_expression "(iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3)" ( (comma_expression "iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3" (assignment_expression "iVar3 = bufchain_size(iVar11)" identifier = (call_expression "bufchain_size(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) , (binary_expression "*(int *)(param_1 + 0x84) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x84)" * (cast_expression "(int *)(param_1 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) <= identifier)) )) (compound_statement "{\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }" { (while_statement "while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }" { (expression_statement "bufchain_fetch(iVar11,&local_130);" (call_expression "bufchain_fetch(iVar11,&local_130)" identifier (argument_list "(iVar11,&local_130)" ( identifier , (pointer_expression "&local_130" & identifier) ))) ;) (expression_statement "bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));" (call_expression "bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84))" identifier (argument_list "(iVar11,*(undefined4 *)(param_1 + 0x84))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x80);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x80)" identifier = (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 0x84);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 0x84)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "local_144 = 0x1010410;" (assignment_expression "local_144 = 0x1010410" identifier = number_literal) ;) (expression_statement "uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);" (assignment_expression "uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11)" identifier = (call_expression "conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);" (assignment_expression "uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0)" identifier = (call_expression "(*(code *)PTR_hmacmd5_make_context_000ad49c)(0)" (parenthesized_expression "(*(code *)PTR_hmacmd5_make_context_000ad49c)" ( (pointer_expression "*(code *)PTR_hmacmd5_make_context_000ad49c" * (cast_expression "(code *)PTR_hmacmd5_make_context_000ad49c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(uVar17)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar17)" ( identifier )))) ;) (if_statement "if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" if (parenthesized_expression "(uVar2 < 0x41)" ( (binary_expression "uVar2 < 0x41" identifier < number_literal) )) (compound_statement "{\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }" { (expression_statement "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);" (call_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2)" (parenthesized_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)" ( (pointer_expression "*(code *)PTR_hmacmd5_key_000ad4a4" * (cast_expression "(code *)PTR_hmacmd5_key_000ad4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar17,uVar2)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" else (compound_statement "{\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" { (expression_statement "(*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);" (call_expression "(*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154)" (parenthesized_expression "(*(code *)PTR_MD5Simple_000ad4a0)" ( (pointer_expression "*(code *)PTR_MD5Simple_000ad4a0" * (cast_expression "(code *)PTR_MD5Simple_000ad4a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar17,uVar2,auStack_154)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);" (call_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10)" (parenthesized_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)" ( (pointer_expression "*(code *)PTR_hmacmd5_key_000ad4a4" * (cast_expression "(code *)PTR_hmacmd5_key_000ad4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,auStack_154,0x10)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);" (call_expression "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140)" (parenthesized_expression "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)" ( (pointer_expression "*(code *)PTR_hmacmd5_do_hmac_000ad4a8" * (cast_expression "(code *)PTR_hmacmd5_do_hmac_000ad4a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,&local_130,uVar15,auStack_140)" ( identifier , (pointer_expression "&local_130" & identifier) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);" (call_expression "(*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4)" (parenthesized_expression "(*(code *)PTR_hmacmd5_free_context_000ad4ac)" ( (pointer_expression "*(code *)PTR_hmacmd5_free_context_000ad4ac" * (cast_expression "(code *)PTR_hmacmd5_free_context_000ad4ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);" (call_expression "(**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 8)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 8)" ( (binary_expression "**(int **)(param_1 + 8) + 8" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 8),&local_144,0x14)" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (pointer_expression "&local_144" & identifier) , number_literal ))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" else (compound_statement "{\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" { (if_statement "if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" if (parenthesized_expression "(iVar3 == 0x11)" ( (binary_expression "iVar3 == 0x11" identifier == number_literal) )) (compound_statement "{\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }" { (if_statement "if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" if (parenthesized_expression "(local_130 != 0x85)" ( (binary_expression "local_130 != 0x85" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5a48" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) }) (else_clause "else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" else (if_statement "if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" { (if_statement "if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5a80" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" identifier = (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;" (assignment_expression "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0001e6f4;" goto statement_identifier ;) })))) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" identifier = (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;" (assignment_expression "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) + number_literal)) ;) (while_statement "while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }" { (if_statement "if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;" if (parenthesized_expression "((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2))" ( (binary_expression "(iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)" (parenthesized_expression "(iVar3 != 8)" ( (binary_expression "iVar3 != 8" identifier != number_literal) )) || (parenthesized_expression "(*(int *)(param_1 + 0x7c) < (int)uVar2)" ( (binary_expression "*(int *)(param_1 + 0x7c) < (int)uVar2" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_0001e6f4;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);" statement_identifier : (expression_statement "iVar3 = bufchain_size(iVar11);" (assignment_expression "iVar3 = bufchain_size(iVar11)" identifier = (call_expression "bufchain_size(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;)) (if_statement "if (iVar3 < 2) goto LAB_0001e894;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0001e894;" goto statement_identifier ;)) (expression_statement "bufchain_fetch(iVar11,&local_130,2);" (call_expression "bufchain_fetch(iVar11,&local_130,2)" identifier (argument_list "(iVar11,&local_130,2)" ( identifier , (pointer_expression "&local_130" & identifier) , number_literal ))) ;) (expression_statement "bufchain_consume(iVar11,2);" (call_expression "bufchain_consume(iVar11,2)" identifier (argument_list "(iVar11,2)" ( identifier , number_literal ))) ;) (if_statement "if (*(int *)(param_1 + 0x78) != 0) break;" if (parenthesized_expression "(*(int *)(param_1 + 0x78) != 0)" ( (binary_expression "*(int *)(param_1 + 0x78) != 0" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(local_130 != 1)" ( (binary_expression "local_130 != 1" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5af0" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "uVar2 = (uint)local_12f;" (assignment_expression "uVar2 = (uint)local_12f" identifier = (cast_expression "(uint)local_12f" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" { (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000)" ( (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_000ad2c8 + -0x5ab8" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001e898;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x78) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x78) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(param_1 + 0x80) != -1) break;" if (parenthesized_expression "(*(int *)(param_1 + 0x80) != -1)" ( (binary_expression "*(int *)(param_1 + 0x80) != -1" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(uint *)(param_1 + 0x80) = (uint)local_130;" (assignment_expression "*(uint *)(param_1 + 0x80) = (uint)local_130" (pointer_expression "*(uint *)(param_1 + 0x80)" * (cast_expression "(uint *)(param_1 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = (cast_expression "(uint)local_130" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x84) = (uint)local_12f;" (assignment_expression "*(uint *)(param_1 + 0x84) = (uint)local_12f" (pointer_expression "*(uint *)(param_1 + 0x84)" * (cast_expression "(uint *)(param_1 + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = (cast_expression "(uint)local_12f" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar3 = bufchain_size(iVar11);" (assignment_expression "iVar3 = bufchain_size(iVar11)" identifier = (call_expression "bufchain_size(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x84))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x84)" identifier < (pointer_expression "*(int *)(param_1 + 0x84)" * (cast_expression "(int *)(param_1 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001e894;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0001e894:\n    uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) })) (labeled_statement "LAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return uVar2;\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 uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "pcVar16 = proxy_socks5_selectchap;" (assignment_expression "pcVar16 = proxy_socks5_selectchap" identifier = identifier) ;) (expression_statement "iVar3 = local_2c;" (assignment_expression "iVar3 = local_2c" identifier = identifier) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000adca4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_3a0 = puVar13 + 0x96800;" (assignment_expression "puStack_3a0 = puVar13 + 0x96800" identifier = (binary_expression "puVar13 + 0x96800" identifier + number_literal)) ;) (expression_statement "uStack_184 = 0x1010410;" (assignment_expression "uStack_184 = 0x1010410" identifier = number_literal) ;) (expression_statement "piVar12 = *(int **)(puVar13 + 0x8f244);" (assignment_expression "piVar12 = *(int **)(puVar13 + 0x8f244)" identifier = (pointer_expression "*(int **)(puVar13 + 0x8f244)" * (cast_expression "(int **)(puVar13 + 0x8f244)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8f244)" ( (binary_expression "puVar13 + 0x8f244" identifier + number_literal) ))))) ;) (expression_statement "puStack_180 = puVar1;" (assignment_expression "puStack_180 = puVar1" identifier = identifier) ;) (expression_statement "piStack_194 = (int *)*piVar12;" (assignment_expression "piStack_194 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "iStack_18c = param_1;" (assignment_expression "iStack_18c = param_1" identifier = identifier) ;) (expression_statement "iStack_188 = iVar11;" (assignment_expression "iStack_188 = iVar11" identifier = identifier) ;) (expression_statement "pcStack_17c = pcVar16;" (assignment_expression "pcStack_17c = pcVar16" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);" (assignment_expression "pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" * (cast_expression "(undefined4 *)(iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x74)" ( (binary_expression "iVar3 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);" (assignment_expression "pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" * (cast_expression "(undefined4 *)(iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x74)" ( (binary_expression "iVar3 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" if (parenthesized_expression "((*pcVar5 == '\0') && (*pcVar6 == '\0'))" ( (binary_expression "(*pcVar5 == '\0') && (*pcVar6 == '\0')" (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }" { (expression_statement "puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);" (assignment_expression "puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" identifier = (cast_expression "(undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" ( (binary_expression "*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8" (pointer_expression "*(int *)(puStack_3a0 + -0x7fc8)" * (cast_expression "(int *)(puStack_3a0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_3a0 + -0x7fc8)" ( (binary_expression "puStack_3a0 + -0x7fc8" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);" (call_expression "(**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(iVar3 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar3 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar3 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar3 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar3 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar3 + 0xc) + 4" (pointer_expression "**(int **)(iVar3 + 0xc)" * (pointer_expression "*(int **)(iVar3 + 0xc)" * (cast_expression "(int **)(iVar3 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar3 + 0xc),puVar9,8000,0)" ( (pointer_expression "*(int **)(iVar3 + 0xc)" * (cast_expression "(int **)(iVar3 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) , identifier , number_literal , number_literal ))) ;) }) (else_clause "else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" else (compound_statement "{\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" { (expression_statement "uStack_394 = 0x8502;" (assignment_expression "uStack_394 = 0x8502" identifier = number_literal) ;) (expression_statement "uStack_398 = 0x1021101;" (assignment_expression "uStack_398 = 0x1021101" identifier = number_literal) ;) (expression_statement "uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);" (assignment_expression "uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5)" identifier = (call_expression "(**(code **)(puStack_3a0 + -0x7668))(pcVar5)" (parenthesized_expression "(**(code **)(puStack_3a0 + -0x7668))" ( (pointer_expression "**(code **)(puStack_3a0 + -0x7668)" * (pointer_expression "*(code **)(puStack_3a0 + -0x7668)" * (cast_expression "(code **)(puStack_3a0 + -0x7668)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_3a0 + -0x7668)" ( (binary_expression "puStack_3a0 + -0x7668" identifier + number_literal) ))))) )) (argument_list "(pcVar5)" ( identifier )))) ;) (if_statement "if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" if (parenthesized_expression "(uVar2 < 0x100)" ( (binary_expression "uVar2 < 0x100" identifier < number_literal) )) (compound_statement "{\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }" { (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" identifier = number_literal) ;) (if_statement "if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 1;\n        uStack_392 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "uStack_392 = 1;" (assignment_expression "uStack_392 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" else (compound_statement "{\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" { (expression_statement "iVar11 = uVar2 + 7;" (assignment_expression "iVar11 = uVar2 + 7" identifier = (binary_expression "uVar2 + 7" identifier + number_literal)) ;) (expression_statement "uStack_392 = (undefined1)uVar2;" (assignment_expression "uStack_392 = (undefined1)uVar2" identifier = (cast_expression "(undefined1)uVar2" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }))) }) (else_clause "else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" else (compound_statement "{\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" { (expression_statement "iVar11 = 0x106;" (assignment_expression "iVar11 = 0x106" identifier = number_literal) ;) (expression_statement "uVar2 = 0xff;" (assignment_expression "uVar2 = 0xff" identifier = number_literal) ;) (expression_statement "uStack_392 = 0xff;" (assignment_expression "uStack_392 = 0xff" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);" (call_expression "(**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb)" (parenthesized_expression "(**(code **)(puStack_3a0 + -0x7640))" ( (pointer_expression "**(code **)(puStack_3a0 + -0x7640)" * (pointer_expression "*(code **)(puStack_3a0 + -0x7640)" * (cast_expression "(code **)(puStack_3a0 + -0x7640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_3a0 + -0x7640)" ( (binary_expression "puStack_3a0 + -0x7640" identifier + number_literal) ))))) )) (argument_list "(auStack_391,pcVar5,uVar2,0x1fb)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "puVar9 = &uStack_398;" (assignment_expression "puVar9 = &uStack_398" identifier = (pointer_expression "&uStack_398" & identifier)) ;) (expression_statement "(**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);" (call_expression "(**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11)" (parenthesized_expression "(**(code **)(**(int **)(iVar3 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar3 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar3 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar3 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar3 + 8) + 8)" ( (binary_expression "**(int **)(iVar3 + 8) + 8" (pointer_expression "**(int **)(iVar3 + 8)" * (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar3 + 8),puVar9,iVar11)" ( (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x80)" * (cast_expression "(undefined4 *)(iVar3 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x80)" ( (binary_expression "iVar3 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x78)" * (cast_expression "(undefined4 *)(iVar3 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x78)" ( (binary_expression "iVar3 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x7c)" * (cast_expression "(undefined4 *)(iVar3 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x7c)" ( (binary_expression "iVar3 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x84) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x84)" * (cast_expression "(undefined4 *)(iVar3 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x44) = 8;" (assignment_expression "*(undefined4 *)(iVar3 + 0x44) = 8" (pointer_expression "*(undefined4 *)(iVar3 + 0x44)" * (cast_expression "(undefined4 *)(iVar3 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }" if (parenthesized_expression "(piStack_194 == (int *)*piVar12)" ( (binary_expression "piStack_194 == (int *)*piVar12" identifier == (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar16 = *(code **)(puStack_3a0 + -0x75ec);" (assignment_expression "pcVar16 = *(code **)(puStack_3a0 + -0x75ec)" identifier = (pointer_expression "*(code **)(puStack_3a0 + -0x75ec)" * (cast_expression "(code **)(puStack_3a0 + -0x75ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_3a0 + -0x75ec)" ( (binary_expression "puStack_3a0 + -0x75ec" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = 0x1ec1c;" (assignment_expression "uVar17 = 0x1ec1c" identifier = number_literal) ;) (expression_statement "piVar8 = piStack_194;" (assignment_expression "piVar8 = piStack_194" identifier = identifier) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = (uint)puVar9 & 0xff;" (assignment_expression "uVar2 = (uint)puVar9 & 0xff" identifier = (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar10 = *(uint **)(pcVar16 + 0x8f0b4);" (assignment_expression "puVar10 = *(uint **)(pcVar16 + 0x8f0b4)" identifier = (pointer_expression "*(uint **)(pcVar16 + 0x8f0b4)" * (cast_expression "(uint **)(pcVar16 + 0x8f0b4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8f0b4)" ( (binary_expression "pcVar16 + 0x8f0b4" identifier + number_literal) ))))) ;) (expression_statement "acStack_3ac[0] = (char)puVar9;" (assignment_expression "acStack_3ac[0] = (char)puVar9" (subscript_expression "acStack_3ac[0]" identifier [ number_literal ]) = (cast_expression "(char)puVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uStack_3c4 = *puVar10;" (assignment_expression "uStack_3c4 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) ;) (expression_statement "iStack_3c0 = iVar3;" (assignment_expression "iStack_3c0 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_3bc = pcVar5;" (assignment_expression "pcStack_3bc = pcVar5" identifier = identifier) ;) (expression_statement "piStack_3b8 = piVar12;" (assignment_expression "piStack_3b8 = piVar12" identifier = identifier) ;) (expression_statement "uStack_3b4 = uVar17;" (assignment_expression "uStack_3b4 = uVar17" identifier = identifier) ;) (if_statement "if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" if (parenthesized_expression "(uVar2 - 0x20 < 0x5f)" ( (binary_expression "uVar2 - 0x20 < 0x5f" (binary_expression "uVar2 - 0x20" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }" { (labeled_statement "LAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];" statement_identifier : (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" identifier = (cast_expression "(int *)piVar8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[3]" identifier [ number_literal ]))) ;)) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "(*pcVar14)(piVar12,0,acStack_3ac,1);" (call_expression "(*pcVar14)(piVar12,0,acStack_3ac,1)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(piVar12,0,acStack_3ac,1)" ( identifier , number_literal , identifier , number_literal ))) ;) }) (else_clause "else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" else (if_statement "if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" if (parenthesized_expression "((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))" ( (binary_expression "(*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37)" (parenthesized_expression "(*(int *)(*piVar8 + 0xdc) == 0)" ( (binary_expression "*(int *)(*piVar8 + 0xdc) == 0" (pointer_expression "*(int *)(*piVar8 + 0xdc)" * (cast_expression "(int *)(*piVar8 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 0xdc)" ( (binary_expression "*piVar8 + 0xdc" (pointer_expression "*piVar8" * identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37)" ( (binary_expression "*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37" (pointer_expression "*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar8 + 0x1090) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar8 + 0x1090) + 0xc)" ( (binary_expression "*(int *)(*piVar8 + 0x1090) + 0xc" (pointer_expression "*(int *)(*piVar8 + 0x1090)" * (cast_expression "(int *)(*piVar8 + 0x1090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 0x1090)" ( (binary_expression "*piVar8 + 0x1090" (pointer_expression "*piVar8" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }" { (if_statement "if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }" if (parenthesized_expression "(0x9f < uVar2)" ( (binary_expression "0x9f < uVar2" number_literal < identifier) )) (compound_statement "{\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }" { (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001ec9c;" goto statement_identifier ;) })) (if_statement "if (-1 < acStack_3ac[0]) goto LAB_0001ece4;" if (parenthesized_expression "(-1 < acStack_3ac[0])" ( (binary_expression "-1 < acStack_3ac[0]" number_literal < (subscript_expression "acStack_3ac[0]" identifier [ number_literal ])) )) (goto_statement "goto LAB_0001ece4;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);" (call_expression "(**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8eed0))" ( (pointer_expression "**(code **)(pcVar16 + 0x8eed0)" * (pointer_expression "*(code **)(pcVar16 + 0x8eed0)" * (cast_expression "(code **)(pcVar16 + 0x8eed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8eed0)" ( (binary_expression "pcVar16 + 0x8eed0" identifier + number_literal) ))))) )) (argument_list "(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2)" ( (pointer_expression "&uStack_3cc" & identifier) , number_literal , number_literal , (binary_expression "*(int *)(pcVar16 + 0x8e6a8) + -0x59b0" (pointer_expression "*(int *)(pcVar16 + 0x8e6a8)" * (cast_expression "(int *)(pcVar16 + 0x8e6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x8e6a8)" ( (binary_expression "pcVar16 + 0x8e6a8" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" identifier = (cast_expression "(int *)piVar8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);" (call_expression "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8e7f0))" ( (pointer_expression "**(code **)(pcVar16 + 0x8e7f0)" * (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) )) (argument_list "(piVar12,0,&uStack_3cc,4)" ( identifier , number_literal , (pointer_expression "&uStack_3cc" & identifier) , number_literal ))) ;) }) (else_clause "else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" else (compound_statement "{\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" { (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) ;) (if_statement "if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;" if (parenthesized_expression "(acStack_3ac[0] < '\0')" ( (binary_expression "acStack_3ac[0] < '\0'" (subscript_expression "acStack_3ac[0]" identifier [ number_literal ]) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001ec9c;" goto statement_identifier ;)) (labeled_statement "LAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" statement_identifier : (if_statement "if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" if (parenthesized_expression "(uVar2 == 0x7f)" ( (binary_expression "uVar2 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      cStack_3cb = '?';\n    }" { (expression_statement "cStack_3cb = '?';" (assignment_expression "cStack_3cb = '?'" identifier = (char_literal "'?'" ' character ')) ;) }) (else_clause "else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" else (compound_statement "{\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" { (expression_statement "cStack_3cb = acStack_3ac[0] + '@';" (assignment_expression "cStack_3cb = acStack_3ac[0] + '@'" identifier = (binary_expression "acStack_3ac[0] + '@'" (subscript_expression "acStack_3ac[0]" identifier [ number_literal ]) + (char_literal "'@'" ' character '))) ;) })))) (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" identifier = (cast_expression "(int *)piVar8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "uStack_3cc = 0x5e;" (assignment_expression "uStack_3cc = 0x5e" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);" (call_expression "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8e7f0))" ( (pointer_expression "**(code **)(pcVar16 + 0x8e7f0)" * (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" * (cast_expression "(code **)(pcVar16 + 0x8e7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8e7f0)" ( (binary_expression "pcVar16 + 0x8e7f0" identifier + number_literal) ))))) )) (argument_list "(piVar12,0,&uStack_3cc,2)" ( identifier , number_literal , (pointer_expression "&uStack_3cc" & identifier) , number_literal ))) ;) }))))) (expression_statement "uVar7 = *puVar10;" (assignment_expression "uVar7 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (if_statement "if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }" if (parenthesized_expression "(uStack_3c4 == uVar7)" ( (binary_expression "uStack_3c4 == uVar7" identifier == identifier) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) })) (expression_statement "(**(code **)(pcVar16 + 0x8f084))();" (call_expression "(**(code **)(pcVar16 + 0x8f084))()" (parenthesized_expression "(**(code **)(pcVar16 + 0x8f084))" ( (pointer_expression "**(code **)(pcVar16 + 0x8f084)" * (pointer_expression "*(code **)(pcVar16 + 0x8f084)" * (cast_expression "(code **)(pcVar16 + 0x8f084)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x8f084)" ( (binary_expression "pcVar16 + 0x8f084" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(uVar2 - 0x20 < 0x5f)" ( (binary_expression "uVar2 - 0x20 < 0x5f" (binary_expression "uVar2 - 0x20" identifier - number_literal) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" if (parenthesized_expression "(uVar2 < 0xa0)" ( (binary_expression "uVar2 < 0xa0" identifier < number_literal) )) (compound_statement "{\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }" { (if_statement "if (-1 < (char)uVar2) {\n      return 2;\n    }" if (parenthesized_expression "(-1 < (char)uVar2)" ( (binary_expression "-1 < (char)uVar2" number_literal < (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;" if (parenthesized_expression "(*(int *)(iVar11 + 0xdc) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xdc) == 0" (pointer_expression "*(int *)(iVar11 + 0xdc)" * (cast_expression "(int *)(iVar11 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xdc)" ( (binary_expression "iVar11 + 0xdc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001ede0;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" else (compound_statement "{\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }" if (parenthesized_expression "(*(int *)(iVar11 + 0xdc) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xdc) == 0" (pointer_expression "*(int *)(iVar11 + 0xdc)" * (cast_expression "(int *)(iVar11 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xdc)" ( (binary_expression "iVar11 + 0xdc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }" { (if_statement "if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }" if (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x1090) + 0xc)" ( (binary_expression "*(int *)(iVar11 + 0x1090) + 0xc" (pointer_expression "*(int *)(iVar11 + 0x1090)" * (cast_expression "(int *)(iVar11 + 0x1090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1090)" ( (binary_expression "iVar11 + 0x1090" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }" statement_identifier : (if_statement "if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }" if (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x1090) + 0xc)" ( (binary_expression "*(int *)(iVar11 + 0x1090) + 0xc" (pointer_expression "*(int *)(iVar11 + 0x1090)" * (cast_expression "(int *)(iVar11 + 0x1090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1090)" ( (binary_expression "iVar11 + 0x1090" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        return (uint)(0xbf < uVar2);\n      }" { (return_statement "return (uint)(0xbf < uVar2);" return (call_expression "(uint)(0xbf < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xbf < uVar2)" ( (binary_expression "0xbf < uVar2" number_literal < identifier) ))) ;) }))) (return_statement "return 4;" return number_literal ;) })) }))) (return_statement "return uVar2 < 0xc0 ^ 1;" return (binary_expression "uVar2 < 0xc0 ^ 1" (binary_expression "uVar2 < 0xc0" identifier < number_literal) ^ number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) 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) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (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 (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 = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (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 (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return 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 = 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 (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (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 (pointer_expression * IDENT) + LIT) )))) + LIT) )))) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < 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) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (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 , 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) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ 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 , (pointer_expression & IDENT) , LIT ))) ;) }) (else_clause else (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (char_literal ' escape_sequence ')) )) (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 = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (char_literal ' character '))) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 , (pointer_expression & IDENT) , LIT ))) ;) }))))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return 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 ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * 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) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (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) )))) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (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) )))) == LIT) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) ;) }))) (return_statement return LIT ;) })) }))) (return_statement return (binary_expression (binary_expression IDENT < LIT) ^ LIT) ;) })))
(function_definition "uint proxy_socks5_handlechap(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}" (type_identifier "uint") (function_declarator "proxy_socks5_handlechap(int param_1)" (identifier "proxy_socks5_handlechap") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint *puVar10;\n  int iVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  undefined4 uVar15;\n  code *pcVar16;\n  undefined4 uVar17;\n  undefined1 uStack_3cc;\n  char cStack_3cb;\n  uint uStack_3c4;\n  int iStack_3c0;\n  char *pcStack_3bc;\n  int *piStack_3b8;\n  undefined4 uStack_3b4;\n  char acStack_3ac [12];\n  undefined *puStack_3a0;\n  undefined4 uStack_398;\n  undefined2 uStack_394;\n  undefined1 uStack_392;\n  undefined1 auStack_391 [509];\n  int *piStack_194;\n  int iStack_18c;\n  int iStack_188;\n  undefined4 uStack_184;\n  undefined *puStack_180;\n  code *pcStack_17c;\n  undefined1 auStack_154 [16];\n  undefined4 local_144;\n  undefined1 auStack_140 [16];\n  byte local_130;\n  byte local_12f;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  uVar2 = *(uint *)(param_1 + 0x78);\n  iVar11 = param_1 + 0x34;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\nLAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;\n  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);\n  if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }\nLAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }\n  pcVar16 = proxy_socks5_selectchap;\n  iVar3 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_3a0 = puVar13 + 0x96800;\n  uStack_184 = 0x1010410;\n  piVar12 = *(int **)(puVar13 + 0x8f244);\n  puStack_180 = puVar1;\n  piStack_194 = (int *)*piVar12;\n  iStack_18c = param_1;\n  iStack_188 = iVar11;\n  pcStack_17c = pcVar16;\n  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);\n  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);\n  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }\n  if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }\n  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);\n  uVar17 = 0x1ec1c;\n  piVar8 = piStack_194;\n  (*pcVar16)();\n  uVar2 = (uint)puVar9 & 0xff;\n  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);\n  acStack_3ac[0] = (char)puVar9;\n  uStack_3c4 = *puVar10;\n  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n  iStack_3c0 = iVar3;\n  pcStack_3bc = pcVar5;\n  piStack_3b8 = piVar12;\n  uStack_3b4 = uVar17;\n  if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }\n  uVar7 = *puVar10;\n  if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }\n  (**(code **)(pcVar16 + 0x8f084))();\n  if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }\n  if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }\n  return uVar2 < 0xc0 ^ 1;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "undefined1 uStack_3cc;" (type_identifier "undefined1") (identifier "uStack_3cc") (; ";")) (declaration "char cStack_3cb;" (primitive_type "char") (identifier "cStack_3cb") (; ";")) (declaration "uint uStack_3c4;" (type_identifier "uint") (identifier "uStack_3c4") (; ";")) (declaration "int iStack_3c0;" (primitive_type "int") (identifier "iStack_3c0") (; ";")) (declaration "char *pcStack_3bc;" (primitive_type "char") (pointer_declarator "*pcStack_3bc" (* "*") (identifier "pcStack_3bc")) (; ";")) (declaration "int *piStack_3b8;" (primitive_type "int") (pointer_declarator "*piStack_3b8" (* "*") (identifier "piStack_3b8")) (; ";")) (declaration "undefined4 uStack_3b4;" (type_identifier "undefined4") (identifier "uStack_3b4") (; ";")) (declaration "char acStack_3ac [12];" (primitive_type "char") (array_declarator "acStack_3ac [12]" (identifier "acStack_3ac") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined *puStack_3a0;" (type_identifier "undefined") (pointer_declarator "*puStack_3a0" (* "*") (identifier "puStack_3a0")) (; ";")) (declaration "undefined4 uStack_398;" (type_identifier "undefined4") (identifier "uStack_398") (; ";")) (declaration "undefined2 uStack_394;" (type_identifier "undefined2") (identifier "uStack_394") (; ";")) (declaration "undefined1 uStack_392;" (type_identifier "undefined1") (identifier "uStack_392") (; ";")) (declaration "undefined1 auStack_391 [509];" (type_identifier "undefined1") (array_declarator "auStack_391 [509]" (identifier "auStack_391") ([ "[") (number_literal "509") (] "]")) (; ";")) (declaration "int *piStack_194;" (primitive_type "int") (pointer_declarator "*piStack_194" (* "*") (identifier "piStack_194")) (; ";")) (declaration "int iStack_18c;" (primitive_type "int") (identifier "iStack_18c") (; ";")) (declaration "int iStack_188;" (primitive_type "int") (identifier "iStack_188") (; ";")) (declaration "undefined4 uStack_184;" (type_identifier "undefined4") (identifier "uStack_184") (; ";")) (declaration "undefined *puStack_180;" (type_identifier "undefined") (pointer_declarator "*puStack_180" (* "*") (identifier "puStack_180")) (; ";")) (declaration "code *pcStack_17c;" (type_identifier "code") (pointer_declarator "*pcStack_17c" (* "*") (identifier "pcStack_17c")) (; ";")) (declaration "undefined1 auStack_154 [16];" (type_identifier "undefined1") (array_declarator "auStack_154 [16]" (identifier "auStack_154") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_144;" (type_identifier "undefined4") (identifier "local_144") (; ";")) (declaration "undefined1 auStack_140 [16];" (type_identifier "undefined1") (array_declarator "auStack_140 [16]" (identifier "auStack_140") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte local_130;" (type_identifier "byte") (identifier "local_130") (; ";")) (declaration "byte local_12f;" (type_identifier "byte") (identifier "local_12f") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000adcd4")) (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x78)" (* "*") (cast_expression "(uint *)(param_1 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "iVar11 = param_1 + 0x34;" (assignment_expression "iVar11 = param_1 + 0x34" (identifier "iVar11") (= "=") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000adcd4")))) (; ";")) (labeled_statement "LAB_0001e6f4:\n  if (uVar2 == 0) goto LAB_0001e7c4;" (statement_identifier "LAB_0001e6f4") (: ":") (if_statement "if (uVar2 == 0) goto LAB_0001e7c4;" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e7c4;" (goto "goto") (statement_identifier "LAB_0001e7c4") (; ";")))) (expression_statement "uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);" (assignment_expression "uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2)" (identifier "uVar2") (= "=") (call_expression "(uint)(*(int *)(param_1 + 0x7c) < (int)uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x7c) < (int)uVar2)" (( "(") (binary_expression "*(int *)(param_1 + 0x7c) < (int)uVar2" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (< "<") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")))) (; ";")) (if_statement "if (uVar2 != 0) {\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;\n    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }\nLAB_0001e894:\n    uVar2 = 1;\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x80) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x80) == -1" (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0001e7c4;" (goto "goto") (statement_identifier "LAB_0001e7c4") (; ";"))) (while_statement "while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }" (while "while") (parenthesized_expression "(iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3)" (( "(") (comma_expression "iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3" (assignment_expression "iVar3 = bufchain_size(iVar11)" (identifier "iVar3") (= "=") (call_expression "bufchain_size(iVar11)" (identifier "bufchain_size") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (, ",") (binary_expression "*(int *)(param_1 + 0x84) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x84)" (* "*") (cast_expression "(int *)(param_1 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) (<= "<=") (identifier "iVar3"))) () ")")) (compound_statement "{\n      while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        bufchain_fetch(iVar11,&local_130);\n        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));\n        iVar3 = *(int *)(param_1 + 0x80);\n        if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        uVar2 = *(uint *)(param_1 + 0x78);\n        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n        while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }\n        if (*(int *)(param_1 + 0x80) != -1) break;\n        *(uint *)(param_1 + 0x80) = (uint)local_130;\n        *(uint *)(param_1 + 0x84) = (uint)local_12f;\n        iVar3 = bufchain_size(iVar11);\n        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;\n      }" ({ "{") (expression_statement "bufchain_fetch(iVar11,&local_130);" (call_expression "bufchain_fetch(iVar11,&local_130)" (identifier "bufchain_fetch") (argument_list "(iVar11,&local_130)" (( "(") (identifier "iVar11") (, ",") (pointer_expression "&local_130" (& "&") (identifier "local_130")) () ")"))) (; ";")) (expression_statement "bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));" (call_expression "bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84))" (identifier "bufchain_consume") (argument_list "(iVar11,*(undefined4 *)(param_1 + 0x84))" (( "(") (identifier "iVar11") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x84)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x80);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x80)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 3) {\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }\n        else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" (if "if") (parenthesized_expression "(iVar3 == 3)" (( "(") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          uVar15 = *(undefined4 *)(param_1 + 0x84);\n          local_144 = 0x1010410;\n          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);\n          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);\n          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);\n          if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }\n          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);\n          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);\n          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)(param_1 + 0x84);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 0x84)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x84)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (expression_statement "local_144 = 0x1010410;" (assignment_expression "local_144 = 0x1010410" (identifier "local_144") (= "=") (number_literal "0x1010410")) (; ";")) (expression_statement "uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);" (assignment_expression "uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11)" (identifier "uVar17") (= "=") (call_expression "conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(param_1 + 0x74),0x11)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x11") () ")")))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);" (assignment_expression "uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_hmacmd5_make_context_000ad49c)(0)" (parenthesized_expression "(*(code *)PTR_hmacmd5_make_context_000ad49c)" (( "(") (pointer_expression "*(code *)PTR_hmacmd5_make_context_000ad49c" (* "*") (cast_expression "(code *)PTR_hmacmd5_make_context_000ad49c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hmacmd5_make_context_000ad49c"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000adc28)(uVar17)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" (( "(") (pointer_expression "*(code *)PTR_strlen_000adc28" (* "*") (cast_expression "(code *)PTR_strlen_000adc28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000adc28"))) () ")")) (argument_list "(uVar17)" (( "(") (identifier "uVar17") () ")")))) (; ";")) (if_statement "if (uVar2 < 0x41) {\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }\n          else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" (if "if") (parenthesized_expression "(uVar2 < 0x41)" (( "(") (binary_expression "uVar2 < 0x41" (identifier "uVar2") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);\n          }" ({ "{") (expression_statement "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);" (call_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2)" (parenthesized_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)" (( "(") (pointer_expression "*(code *)PTR_hmacmd5_key_000ad4a4" (* "*") (cast_expression "(code *)PTR_hmacmd5_key_000ad4a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hmacmd5_key_000ad4a4"))) () ")")) (argument_list "(uVar4,uVar17,uVar2)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar17") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);\n            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);\n          }" ({ "{") (expression_statement "(*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);" (call_expression "(*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154)" (parenthesized_expression "(*(code *)PTR_MD5Simple_000ad4a0)" (( "(") (pointer_expression "*(code *)PTR_MD5Simple_000ad4a0" (* "*") (cast_expression "(code *)PTR_MD5Simple_000ad4a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_MD5Simple_000ad4a0"))) () ")")) (argument_list "(uVar17,uVar2,auStack_154)" (( "(") (identifier "uVar17") (, ",") (identifier "uVar2") (, ",") (identifier "auStack_154") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);" (call_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10)" (parenthesized_expression "(*(code *)PTR_hmacmd5_key_000ad4a4)" (( "(") (pointer_expression "*(code *)PTR_hmacmd5_key_000ad4a4" (* "*") (cast_expression "(code *)PTR_hmacmd5_key_000ad4a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hmacmd5_key_000ad4a4"))) () ")")) (argument_list "(uVar4,auStack_154,0x10)" (( "(") (identifier "uVar4") (, ",") (identifier "auStack_154") (, ",") (number_literal "0x10") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);" (call_expression "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140)" (parenthesized_expression "(*(code *)PTR_hmacmd5_do_hmac_000ad4a8)" (( "(") (pointer_expression "*(code *)PTR_hmacmd5_do_hmac_000ad4a8" (* "*") (cast_expression "(code *)PTR_hmacmd5_do_hmac_000ad4a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hmacmd5_do_hmac_000ad4a8"))) () ")")) (argument_list "(uVar4,&local_130,uVar15,auStack_140)" (( "(") (identifier "uVar4") (, ",") (pointer_expression "&local_130" (& "&") (identifier "local_130")) (, ",") (identifier "uVar15") (, ",") (identifier "auStack_140") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);" (call_expression "(*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4)" (parenthesized_expression "(*(code *)PTR_hmacmd5_free_context_000ad4ac)" (( "(") (pointer_expression "*(code *)PTR_hmacmd5_free_context_000ad4ac" (* "*") (cast_expression "(code *)PTR_hmacmd5_free_context_000ad4ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hmacmd5_free_context_000ad4ac"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);" (call_expression "(**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 8)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 8) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 8) + 8)" (( "(") (binary_expression "**(int **)(param_1 + 8) + 8" (pointer_expression "**(int **)(param_1 + 8)" (* "*") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 8),&local_144,0x14)" (( "(") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "&local_144" (& "&") (identifier "local_144")) (, ",") (number_literal "0x14") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" (else "else") (compound_statement "{\n          if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n        }" ({ "{") (if_statement "if (iVar3 == 0x11) {\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }\n          else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0x11)" (( "(") (binary_expression "iVar3 == 0x11" (identifier "iVar3") (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n            if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n          }" ({ "{") (if_statement "if (local_130 != 0x85) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" (if "if") (parenthesized_expression "(local_130 != 0x85)" (( "(") (binary_expression "local_130 != 0x85" (identifier "local_130") (!= "!=") (number_literal "0x85")) () ")")) (compound_statement "{\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" ({ "{") (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0)" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x5a48" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x5a48")) (, ",") (number_literal "8000") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0001e898;" (goto "goto") (statement_identifier "LAB_0001e898") (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" (else "else") (if_statement "if (iVar3 == 0) {\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }\n            uVar2 = *(uint *)(param_1 + 0x78);\n            *(undefined4 *)(param_1 + 0x44) = 2;\n            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;\n            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;\n            goto LAB_0001e6f4;\n          }" ({ "{") (if_statement "if (local_130 != 0) {\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" (if "if") (parenthesized_expression "(local_130 != 0)" (( "(") (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);\n              uVar2 = 1;\n              goto LAB_0001e898;\n            }" ({ "{") (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0)" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x5a80" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x5a80")) (, ",") (number_literal "8000") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0001e898;" (goto "goto") (statement_identifier "LAB_0001e898") (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x78)" (* "*") (cast_expression "(uint *)(param_1 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;" (assignment_expression "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0001e6f4;" (goto "goto") (statement_identifier "LAB_0001e6f4") (; ";")) (} "}"))))) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x78);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x78)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x78)" (* "*") (cast_expression "(uint *)(param_1 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;" (assignment_expression "*(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x7c) + 1" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (while_statement "while( true ) {\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x84) = 0;\nLAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);\n          if (iVar3 < 2) goto LAB_0001e894;\n          bufchain_fetch(iVar11,&local_130,2);\n          bufchain_consume(iVar11,2);\n          if (*(int *)(param_1 + 0x78) != 0) break;\n          if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          uVar2 = (uint)local_12f;\n          if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }\n          iVar3 = *(int *)(param_1 + 0x44);\n          *(uint *)(param_1 + 0x78) = uVar2;\n        }" ({ "{") (if_statement "if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;" (if "if") (parenthesized_expression "((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2))" (( "(") (binary_expression "(iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)" (parenthesized_expression "(iVar3 != 8)" (( "(") (binary_expression "iVar3 != 8" (identifier "iVar3") (!= "!=") (number_literal "8")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x7c) < (int)uVar2)" (( "(") (binary_expression "*(int *)(param_1 + 0x7c) < (int)uVar2" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (< "<") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")"))) () ")")) (goto_statement "goto LAB_0001e6f4;" (goto "goto") (statement_identifier "LAB_0001e6f4") (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001e7c4:\n          iVar3 = bufchain_size(iVar11);" (statement_identifier "LAB_0001e7c4") (: ":") (expression_statement "iVar3 = bufchain_size(iVar11);" (assignment_expression "iVar3 = bufchain_size(iVar11)" (identifier "iVar3") (= "=") (call_expression "bufchain_size(iVar11)" (identifier "bufchain_size") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (; ";"))) (if_statement "if (iVar3 < 2) goto LAB_0001e894;" (if "if") (parenthesized_expression "(iVar3 < 2)" (( "(") (binary_expression "iVar3 < 2" (identifier "iVar3") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0001e894;" (goto "goto") (statement_identifier "LAB_0001e894") (; ";"))) (expression_statement "bufchain_fetch(iVar11,&local_130,2);" (call_expression "bufchain_fetch(iVar11,&local_130,2)" (identifier "bufchain_fetch") (argument_list "(iVar11,&local_130,2)" (( "(") (identifier "iVar11") (, ",") (pointer_expression "&local_130" (& "&") (identifier "local_130")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "bufchain_consume(iVar11,2);" (call_expression "bufchain_consume(iVar11,2)" (identifier "bufchain_consume") (argument_list "(iVar11,2)" (( "(") (identifier "iVar11") (, ",") (number_literal "2") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x78) != 0) break;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x78) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x78) != 0" (pointer_expression "*(int *)(param_1 + 0x78)" (* "*") (cast_expression "(int *)(param_1 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_130 != 1) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" (if "if") (parenthesized_expression "(local_130 != 1)" (( "(") (binary_expression "local_130 != 1" (identifier "local_130") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" ({ "{") (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0)" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x5af0" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x5af0")) (, ",") (number_literal "8000") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0001e898;" (goto "goto") (statement_identifier "LAB_0001e898") (; ";")) (} "}"))) (expression_statement "uVar2 = (uint)local_12f;" (assignment_expression "uVar2 = (uint)local_12f" (identifier "uVar2") (= "=") (cast_expression "(uint)local_12f" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_12f"))) (; ";")) (if_statement "if (uVar2 == 0) {\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);\n            uVar2 = 1;\n            goto LAB_0001e898;\n          }" ({ "{") (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))\n                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000)" (( "(") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x5ab8" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x5ab8")) (, ",") (number_literal "8000") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0001e898;" (goto "goto") (statement_identifier "LAB_0001e898") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x44)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x78) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x78) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x78)" (* "*") (cast_expression "(uint *)(param_1 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x80) != -1) break;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x80) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x80) != -1" (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(uint *)(param_1 + 0x80) = (uint)local_130;" (assignment_expression "*(uint *)(param_1 + 0x80) = (uint)local_130" (pointer_expression "*(uint *)(param_1 + 0x80)" (* "*") (cast_expression "(uint *)(param_1 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (cast_expression "(uint)local_130" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_130"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x84) = (uint)local_12f;" (assignment_expression "*(uint *)(param_1 + 0x84) = (uint)local_12f" (pointer_expression "*(uint *)(param_1 + 0x84)" (* "*") (cast_expression "(uint *)(param_1 + 0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (cast_expression "(uint)local_12f" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_12f"))) (; ";")) (expression_statement "iVar3 = bufchain_size(iVar11);" (assignment_expression "iVar3 = bufchain_size(iVar11)" (identifier "iVar3") (= "=") (call_expression "bufchain_size(iVar11)" (identifier "bufchain_size") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (; ";")) (if_statement "if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;" (if "if") (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x84))" (( "(") (binary_expression "iVar3 < *(int *)(param_1 + 0x84)" (identifier "iVar3") (< "<") (pointer_expression "*(int *)(param_1 + 0x84)" (* "*") (cast_expression "(int *)(param_1 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")"))))) () ")")) (goto_statement "goto LAB_0001e894;" (goto "goto") (statement_identifier "LAB_0001e894") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0001e894:\n    uVar2 = 1;" (statement_identifier "LAB_0001e894") (: ":") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";"))) (} "}"))) (labeled_statement "LAB_0001e898:\n  if (local_2c == *(int *)puVar1) {\n    return uVar2;\n  }" (statement_identifier "LAB_0001e898") (: ":") (if_statement "if (local_2c == *(int *)puVar1) {\n    return uVar2;\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 uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "pcVar16 = proxy_socks5_selectchap;" (assignment_expression "pcVar16 = proxy_socks5_selectchap" (identifier "pcVar16") (= "=") (identifier "proxy_socks5_selectchap")) (; ";")) (expression_statement "iVar3 = local_2c;" (assignment_expression "iVar3 = local_2c" (identifier "iVar3") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar13 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000adca4" (identifier "puVar13") (= "=") (identifier "PTR___stack_chk_fail_000adca4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000adca4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000adca4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_3a0 = puVar13 + 0x96800;" (assignment_expression "puStack_3a0 = puVar13 + 0x96800" (identifier "puStack_3a0") (= "=") (binary_expression "puVar13 + 0x96800" (identifier "puVar13") (+ "+") (number_literal "0x96800"))) (; ";")) (expression_statement "uStack_184 = 0x1010410;" (assignment_expression "uStack_184 = 0x1010410" (identifier "uStack_184") (= "=") (number_literal "0x1010410")) (; ";")) (expression_statement "piVar12 = *(int **)(puVar13 + 0x8f244);" (assignment_expression "piVar12 = *(int **)(puVar13 + 0x8f244)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar13 + 0x8f244)" (* "*") (cast_expression "(int **)(puVar13 + 0x8f244)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8f244)" (( "(") (binary_expression "puVar13 + 0x8f244" (identifier "puVar13") (+ "+") (number_literal "0x8f244")) () ")"))))) (; ";")) (expression_statement "puStack_180 = puVar1;" (assignment_expression "puStack_180 = puVar1" (identifier "puStack_180") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "piStack_194 = (int *)*piVar12;" (assignment_expression "piStack_194 = (int *)*piVar12" (identifier "piStack_194") (= "=") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (expression_statement "iStack_18c = param_1;" (assignment_expression "iStack_18c = param_1" (identifier "iStack_18c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iStack_188 = iVar11;" (assignment_expression "iStack_188 = iVar11" (identifier "iStack_188") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "pcStack_17c = pcVar16;" (assignment_expression "pcStack_17c = pcVar16" (identifier "pcStack_17c") (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);" (assignment_expression "pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" (identifier "pcVar5") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(iVar3 + 0x74),0x10)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x74)" (( "(") (binary_expression "iVar3 + 0x74" (identifier "iVar3") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);" (assignment_expression "pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" (identifier "pcVar6") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(iVar3 + 0x74),0x11)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x74)" (( "(") (binary_expression "iVar3 + 0x74" (identifier "iVar3") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x11") () ")"))))) (; ";")) (if_statement "if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }\n  else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" (if "if") (parenthesized_expression "((*pcVar5 == '\0') && (*pcVar6 == '\0'))" (( "(") (binary_expression "(*pcVar5 == '\0') && (*pcVar6 == '\0')" (parenthesized_expression "(*pcVar5 == '\0')" (( "(") (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar6 == '\0')" (( "(") (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);\n    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);\n  }" ({ "{") (expression_statement "puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);" (assignment_expression "puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8)" (( "(") (binary_expression "*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8" (pointer_expression "*(int *)(puStack_3a0 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_3a0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_3a0 + -0x7fc8)" (( "(") (binary_expression "puStack_3a0 + -0x7fc8" (identifier "puStack_3a0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (- "-") (number_literal "0x59f8")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);" (call_expression "(**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0)" (parenthesized_expression "(**(code **)(**(int **)(iVar3 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar3 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar3 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar3 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar3 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar3 + 0xc) + 4" (pointer_expression "**(int **)(iVar3 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar3 + 0xc)" (* "*") (cast_expression "(int **)(iVar3 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar3 + 0xc),puVar9,8000,0)" (( "(") (pointer_expression "*(int **)(iVar3 + 0xc)" (* "*") (cast_expression "(int **)(iVar3 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "puVar9") (, ",") (number_literal "8000") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" (else "else") (compound_statement "{\n    uStack_394 = 0x8502;\n    uStack_398 = 0x1021101;\n    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);\n    if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }\n    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);\n    puVar9 = &uStack_398;\n    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);\n    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;\n    *(undefined4 *)(iVar3 + 0x78) = 0;\n    *(undefined4 *)(iVar3 + 0x7c) = 0;\n    *(undefined4 *)(iVar3 + 0x84) = 0;\n    *(undefined4 *)(iVar3 + 0x44) = 8;\n  }" ({ "{") (expression_statement "uStack_394 = 0x8502;" (assignment_expression "uStack_394 = 0x8502" (identifier "uStack_394") (= "=") (number_literal "0x8502")) (; ";")) (expression_statement "uStack_398 = 0x1021101;" (assignment_expression "uStack_398 = 0x1021101" (identifier "uStack_398") (= "=") (number_literal "0x1021101")) (; ";")) (expression_statement "uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);" (assignment_expression "uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(puStack_3a0 + -0x7668))(pcVar5)" (parenthesized_expression "(**(code **)(puStack_3a0 + -0x7668))" (( "(") (pointer_expression "**(code **)(puStack_3a0 + -0x7668)" (* "*") (pointer_expression "*(code **)(puStack_3a0 + -0x7668)" (* "*") (cast_expression "(code **)(puStack_3a0 + -0x7668)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_3a0 + -0x7668)" (( "(") (binary_expression "puStack_3a0 + -0x7668" (identifier "puStack_3a0") (+ "+") (number_literal "-0x7668")) () ")"))))) () ")")) (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (if_statement "if (uVar2 < 0x100) {\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }\n    else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0x100)" (( "(") (binary_expression "uVar2 < 0x100" (identifier "uVar2") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n      iVar11 = 8;\n      if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }\n    }" ({ "{") (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" (identifier "iVar11") (= "=") (number_literal "8")) (; ";")) (if_statement "if (uVar2 == 0) {\n        uVar2 = 1;\n        uStack_392 = 1;\n      }\n      else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = 1;\n        uStack_392 = 1;\n      }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_392 = 1;" (assignment_expression "uStack_392 = 1" (identifier "uStack_392") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" (else "else") (compound_statement "{\n        iVar11 = uVar2 + 7;\n        uStack_392 = (undefined1)uVar2;\n      }" ({ "{") (expression_statement "iVar11 = uVar2 + 7;" (assignment_expression "iVar11 = uVar2 + 7" (identifier "iVar11") (= "=") (binary_expression "uVar2 + 7" (identifier "uVar2") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "uStack_392 = (undefined1)uVar2;" (assignment_expression "uStack_392 = (undefined1)uVar2" (identifier "uStack_392") (= "=") (cast_expression "(undefined1)uVar2" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar2"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" (else "else") (compound_statement "{\n      iVar11 = 0x106;\n      uVar2 = 0xff;\n      uStack_392 = 0xff;\n    }" ({ "{") (expression_statement "iVar11 = 0x106;" (assignment_expression "iVar11 = 0x106" (identifier "iVar11") (= "=") (number_literal "0x106")) (; ";")) (expression_statement "uVar2 = 0xff;" (assignment_expression "uVar2 = 0xff" (identifier "uVar2") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uStack_392 = 0xff;" (assignment_expression "uStack_392 = 0xff" (identifier "uStack_392") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "(**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);" (call_expression "(**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb)" (parenthesized_expression "(**(code **)(puStack_3a0 + -0x7640))" (( "(") (pointer_expression "**(code **)(puStack_3a0 + -0x7640)" (* "*") (pointer_expression "*(code **)(puStack_3a0 + -0x7640)" (* "*") (cast_expression "(code **)(puStack_3a0 + -0x7640)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_3a0 + -0x7640)" (( "(") (binary_expression "puStack_3a0 + -0x7640" (identifier "puStack_3a0") (+ "+") (number_literal "-0x7640")) () ")"))))) () ")")) (argument_list "(auStack_391,pcVar5,uVar2,0x1fb)" (( "(") (identifier "auStack_391") (, ",") (identifier "pcVar5") (, ",") (identifier "uVar2") (, ",") (number_literal "0x1fb") () ")"))) (; ";")) (expression_statement "puVar9 = &uStack_398;" (assignment_expression "puVar9 = &uStack_398" (identifier "puVar9") (= "=") (pointer_expression "&uStack_398" (& "&") (identifier "uStack_398"))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);" (call_expression "(**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11)" (parenthesized_expression "(**(code **)(**(int **)(iVar3 + 8) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar3 + 8) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar3 + 8) + 8)" (* "*") (cast_expression "(code **)(**(int **)(iVar3 + 8) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar3 + 8) + 8)" (( "(") (binary_expression "**(int **)(iVar3 + 8) + 8" (pointer_expression "**(int **)(iVar3 + 8)" (* "*") (pointer_expression "*(int **)(iVar3 + 8)" (* "*") (cast_expression "(int **)(iVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar3 + 8),puVar9,iVar11)" (( "(") (pointer_expression "*(int **)(iVar3 + 8)" (* "*") (cast_expression "(int **)(iVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar9") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x80)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x80)" (( "(") (binary_expression "iVar3 + 0x80" (identifier "iVar3") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x78)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x78)" (( "(") (binary_expression "iVar3 + 0x78" (identifier "iVar3") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x7c)" (( "(") (binary_expression "iVar3 + 0x7c" (identifier "iVar3") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x84) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x84)" (( "(") (binary_expression "iVar3 + 0x84" (identifier "iVar3") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x44) = 8;" (assignment_expression "*(undefined4 *)(iVar3 + 0x44) = 8" (pointer_expression "*(undefined4 *)(iVar3 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x44)" (( "(") (binary_expression "iVar3 + 0x44" (identifier "iVar3") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "8")) (; ";")) (} "}")))) (if_statement "if (piStack_194 == (int *)*piVar12) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(piStack_194 == (int *)*piVar12)" (( "(") (binary_expression "piStack_194 == (int *)*piVar12" (identifier "piStack_194") (== "==") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar16 = *(code **)(puStack_3a0 + -0x75ec);" (assignment_expression "pcVar16 = *(code **)(puStack_3a0 + -0x75ec)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(puStack_3a0 + -0x75ec)" (* "*") (cast_expression "(code **)(puStack_3a0 + -0x75ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_3a0 + -0x75ec)" (( "(") (binary_expression "puStack_3a0 + -0x75ec" (identifier "puStack_3a0") (+ "+") (number_literal "-0x75ec")) () ")"))))) (; ";")) (expression_statement "uVar17 = 0x1ec1c;" (assignment_expression "uVar17 = 0x1ec1c" (identifier "uVar17") (= "=") (number_literal "0x1ec1c")) (; ";")) (expression_statement "piVar8 = piStack_194;" (assignment_expression "piVar8 = piStack_194" (identifier "piVar8") (= "=") (identifier "piStack_194")) (; ";")) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = (uint)puVar9 & 0xff;" (assignment_expression "uVar2 = (uint)puVar9 & 0xff" (identifier "uVar2") (= "=") (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "puVar10 = *(uint **)(pcVar16 + 0x8f0b4);" (assignment_expression "puVar10 = *(uint **)(pcVar16 + 0x8f0b4)" (identifier "puVar10") (= "=") (pointer_expression "*(uint **)(pcVar16 + 0x8f0b4)" (* "*") (cast_expression "(uint **)(pcVar16 + 0x8f0b4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8f0b4)" (( "(") (binary_expression "pcVar16 + 0x8f0b4" (identifier "pcVar16") (+ "+") (number_literal "0x8f0b4")) () ")"))))) (; ";")) (expression_statement "acStack_3ac[0] = (char)puVar9;" (assignment_expression "acStack_3ac[0] = (char)puVar9" (subscript_expression "acStack_3ac[0]" (identifier "acStack_3ac") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)puVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar9"))) (; ";")) (expression_statement "uStack_3c4 = *puVar10;" (assignment_expression "uStack_3c4 = *puVar10" (identifier "uStack_3c4") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8e7f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8e7f0)" (( "(") (binary_expression "pcVar16 + 0x8e7f0" (identifier "pcVar16") (+ "+") (number_literal "0x8e7f0")) () ")"))))) (; ";")) (expression_statement "iStack_3c0 = iVar3;" (assignment_expression "iStack_3c0 = iVar3" (identifier "iStack_3c0") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pcStack_3bc = pcVar5;" (assignment_expression "pcStack_3bc = pcVar5" (identifier "pcStack_3bc") (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "piStack_3b8 = piVar12;" (assignment_expression "piStack_3b8 = piVar12" (identifier "piStack_3b8") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "uStack_3b4 = uVar17;" (assignment_expression "uStack_3b4 = uVar17" (identifier "uStack_3b4") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar2 - 0x20 < 0x5f) {\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }\n  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" (if "if") (parenthesized_expression "(uVar2 - 0x20 < 0x5f)" (( "(") (binary_expression "uVar2 - 0x20 < 0x5f" (binary_expression "uVar2 - 0x20" (identifier "uVar2") (- "-") (number_literal "0x20")) (< "<") (number_literal "0x5f")) () ")")) (compound_statement "{\nLAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    (*pcVar14)(piVar12,0,acStack_3ac,1);\n  }" ({ "{") (labeled_statement "LAB_0001ec9c:\n    piVar12 = (int *)piVar8[3];" (statement_identifier "LAB_0001ec9c") (: ":") (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" (identifier "piVar12") (= "=") (cast_expression "(int *)piVar8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*pcVar14)(piVar12,0,acStack_3ac,1);" (call_expression "(*pcVar14)(piVar12,0,acStack_3ac,1)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(piVar12,0,acStack_3ac,1)" (( "(") (identifier "piVar12") (, ",") (number_literal "0") (, ",") (identifier "acStack_3ac") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" (else "else") (if_statement "if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))\n  {\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }\n  else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" (if "if") (parenthesized_expression "((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))" (( "(") (binary_expression "(*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37)" (parenthesized_expression "(*(int *)(*piVar8 + 0xdc) == 0)" (( "(") (binary_expression "*(int *)(*piVar8 + 0xdc) == 0" (pointer_expression "*(int *)(*piVar8 + 0xdc)" (* "*") (cast_expression "(int *)(*piVar8 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar8 + 0xdc)" (( "(") (binary_expression "*piVar8 + 0xdc" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0xdc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37)" (( "(") (binary_expression "*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37" (pointer_expression "*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(*piVar8 + 0x1090) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar8 + 0x1090) + 0xc)" (( "(") (binary_expression "*(int *)(*piVar8 + 0x1090) + 0xc" (pointer_expression "*(int *)(*piVar8 + 0x1090)" (* "*") (cast_expression "(int *)(*piVar8 + 0x1090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar8 + 0x1090)" (( "(") (binary_expression "*piVar8 + 0x1090" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x1090")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0x37")) () ")"))) () ")")) (compound_statement "{\n    if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }\n    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;\n    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);\n    uVar2 = 0;\n    piVar12 = (int *)piVar8[3];\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);\n  }" ({ "{") (if_statement "if (0x9f < uVar2) {\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }" (if "if") (parenthesized_expression "(0x9f < uVar2)" (( "(") (binary_expression "0x9f < uVar2" (number_literal "0x9f") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n      goto LAB_0001ec9c;\n    }" ({ "{") (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8e7f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8e7f0)" (( "(") (binary_expression "pcVar16 + 0x8e7f0" (identifier "pcVar16") (+ "+") (number_literal "0x8e7f0")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001ec9c;" (goto "goto") (statement_identifier "LAB_0001ec9c") (; ";")) (} "}"))) (if_statement "if (-1 < acStack_3ac[0]) goto LAB_0001ece4;" (if "if") (parenthesized_expression "(-1 < acStack_3ac[0])" (( "(") (binary_expression "-1 < acStack_3ac[0]" (number_literal "-1") (< "<") (subscript_expression "acStack_3ac[0]" (identifier "acStack_3ac") ([ "[") (number_literal "0") (] "]"))) () ")")) (goto_statement "goto LAB_0001ece4;" (goto "goto") (statement_identifier "LAB_0001ece4") (; ";"))) (expression_statement "(**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);" (call_expression "(**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8eed0))" (( "(") (pointer_expression "**(code **)(pcVar16 + 0x8eed0)" (* "*") (pointer_expression "*(code **)(pcVar16 + 0x8eed0)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8eed0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8eed0)" (( "(") (binary_expression "pcVar16 + 0x8eed0" (identifier "pcVar16") (+ "+") (number_literal "0x8eed0")) () ")"))))) () ")")) (argument_list "(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2)" (( "(") (pointer_expression "&uStack_3cc" (& "&") (identifier "uStack_3cc")) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (binary_expression "*(int *)(pcVar16 + 0x8e6a8) + -0x59b0" (pointer_expression "*(int *)(pcVar16 + 0x8e6a8)" (* "*") (cast_expression "(int *)(pcVar16 + 0x8e6a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 0x8e6a8)" (( "(") (binary_expression "pcVar16 + 0x8e6a8" (identifier "pcVar16") (+ "+") (number_literal "0x8e6a8")) () ")")))) (+ "+") (number_literal "-0x59b0")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" (identifier "piVar12") (= "=") (cast_expression "(int *)piVar8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);" (call_expression "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8e7f0))" (( "(") (pointer_expression "**(code **)(pcVar16 + 0x8e7f0)" (* "*") (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8e7f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8e7f0)" (( "(") (binary_expression "pcVar16 + 0x8e7f0" (identifier "pcVar16") (+ "+") (number_literal "0x8e7f0")) () ")"))))) () ")")) (argument_list "(piVar12,0,&uStack_3cc,4)" (( "(") (identifier "piVar12") (, ",") (number_literal "0") (, ",") (pointer_expression "&uStack_3cc" (& "&") (identifier "uStack_3cc")) (, ",") (number_literal "4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" (else "else") (compound_statement "{\n    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);\n    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;\nLAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }\n    piVar12 = (int *)piVar8[3];\n    uVar2 = 0;\n    uStack_3cc = 0x5e;\n    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);\n  }" ({ "{") (expression_statement "pcVar14 = *(code **)(pcVar16 + 0x8e7f0);" (assignment_expression "pcVar14 = *(code **)(pcVar16 + 0x8e7f0)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8e7f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8e7f0)" (( "(") (binary_expression "pcVar16 + 0x8e7f0" (identifier "pcVar16") (+ "+") (number_literal "0x8e7f0")) () ")"))))) (; ";")) (if_statement "if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;" (if "if") (parenthesized_expression "(acStack_3ac[0] < '\0')" (( "(") (binary_expression "acStack_3ac[0] < '\0'" (subscript_expression "acStack_3ac[0]" (identifier "acStack_3ac") ([ "[") (number_literal "0") (] "]")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001ec9c;" (goto "goto") (statement_identifier "LAB_0001ec9c") (; ";"))) (labeled_statement "LAB_0001ece4:\n    if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" (statement_identifier "LAB_0001ece4") (: ":") (if_statement "if (uVar2 == 0x7f) {\n      cStack_3cb = '?';\n    }\n    else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" (if "if") (parenthesized_expression "(uVar2 == 0x7f)" (( "(") (binary_expression "uVar2 == 0x7f" (identifier "uVar2") (== "==") (number_literal "0x7f")) () ")")) (compound_statement "{\n      cStack_3cb = '?';\n    }" ({ "{") (expression_statement "cStack_3cb = '?';" (assignment_expression "cStack_3cb = '?'" (identifier "cStack_3cb") (= "=") (char_literal "'?'" (' "'") (character "?") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" (else "else") (compound_statement "{\n      cStack_3cb = acStack_3ac[0] + '@';\n    }" ({ "{") (expression_statement "cStack_3cb = acStack_3ac[0] + '@';" (assignment_expression "cStack_3cb = acStack_3ac[0] + '@'" (identifier "cStack_3cb") (= "=") (binary_expression "acStack_3ac[0] + '@'" (subscript_expression "acStack_3ac[0]" (identifier "acStack_3ac") ([ "[") (number_literal "0") (] "]")) (+ "+") (char_literal "'@'" (' "'") (character "@") (' "'")))) (; ";")) (} "}"))))) (expression_statement "piVar12 = (int *)piVar8[3];" (assignment_expression "piVar12 = (int *)piVar8[3]" (identifier "piVar12") (= "=") (cast_expression "(int *)piVar8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_3cc = 0x5e;" (assignment_expression "uStack_3cc = 0x5e" (identifier "uStack_3cc") (= "=") (number_literal "0x5e")) (; ";")) (expression_statement "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);" (call_expression "(**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2)" (parenthesized_expression "(**(code **)(pcVar16 + 0x8e7f0))" (( "(") (pointer_expression "**(code **)(pcVar16 + 0x8e7f0)" (* "*") (pointer_expression "*(code **)(pcVar16 + 0x8e7f0)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8e7f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8e7f0)" (( "(") (binary_expression "pcVar16 + 0x8e7f0" (identifier "pcVar16") (+ "+") (number_literal "0x8e7f0")) () ")"))))) () ")")) (argument_list "(piVar12,0,&uStack_3cc,2)" (( "(") (identifier "piVar12") (, ",") (number_literal "0") (, ",") (pointer_expression "&uStack_3cc" (& "&") (identifier "uStack_3cc")) (, ",") (number_literal "2") () ")"))) (; ";")) (} "}")))))) (expression_statement "uVar7 = *puVar10;" (assignment_expression "uVar7 = *puVar10" (identifier "uVar7") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (if_statement "if (uStack_3c4 == uVar7) {\n    return uVar7;\n  }" (if "if") (parenthesized_expression "(uStack_3c4 == uVar7)" (( "(") (binary_expression "uStack_3c4 == uVar7" (identifier "uStack_3c4") (== "==") (identifier "uVar7")) () ")")) (compound_statement "{\n    return uVar7;\n  }" ({ "{") (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar16 + 0x8f084))();" (call_expression "(**(code **)(pcVar16 + 0x8f084))()" (parenthesized_expression "(**(code **)(pcVar16 + 0x8f084))" (( "(") (pointer_expression "**(code **)(pcVar16 + 0x8f084)" (* "*") (pointer_expression "*(code **)(pcVar16 + 0x8f084)" (* "*") (cast_expression "(code **)(pcVar16 + 0x8f084)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x8f084)" (( "(") (binary_expression "pcVar16 + 0x8f084" (identifier "pcVar16") (+ "+") (number_literal "0x8f084")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (uVar2 - 0x20 < 0x5f) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar2 - 0x20 < 0x5f)" (( "(") (binary_expression "uVar2 - 0x20 < 0x5f" (binary_expression "uVar2 - 0x20" (identifier "uVar2") (- "-") (number_literal "0x20")) (< "<") (number_literal "0x5f")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (uVar2 < 0xa0) {\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }\n  else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" (if "if") (parenthesized_expression "(uVar2 < 0xa0)" (( "(") (binary_expression "uVar2 < 0xa0" (identifier "uVar2") (< "<") (number_literal "0xa0")) () ")")) (compound_statement "{\n    if (-1 < (char)uVar2) {\n      return 2;\n    }\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;\n  }" ({ "{") (if_statement "if (-1 < (char)uVar2) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(-1 < (char)uVar2)" (( "(") (binary_expression "-1 < (char)uVar2" (number_literal "-1") (< "<") (cast_expression "(char)uVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar2"))) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (if_statement "if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0xdc) == 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0xdc) == 0" (pointer_expression "*(int *)(iVar11 + 0xdc)" (* "*") (cast_expression "(int *)(iVar11 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xdc)" (( "(") (binary_expression "iVar11 + 0xdc" (identifier "iVar11") (+ "+") (number_literal "0xdc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ede0;" (goto "goto") (statement_identifier "LAB_0001ede0") (; ";"))) (} "}")) (else_clause "else {\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" (else "else") (compound_statement "{\n    iVar11 = *piVar12;\n    if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }\n  }" ({ "{") (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (if_statement "if (*(int *)(iVar11 + 0xdc) == 0) {\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0xdc) == 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0xdc) == 0" (pointer_expression "*(int *)(iVar11 + 0xdc)" (* "*") (cast_expression "(int *)(iVar11 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xdc)" (( "(") (binary_expression "iVar11 + 0xdc" (identifier "iVar11") (+ "+") (number_literal "0xdc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }\nLAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }\n      return 4;\n    }" ({ "{") (if_statement "if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37)" (( "(") (binary_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x1090) + 0xc)" (( "(") (binary_expression "*(int *)(iVar11 + 0x1090) + 0xc" (pointer_expression "*(int *)(iVar11 + 0x1090)" (* "*") (cast_expression "(int *)(iVar11 + 0x1090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1090)" (( "(") (binary_expression "iVar11 + 0x1090" (identifier "iVar11") (+ "+") (number_literal "0x1090")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0x37")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_0001ede0:\n      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }" (statement_identifier "LAB_0001ede0") (: ":") (if_statement "if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {\n        return (uint)(0xbf < uVar2);\n      }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37)" (( "(") (binary_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar11 + 0x1090) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x1090) + 0xc)" (( "(") (binary_expression "*(int *)(iVar11 + 0x1090) + 0xc" (pointer_expression "*(int *)(iVar11 + 0x1090)" (* "*") (cast_expression "(int *)(iVar11 + 0x1090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1090)" (( "(") (binary_expression "iVar11 + 0x1090" (identifier "iVar11") (+ "+") (number_literal "0x1090")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0x37")) () ")")) (compound_statement "{\n        return (uint)(0xbf < uVar2);\n      }" ({ "{") (return_statement "return (uint)(0xbf < uVar2);" (return "return") (call_expression "(uint)(0xbf < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xbf < uVar2)" (( "(") (binary_expression "0xbf < uVar2" (number_literal "0xbf") (< "<") (identifier "uVar2")) () ")"))) (; ";")) (} "}")))) (return_statement "return 4;" (return "return") (number_literal "4") (; ";")) (} "}"))) (} "}")))) (return_statement "return uVar2 < 0xc0 ^ 1;" (return "return") (binary_expression "uVar2 < 0xc0 ^ 1" (binary_expression "uVar2 < 0xc0" (identifier "uVar2") (< "<") (number_literal "0xc0")) (^ "^") (number_literal "1")) (; ";")) (} "}")))

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

int function_1(type_1 p)

{
  type_2 *puVar1;
  type_3 var_1;
  int var_3;
  int var_9;
  int var_4;
  type_4 *ch;
  type_5 md5buf [16];
  type_5 outbuf [20];
  type_5 data [260];
  
  puVar1 = PTR___stack_chk_guard_000adcd4;
  var_1 = p->chap_num_attributes;
  ch = &p->pending_input_data;
  var_9 = *(int *)PTR___stack_chk_guard_000adcd4;
LAB_0001e6f4:
  if (var_1 == 0) goto LAB_0001e7c4;
  var_1 = (type_3)(p->chap_num_attributes_processed < (int)var_1);
  if (var_1 != 0) {
    if (p->chap_current_attribute == -1) goto LAB_0001e7c4;
    while( true ) {
      var_3 = var_2(ch);
      var_4 = p->chap_current_datalen;
      if (var_3 < var_4) break;
      while( true ) {
        var_5(ch,data,var_4);
        var_6(ch,p->chap_current_datalen);
        var_3 = p->chap_current_attribute;
        if (var_3 == 3) {
                    /* WARNING: Subroutine does not return */
          var_7(p->conf,0x11);
        }
        if (var_3 == 0x11) {
          if (data[0] != 0x85) {
            (*(*p->plug)->closing)(p->plug,var_8 + -0x5a48,8000,0);
            var_1 = 1;
            goto LAB_0001e898;
          }
        }
        else if (var_3 == 0) {
          if (data[0] == '\0') {
            var_1 = p->chap_num_attributes;
            p->state = 2;
            p->chap_current_attribute = -1;
            p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;
            goto LAB_0001e6f4;
          }
          (*(*p->plug)->closing)(p->plug,var_8 + -0x5a80,8000,0);
          var_1 = 1;
          goto LAB_0001e898;
        }
        var_3 = p->state;
        var_1 = p->chap_num_attributes;
        p->chap_current_attribute = -1;
        p->chap_num_attributes_processed = p->chap_num_attributes_processed + 1;
        while( true ) {
          if ((var_3 != 8) || (p->chap_num_attributes_processed < (int)var_1)) goto LAB_0001e6f4;
          p->chap_num_attributes = 0;
          p->chap_num_attributes_processed = 0;
          p->chap_current_datalen = 0;
LAB_0001e7c4:
          var_3 = var_2(ch);
          if (var_3 < 2) goto LAB_0001e894;
          var_5(ch,data,2);
          var_6(ch,2);
          if (p->chap_num_attributes != 0) break;
          if (data[0] != '\x01') {
            (*(*p->plug)->closing)(p->plug,var_8 + -0x5af0,8000,0);
            var_1 = 1;
            goto LAB_0001e898;
          }
          var_1 = (type_3)data[1];
          if (var_1 == 0) {
            (*(*p->plug)->closing)(p->plug,var_8 + -0x5ab8,8000,0);
            var_1 = 1;
            goto LAB_0001e898;
          }
          var_3 = p->state;
          p->chap_num_attributes = var_1;
        }
        if (p->chap_current_attribute != -1) break;
        p->chap_current_attribute = (type_3)data[0];
        p->chap_current_datalen = (type_3)data[1];
        var_3 = var_2(ch);
        var_4 = p->chap_current_datalen;
        if (var_3 < var_4) goto LAB_0001e894;
      }
    }
LAB_0001e894:
    var_1 = 1;
  }
LAB_0001e898:
  if (var_9 == *(int *)puVar1) {
    return var_1;
  }
  (*(type_6 *)PTR___stack_chk_fail_000adca4)();
                    /* WARNING: Subroutine does not return */
  var_7(*(type_7 **)(var_9 + 0x74),0x10);
}


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

uint MASKED(int param_1)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  char *pcVar6;
  uint uVar7;
  int *piVar8;
  undefined4 *puVar9;
  uint *puVar10;
  int iVar11;
  int *piVar12;
  undefined *puVar13;
  code *pcVar14;
  undefined4 uVar15;
  code *pcVar16;
  undefined4 uVar17;
  undefined1 uStack_3cc;
  char cStack_3cb;
  uint uStack_3c4;
  int iStack_3c0;
  char *pcStack_3bc;
  int *piStack_3b8;
  undefined4 uStack_3b4;
  char acStack_3ac [12];
  undefined *puStack_3a0;
  undefined4 uStack_398;
  undefined2 uStack_394;
  undefined1 uStack_392;
  undefined1 auStack_391 [509];
  int *piStack_194;
  int iStack_18c;
  int iStack_188;
  undefined4 uStack_184;
  undefined *puStack_180;
  code *pcStack_17c;
  undefined1 auStack_154 [16];
  undefined4 local_144;
  undefined1 auStack_140 [16];
  byte local_130;
  byte local_12f;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_000adcd4;
  uVar2 = *(uint *)(param_1 + 0x78);
  iVar11 = param_1 + 0x34;
  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;
LAB_0001e6f4:
  if (uVar2 == 0) goto LAB_0001e7c4;
  uVar2 = (uint)(*(int *)(param_1 + 0x7c) < (int)uVar2);
  if (uVar2 != 0) {
    if (*(int *)(param_1 + 0x80) == -1) goto LAB_0001e7c4;
    while (iVar3 = bufchain_size(iVar11), *(int *)(param_1 + 0x84) <= iVar3) {
      while( true ) {
        bufchain_fetch(iVar11,&local_130);
        bufchain_consume(iVar11,*(undefined4 *)(param_1 + 0x84));
        iVar3 = *(int *)(param_1 + 0x80);
        if (iVar3 == 3) {
          uVar15 = *(undefined4 *)(param_1 + 0x84);
          local_144 = 0x1010410;
          uVar17 = conf_get_str(*(undefined4 *)(param_1 + 0x74),0x11);
          uVar4 = (*(code *)PTR_hmacmd5_make_context_000ad49c)(0);
          uVar2 = (*(code *)PTR_strlen_000adc28)(uVar17);
          if (uVar2 < 0x41) {
            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,uVar17,uVar2);
          }
          else {
            (*(code *)PTR_MD5Simple_000ad4a0)(uVar17,uVar2,auStack_154);
            (*(code *)PTR_hmacmd5_key_000ad4a4)(uVar4,auStack_154,0x10);
          }
          (*(code *)PTR_hmacmd5_do_hmac_000ad4a8)(uVar4,&local_130,uVar15,auStack_140);
          (*(code *)PTR_hmacmd5_free_context_000ad4ac)(uVar4);
          (**(code **)(**(int **)(param_1 + 8) + 8))(*(int **)(param_1 + 8),&local_144,0x14);
          iVar3 = *(int *)(param_1 + 0x44);
        }
        else {
          if (iVar3 == 0x11) {
            if (local_130 != 0x85) {
              (**(code **)(**(int **)(param_1 + 0xc) + 4))
                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a48,8000,0);
              uVar2 = 1;
              goto LAB_0001e898;
            }
          }
          else if (iVar3 == 0) {
            if (local_130 != 0) {
              (**(code **)(**(int **)(param_1 + 0xc) + 4))
                        (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5a80,8000,0);
              uVar2 = 1;
              goto LAB_0001e898;
            }
            uVar2 = *(uint *)(param_1 + 0x78);
            *(undefined4 *)(param_1 + 0x44) = 2;
            *(undefined4 *)(param_1 + 0x80) = 0xffffffff;
            *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;
            goto LAB_0001e6f4;
          }
          iVar3 = *(int *)(param_1 + 0x44);
        }
        uVar2 = *(uint *)(param_1 + 0x78);
        *(undefined4 *)(param_1 + 0x80) = 0xffffffff;
        *(int *)(param_1 + 0x7c) = *(int *)(param_1 + 0x7c) + 1;
        while( true ) {
          if ((iVar3 != 8) || (*(int *)(param_1 + 0x7c) < (int)uVar2)) goto LAB_0001e6f4;
          *(undefined4 *)(param_1 + 0x78) = 0;
          *(undefined4 *)(param_1 + 0x7c) = 0;
          *(undefined4 *)(param_1 + 0x84) = 0;
LAB_0001e7c4:
          iVar3 = bufchain_size(iVar11);
          if (iVar3 < 2) goto LAB_0001e894;
          bufchain_fetch(iVar11,&local_130,2);
          bufchain_consume(iVar11,2);
          if (*(int *)(param_1 + 0x78) != 0) break;
          if (local_130 != 1) {
            (**(code **)(**(int **)(param_1 + 0xc) + 4))
                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5af0,8000,0);
            uVar2 = 1;
            goto LAB_0001e898;
          }
          uVar2 = (uint)local_12f;
          if (uVar2 == 0) {
            (**(code **)(**(int **)(param_1 + 0xc) + 4))
                      (*(int **)(param_1 + 0xc),PTR_DAT_000ad2c8 + -0x5ab8,8000);
            uVar2 = 1;
            goto LAB_0001e898;
          }
          iVar3 = *(int *)(param_1 + 0x44);
          *(uint *)(param_1 + 0x78) = uVar2;
        }
        if (*(int *)(param_1 + 0x80) != -1) break;
        *(uint *)(param_1 + 0x80) = (uint)local_130;
        *(uint *)(param_1 + 0x84) = (uint)local_12f;
        iVar3 = bufchain_size(iVar11);
        if (iVar3 < *(int *)(param_1 + 0x84)) goto LAB_0001e894;
      }
    }
LAB_0001e894:
    uVar2 = 1;
  }
LAB_0001e898:
  if (local_2c == *(int *)puVar1) {
    return uVar2;
  }
  pcVar16 = proxy_socks5_selectchap;
  iVar3 = local_2c;
  puVar13 = PTR___stack_chk_fail_000adca4;
  (*(code *)PTR___stack_chk_fail_000adca4)();
  puStack_3a0 = puVar13 + 0x96800;
  uStack_184 = 0x1010410;
  piVar12 = *(int **)(puVar13 + 0x8f244);
  puStack_180 = puVar1;
  piStack_194 = (int *)*piVar12;
  iStack_18c = param_1;
  iStack_188 = iVar11;
  pcStack_17c = pcVar16;
  pcVar5 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x10);
  pcVar6 = (char *)conf_get_str(*(undefined4 *)(iVar3 + 0x74),0x11);
  if ((*pcVar5 == '\0') && (*pcVar6 == '\0')) {
    puVar9 = (undefined4 *)(*(int *)(puStack_3a0 + -0x7fc8) - 0x59f8);
    (**(code **)(**(int **)(iVar3 + 0xc) + 4))(*(int **)(iVar3 + 0xc),puVar9,8000,0);
  }
  else {
    uStack_394 = 0x8502;
    uStack_398 = 0x1021101;
    uVar2 = (**(code **)(puStack_3a0 + -0x7668))(pcVar5);
    if (uVar2 < 0x100) {
      iVar11 = 8;
      if (uVar2 == 0) {
        uVar2 = 1;
        uStack_392 = 1;
      }
      else {
        iVar11 = uVar2 + 7;
        uStack_392 = (undefined1)uVar2;
      }
    }
    else {
      iVar11 = 0x106;
      uVar2 = 0xff;
      uStack_392 = 0xff;
    }
    (**(code **)(puStack_3a0 + -0x7640))(auStack_391,pcVar5,uVar2,0x1fb);
    puVar9 = &uStack_398;
    (**(code **)(**(int **)(iVar3 + 8) + 8))(*(int **)(iVar3 + 8),puVar9,iVar11);
    *(undefined4 *)(iVar3 + 0x80) = 0xffffffff;
    *(undefined4 *)(iVar3 + 0x78) = 0;
    *(undefined4 *)(iVar3 + 0x7c) = 0;
    *(undefined4 *)(iVar3 + 0x84) = 0;
    *(undefined4 *)(iVar3 + 0x44) = 8;
  }
  if (piStack_194 == (int *)*piVar12) {
    return 1;
  }
  pcVar16 = *(code **)(puStack_3a0 + -0x75ec);
  uVar17 = 0x1ec1c;
  piVar8 = piStack_194;
  (*pcVar16)();
  uVar2 = (uint)puVar9 & 0xff;
  puVar10 = *(uint **)(pcVar16 + 0x8f0b4);
  acStack_3ac[0] = (char)puVar9;
  uStack_3c4 = *puVar10;
  pcVar14 = *(code **)(pcVar16 + 0x8e7f0);
  iStack_3c0 = iVar3;
  pcStack_3bc = pcVar5;
  piStack_3b8 = piVar12;
  uStack_3b4 = uVar17;
  if (uVar2 - 0x20 < 0x5f) {
LAB_0001ec9c:
    piVar12 = (int *)piVar8[3];
    uVar2 = 0;
    (*pcVar14)(piVar12,0,acStack_3ac,1);
  }
  else if ((*(int *)(*piVar8 + 0xdc) == 0) && (*(int *)(*(int *)(*piVar8 + 0x1090) + 0xc) != 0x37))
  {
    if (0x9f < uVar2) {
      pcVar14 = *(code **)(pcVar16 + 0x8e7f0);
      goto LAB_0001ec9c;
    }
    if (-1 < acStack_3ac[0]) goto LAB_0001ece4;
    (**(code **)(pcVar16 + 0x8eed0))(&uStack_3cc,1,5,*(int *)(pcVar16 + 0x8e6a8) + -0x59b0,uVar2);
    uVar2 = 0;
    piVar12 = (int *)piVar8[3];
    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,4);
  }
  else {
    pcVar14 = *(code **)(pcVar16 + 0x8e7f0);
    if (acStack_3ac[0] < '\0') goto LAB_0001ec9c;
LAB_0001ece4:
    if (uVar2 == 0x7f) {
      cStack_3cb = '?';
    }
    else {
      cStack_3cb = acStack_3ac[0] + '@';
    }
    piVar12 = (int *)piVar8[3];
    uVar2 = 0;
    uStack_3cc = 0x5e;
    (**(code **)(pcVar16 + 0x8e7f0))(piVar12,0,&uStack_3cc,2);
  }
  uVar7 = *puVar10;
  if (uStack_3c4 == uVar7) {
    return uVar7;
  }
  (**(code **)(pcVar16 + 0x8f084))();
  if (uVar2 - 0x20 < 0x5f) {
    return 1;
  }
  if (uVar2 < 0xa0) {
    if (-1 < (char)uVar2) {
      return 2;
    }
    iVar11 = *piVar12;
    if (*(int *)(iVar11 + 0xdc) == 0) goto LAB_0001ede0;
  }
  else {
    iVar11 = *piVar12;
    if (*(int *)(iVar11 + 0xdc) == 0) {
      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) != 0x37) {
        return 1;
      }
LAB_0001ede0:
      if (*(int *)(*(int *)(iVar11 + 0x1090) + 0xc) == 0x37) {
        return (uint)(0xbf < uVar2);
      }
      return 4;
    }
  }
  return uVar2 < 0xc0 ^ 1;
}

