
len_and_sockaddr * str2sockaddr(char *host,int port,sa_family_t af,int ai_flags)

{
  undefined *puVar1;
  addrinfo *paVar2;
  char *pcVar3;
  int iVar4;
  len_and_sockaddr *plVar5;
  undefined *puVar6;
  char *pcVar7;
  int iVar8;
  sockaddr *psVar9;
  undefined2 in_register_00000018;
  int iVar10;
  uint uVar11;
  char *pcVar12;
  addrinfo *result;
  addrinfo hint;
  in6_addr in6;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  iVar4 = CONCAT22(in_register_00000018,af);
  result = (addrinfo *)0x0;
  iVar8 = *(int *)PTR___stack_chk_guard_0012b14c;
  if (*host == '[') {
    pcVar12 = host + 1;
    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);
    if (pcVar3 == (char *)0x0) {
      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;
    }
    else {
      iVar10 = (int)pcVar3 - (int)pcVar12;
      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;
      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;
    }
LAB_000fbc2c:
    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);
    if ((ai_flags & 2U) == 0) {
      ai_flags = 0;
      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;
      return (len_and_sockaddr *)0x0;
    }
    goto LAB_000fbad4;
  }
  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a);
  pcVar12 = host;
  if ((pcVar3 != (char *)0x0) &&
     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)) {
    iVar10 = (int)pcVar3 - (int)host;
LAB_000fbbb4:
    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);
    pcVar7 = pcVar3 + 1;
    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&
       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),
        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {
      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;
      goto LAB_000fbc2c;
    }
  }
  if (iVar4 == 10) {
LAB_000fba48:
    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);
    if (0 < iVar10) {
      uVar11 = port & 0xffff;
      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);
      ((len_and_sockaddr *)ai_flags)->len = 0x1c;
      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;
      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];
      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];
      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];
      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;
      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];
      goto LAB_000fb9e0;
    }
  }
  else {
    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);
    if (iVar10 != 0) {
      uVar11 = port & 0xffff;
      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);
      ((len_and_sockaddr *)ai_flags)->len = 0x10;
      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;
      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;
      goto LAB_000fb9d8;
    }
    if (iVar4 != 2) goto LAB_000fba48;
  }
  pcVar3 = &SUB_00000002;
  hint.ai_protocol = 0;
  hint.ai_flags = ai_flags & 0xfffffffd;
  hint.ai_addrlen = 0;
  hint.ai_addr = (sockaddr *)0x0;
  hint.ai_canonname = (char *)0x0;
  hint.ai_next = (addrinfo *)0x0;
  hint.ai_socktype = 2;
  hint.ai_family = iVar4;
  iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result);
  uVar11 = port;
  if (iVar4 == 0) goto LAB_000fbb38;
  while( true ) {
    ai_flags = ai_flags & 2;
    (*(code *)PTR_bb_error_msg_0012a1c8)
              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);
    if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;
LAB_000fb9e0:
    while( true ) {
      if (result != (addrinfo *)0x0) {
        (*(code *)PTR_freeaddrinfo_0012adcc)();
      }
      port = uVar11;
      if (iVar8 == *(int *)puVar1) {
        return (len_and_sockaddr *)ai_flags;
      }
LAB_000fbb30:
      (*(code *)PTR___stack_chk_fail_0012b0c8)();
LAB_000fbb38:
      paVar2 = result;
      uVar11 = port;
      if (result == (addrinfo *)0x0) break;
      uVar11 = port & 0xffff;
      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);
      puVar6 = PTR_memcpy_0012b150;
      psVar9 = paVar2->ai_addr;
      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;
      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);
      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;
      if (pcVar12 == &DAT_0000000a) {
LAB_000fb9d8:
        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;
      }
      else if (pcVar12 == pcVar3) {
        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;
      }
    }
  }
LAB_000fbad4:
  plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)();
  return plVar5;
}



undefined4 * FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)

{
  undefined2 uVar1;
  undefined *puVar2;
  char *pcVar3;
  int iVar4;
  undefined4 *puVar5;
  undefined *puVar6;
  char *pcVar7;
  undefined4 uVar8;
  int iVar9;
  char *pcVar10;
  int local_60;
  uint local_5c;
  int local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  local_60 = 0;
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  if (*param_1 == '[') {
    pcVar10 = param_1 + 1;
    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);
    if (pcVar3 == (char *)0x0) {
      puVar6 = PTR_FUN_0012a1a8 + -0xd00;
    }
    else {
      iVar9 = (int)pcVar3 - (int)pcVar10;
      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;
      puVar6 = PTR_FUN_0012a1a8 + -0xd00;
    }
LAB_000fbc2c:
    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);
    if ((param_4 & 2) != 0) goto LAB_000fbad4;
    if (local_2c == *(int *)puVar2) {
      return (undefined4 *)0x0;
    }
    goto LAB_000fbb30;
  }
  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);
  pcVar10 = param_1;
  if ((pcVar3 != (char *)0x0) &&
     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {
    iVar9 = (int)pcVar3 - (int)param_1;
LAB_000fbbb4:
    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);
    pcVar7 = pcVar3 + 1;
    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&
       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||
        (0xffff < param_2)))) {
      puVar6 = PTR_FUN_0012a1a8 + -0xcec;
      goto LAB_000fbc2c;
    }
  }
  uVar1 = (undefined2)param_2;
  if (param_3 == 10) {
LAB_000fba48:
    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);
    if (iVar9 < 1) {
LAB_000fba6c:
      local_50 = 0;
      local_5c = param_4 & 0xfffffffd;
      local_4c = 0;
      local_48 = 0;
      local_44 = 0;
      local_40 = 0;
      local_54 = 2;
      local_58 = param_3;
      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);
      iVar9 = local_60;
      if ((iVar4 == 0) && (local_60 != 0)) {
        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);
        puVar6 = PTR_memcpy_0012b150;
        uVar8 = *(undefined4 *)(iVar9 + 0x14);
        *puVar5 = *(undefined4 *)(iVar9 + 0x10);
        (*(code *)puVar6)(puVar5 + 1,uVar8);
        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;
        if (*(short *)(puVar5 + 1) == 2) {
          *(undefined2 *)((int)puVar5 + 6) = uVar1;
        }
      }
      else {
        puVar5 = (undefined4 *)(param_4 & 2);
        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);
        if (puVar5 != (undefined4 *)0x0) {
LAB_000fbad4:
          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();
          return puVar5;
        }
      }
    }
    else {
      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);
      *puVar5 = 0x1c;
      *(undefined2 *)(puVar5 + 1) = 10;
      puVar5[3] = local_3c;
      puVar5[4] = local_38;
      puVar5[5] = local_34;
      *(undefined2 *)((int)puVar5 + 6) = uVar1;
      puVar5[6] = local_30;
    }
  }
  else {
    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);
    if (iVar9 == 0) {
      if (param_3 != 2) goto LAB_000fba48;
      goto LAB_000fba6c;
    }
    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);
    *puVar5 = 0x10;
    *(undefined2 *)(puVar5 + 1) = 2;
    puVar5[2] = local_5c;
LAB_000fb9d8:
    *(undefined2 *)((int)puVar5 + 6) = uVar1;
  }
  if (local_60 != 0) {
    (*(code *)PTR_freeaddrinfo_0012adcc)();
  }
  if (local_2c == *(int *)puVar2) {
    return puVar5;
  }
LAB_000fbb30:
  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();
  return puVar5;
}


lui gp,0x3
addiu gp,gp,0x6884
addu gp,gp,t9
addiu sp,sp,-0x78
li v0,0x5b
sw s5,0x64(sp)
sw s8,0x70(sp)
or s8,sp,zero
sw s4,0x60(sp)
or s4,a2,zero
sw s3,0x5c(sp)
or s3,a0,zero
sw s1,0x54(sp)
or s1,a1,zero
sw s0,0x50(sp)
or s0,a3,zero
sw ra,0x74(sp)
sw s7,0x6c(sp)
sw s6,0x68(sp)
sw s2,0x58(sp)
sw gp,0x10(sp)
lw s5,-0x7004(gp)
lbu v1,0x0(a0)
sw zero,0x18(s8)
lw a1,0x0(s5)
sw a1,0x4c(s8)
bne v1,v0,0x000fb968
_lw t9,-0x71fc(gp)
addiu s6,a0,0x1
li a1,0x5d
jalr t9
_or a0,s6,zero
lw gp,0x10(s8)
bne v0,zero,0x000fbc74
_or s2,v0,zero
lw a0,-0x7fa8(gp)
or a1,s3,zero
b 0x000fbc2c
_addiu a0,a0,-0xd00
lw t9,-0x7394(gp)
jalr t9
_li a1,0x3a
lw gp,0x10(s8)
bne v0,zero,0x000fbb94
_or s2,v0,zero
or s6,s3,zero
li v0,0xa
beq s4,v0,0x000fba48
_lw t9,-0x6f80(gp)
addiu s7,s8,0x1c
or a0,s6,zero
jalr t9
_or a1,s7,zero
beq v0,zero,0x000fba3c
_lw gp,0x10(s8)
lw t9,-0x7f80(gp)
li a0,0x14
jalr t9
_andi s1,s1,0xffff
or s0,v0,zero
lw gp,0x10(s8)
li v0,0x10
sw v0,0x0(s0)
li v0,0x2
sh v0,0x4(s0)
lw v0,0x1c(s8)
sw v0,0x8(s0)
sh s1,0x6(s0)
lw a0,0x18(s8)
beq a0,zero,0x000fb9f4
_lw t9,-0x7384(gp)
jalr t9
_nop
lw gp,0x10(s8)
lw a0,0x4c(s8)
or v0,s0,zero
lw v1,0x0(s5)
bne a0,v1,0x000fbb30
_lw t9,-0x7088(gp)
or sp,s8,zero
lw ra,0x74(sp)
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x78
li v0,0x2
beq s4,v0,0x000fba6c
_li v1,-0x3
lw t9,-0x6ff8(gp)
addiu a2,s8,0x3c
li a0,0xa
jalr t9
_or a1,s6,zero
addiu s7,s8,0x1c
bgtz v0,0x000fbae0
_lw gp,0x10(s8)
li v1,-0x3
lw t9,-0x743c(gp)
li s2,0x2
sw zero,0x28(s8)
and v1,s0,v1
sw zero,0x2c(s8)
addiu a3,s8,0x18
sw zero,0x30(s8)
or a1,zero,zero
sw zero,0x34(s8)
sw zero,0x38(s8)
or a2,s7,zero
sw s4,0x20(s8)
or a0,s6,zero
sw s2,0x24(s8)
jalr t9
_sw v1,0x1c(s8)
beq v0,zero,0x000fbb38
_lw gp,0x10(s8)
lw a0,-0x7fa8(gp)
or a1,s3,zero
lw t9,-0x7f88(gp)
andi s0,s0,0x2
jalr t9
_addiu a0,a0,-0xd00
beq s0,zero,0x000fb9dc
_lw gp,0x10(s8)
lw t9,-0x7f9c(gp)
jalr t9
_nop
lw t9,-0x7f80(gp)
li a0,0x20
jalr t9
_andi s1,s1,0xffff
or s0,v0,zero
lw gp,0x10(s8)
li v0,0x1c
sw v0,0x0(s0)
li v0,0xa
sh v0,0x4(s0)
lw v0,0x3c(s8)
sw v0,0xc(s0)
lw v0,0x40(s8)
sw v0,0x10(s0)
lw v0,0x44(s8)
sw v0,0x14(s0)
lw v0,0x48(s8)
sh s1,0x6(s0)
b 0x000fb9dc
_sw v0,0x18(s0)
jalr t9
_nop
lw s4,0x18(s8)
beq s4,zero,0x000fbab4
_lw t9,-0x7f20(gp)
lw a0,0x10(s4)
andi s1,s1,0xffff
jalr t9
_addiu a0,a0,0x4
lw gp,0x10(s8)
or s0,v0,zero
lw a2,0x10(s4)
addiu a0,v0,0x4
lw a1,0x14(s4)
lw t9,-0x7000(gp)
jalr t9
_sw a2,0x0(v0)
li v1,0xa
lhu v0,0x4(s0)
beq v0,v1,0x000fb9d8
_lw gp,0x10(s8)
bne v0,s2,0x000fb9e0
_lw a0,0x18(s8)
b 0x000fb9dc
_sh s1,0x6(s0)
lw t9,-0x71fc(gp)
li a1,0x3a
or a0,s3,zero
jalr t9
_or s6,s3,zero
bne s2,v0,0x000fb984
_lw gp,0x10(s8)
subu a2,s2,s6
lw t9,-0x7e80(gp)
or a1,s6,zero
addiu v0,a2,0x8
addiu a2,a2,0x1
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
bal 0x000f8624
_addiu a0,sp,0x10
li v1,0x3a
lbu a1,0x0(s2)
or s6,v0,zero
lw gp,0x10(s8)
beq a1,v1,0x000fbbfc
_addiu a0,s2,0x1
lbu v0,0x1(s2)
beq v0,zero,0x000fb984
_addiu a0,s2,0x2
lw t9,-0x7e7c(gp)
li a2,0xa
jalr t9
_or a1,zero,zero
lw gp,0x10(s8)
lw v1,-0x7f3c(gp)
lw v1,0x0(v1)
lw v1,0x0(v1)
beq v1,zero,0x000fbc5c
_lw a0,-0x7fa8(gp)
or a1,s3,zero
addiu a0,a0,-0xcec
lw t9,-0x7f88(gp)
jalr t9
_andi s0,s0,0x2
bne s0,zero,0x000fbad4
_lw gp,0x10(s8)
lw a0,0x4c(s8)
or s0,zero,zero
lw v1,0x0(s5)
beq a0,v1,0x000fba08
_or v0,s0,zero
b 0x000fbb30
_lw t9,-0x7088(gp)
lui v1,0x1
sltu v1,v0,v1
bne v1,zero,0x000fb984
_or s1,v0,zero
b 0x000fbc24
_lw a0,-0x7fa8(gp)
lbu v0,0x1(v0)
li v1,0x3a
beq v0,v1,0x000fbbb4
_subu a2,s2,s6
beq v0,zero,0x000fbbb4
_lw a0,-0x7fa8(gp)
or a1,s3,zero
b 0x000fbc2c
_addiu a0,a0,-0xd00
(translation_unit "undefined4 * FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)\n\n{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}\n\n" (function_definition "undefined4 * FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)\n\n{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}" type_identifier (pointer_declarator "* FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)" * (function_declarator "FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)" identifier (parameter_list "(char *param_1,uint param_2,int param_3,uint param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) )))) (compound_statement "{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }" if (parenthesized_expression "(*param_1 == '[')" ( (binary_expression "*param_1 == '['" (pointer_expression "*param_1" * identifier) == (char_literal "'['" ' character ')) )) (compound_statement "{\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }" { (expression_statement "pcVar10 = param_1 + 1;" (assignment_expression "pcVar10 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" identifier = (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,0x5d)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" { (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xd00;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xd00" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0xd00" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" else (compound_statement "{\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" { (expression_statement "iVar9 = (int)pcVar3 - (int)pcVar10;" (assignment_expression "iVar9 = (int)pcVar3 - (int)pcVar10" identifier = (binary_expression "(int)pcVar3 - (int)pcVar10" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;" if (parenthesized_expression "((pcVar3[1] == ':') || (pcVar3[1] == '\0'))" ( (binary_expression "(pcVar3[1] == ':') || (pcVar3[1] == '\0')" (parenthesized_expression "(pcVar3[1] == ':')" ( (binary_expression "pcVar3[1] == ':'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) || (parenthesized_expression "(pcVar3[1] == '\0')" ( (binary_expression "pcVar3[1] == '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000fbbb4;" goto statement_identifier ;)) (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xd00;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xd00" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0xd00" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);" statement_identifier : (expression_statement "(*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);" (call_expression "(*(code *)PTR_FUN_0012a1c8)(puVar6,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1c8)" ( (pointer_expression "*(code *)PTR_FUN_0012a1c8" * (cast_expression "(code *)PTR_FUN_0012a1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,param_1)" ( identifier , identifier ))) ;)) (if_statement "if ((param_4 & 2) != 0) goto LAB_000fbad4;" if (parenthesized_expression "((param_4 & 2) != 0)" ( (binary_expression "(param_4 & 2) != 0" (parenthesized_expression "(param_4 & 2)" ( (binary_expression "param_4 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000fbad4;" goto statement_identifier ;)) (if_statement "if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return (undefined4 *)0x0;\n    }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (goto_statement "goto LAB_000fbb30;" goto statement_identifier ;) })) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" identifier = (cast_expression "(char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" ( (pointer_expression "*(code *)PTR_strrchr_0012adbc" * (cast_expression "(code *)PTR_strrchr_0012adbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x3a)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar10 = param_1;" (assignment_expression "pcVar10 = param_1" identifier = identifier) ;) (if_statement "if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" if (parenthesized_expression "((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7))" ( (binary_expression "(pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)" (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)" ( (comma_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" identifier = (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x3a)" ( identifier , number_literal ))))) , (binary_expression "pcVar3 == pcVar7" identifier == identifier)) ))) )) (compound_statement "{\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" { (expression_statement "iVar9 = (int)pcVar3 - (int)param_1;" (assignment_expression "iVar9 = (int)pcVar3 - (int)param_1" identifier = (binary_expression "(int)pcVar3 - (int)param_1" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);" statement_identifier : (expression_statement "pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);" (assignment_expression "pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" identifier = (cast_expression "(char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" identifier (argument_list "(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" ( (binary_expression "&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8)" (pointer_expression "&stack0xffffff98" & identifier) + (unary_expression "-(iVar9 + 8U & 0xfffffff8)" - (parenthesized_expression "(iVar9 + 8U & 0xfffffff8)" ( (binary_expression "iVar9 + 8U & 0xfffffff8" (binary_expression "iVar9 + 8U" identifier + number_literal) & number_literal) )))) , identifier , (binary_expression "iVar9 + 1" identifier + number_literal) ))))) ;)) (expression_statement "pcVar7 = pcVar3 + 1;" (assignment_expression "pcVar7 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (if_statement "if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" if (parenthesized_expression "(((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2))))" ( (binary_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))" (parenthesized_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'))" ( (binary_expression "(*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" (parenthesized_expression "(*pcVar3 == ':')" ( (binary_expression "*pcVar3 == ':'" (pointer_expression "*pcVar3" * identifier) == (char_literal "':'" ' character ')) )) || (parenthesized_expression "(pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" ( (comma_expression "pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'" (assignment_expression "pcVar7 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) , (binary_expression "pcVar3[1] != '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))" ( (parenthesized_expression "(param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2))" ( (comma_expression "param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)" (assignment_expression "param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10)" identifier = (call_expression "(*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a2d4)" ( (pointer_expression "*(code *)PTR_FUN_0012a2d4" * (cast_expression "(code *)PTR_FUN_0012a2d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7,0,10)" ( identifier , number_literal , number_literal )))) , (binary_expression "**(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)" (binary_expression "**(int **)PTR_DAT_0012a214 != 0" (pointer_expression "**(int **)PTR_DAT_0012a214" * (pointer_expression "*(int **)PTR_DAT_0012a214" * (cast_expression "(int **)PTR_DAT_0012a214" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) != number_literal) || (parenthesized_expression "(0xffff < param_2)" ( (binary_expression "0xffff < param_2" number_literal < identifier) )))) )) ))) )) (compound_statement "{\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" { (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xcec;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xcec" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0xcec" identifier + number_literal)) ;) (goto_statement "goto LAB_000fbc2c;" goto statement_identifier ;) })) })) (expression_statement "uVar1 = (undefined2)param_2;" (assignment_expression "uVar1 = (undefined2)param_2" identifier = (cast_expression "(undefined2)param_2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (if_statement "if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" if (parenthesized_expression "(param_3 == 10)" ( (binary_expression "param_3 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }" { (labeled_statement "LAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);" (assignment_expression "iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c)" identifier = (call_expression "(*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c)" (parenthesized_expression "(*(code *)PTR_inet_pton_0012b158)" ( (pointer_expression "*(code *)PTR_inet_pton_0012b158" * (cast_expression "(code *)PTR_inet_pton_0012b158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,pcVar10,&local_3c)" ( number_literal , identifier , (pointer_expression "&local_3c" & identifier) )))) ;)) (if_statement "if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }" { (labeled_statement "LAB_000fba6c:\n      local_50 = 0;" statement_identifier : (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;)) (expression_statement "local_5c = param_4 & 0xfffffffd;" (assignment_expression "local_5c = param_4 & 0xfffffffd" identifier = (binary_expression "param_4 & 0xfffffffd" identifier & number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 2;" (assignment_expression "local_54 = 2" identifier = number_literal) ;) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60)" identifier = (call_expression "(*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60)" (parenthesized_expression "(*(code *)PTR_getaddrinfo_0012ad14)" ( (pointer_expression "*(code *)PTR_getaddrinfo_0012ad14" * (cast_expression "(code *)PTR_getaddrinfo_0012ad14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,0,&local_5c,&local_60)" ( identifier , number_literal , (pointer_expression "&local_5c" & identifier) , (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "iVar9 = local_60;" (assignment_expression "iVar9 = local_60" identifier = identifier) ;) (if_statement "if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" if (parenthesized_expression "((iVar4 == 0) && (local_60 != 0))" ( (binary_expression "(iVar4 == 0) && (local_60 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a230)" ( (pointer_expression "*(code *)PTR_FUN_0012a230" * (cast_expression "(code *)PTR_FUN_0012a230" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(local_60 + 0x10) + 4)" ( (binary_expression "*(int *)(local_60 + 0x10) + 4" (pointer_expression "*(int *)(local_60 + 0x10)" * (cast_expression "(int *)(local_60 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + 0x10)" ( (binary_expression "local_60 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar6 = PTR_memcpy_0012b150;" (assignment_expression "puVar6 = PTR_memcpy_0012b150" identifier = identifier) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar9 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = *(undefined4 *)(iVar9 + 0x10);" (assignment_expression "*puVar5 = *(undefined4 *)(iVar9 + 0x10)" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)puVar6)(puVar5 + 1,uVar8);" (call_expression "(*(code *)puVar6)(puVar5 + 1,uVar8)" (parenthesized_expression "(*(code *)puVar6)" ( (pointer_expression "*(code *)puVar6" * (cast_expression "(code *)puVar6" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5 + 1,uVar8)" ( (binary_expression "puVar5 + 1" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;" if (parenthesized_expression "(*(short *)(puVar5 + 1) == 10)" ( (binary_expression "*(short *)(puVar5 + 1) == 10" (pointer_expression "*(short *)(puVar5 + 1)" * (cast_expression "(short *)(puVar5 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000fb9d8;" goto statement_identifier ;)) (if_statement "if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }" if (parenthesized_expression "(*(short *)(puVar5 + 1) == 2)" ( (binary_expression "*(short *)(puVar5 + 1) == 2" (pointer_expression "*(short *)(puVar5 + 1)" * (cast_expression "(short *)(puVar5 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }" { (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" * (cast_expression "(undefined2 *)((int)puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" else (compound_statement "{\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" { (expression_statement "puVar5 = (undefined4 *)(param_4 & 2);" (assignment_expression "puVar5 = (undefined4 *)(param_4 & 2)" identifier = (cast_expression "(undefined4 *)(param_4 & 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 & 2)" ( (binary_expression "param_4 & 2" identifier & number_literal) )))) ;) (expression_statement "(*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);" (call_expression "(*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1c8)" ( (pointer_expression "*(code *)PTR_FUN_0012a1c8" * (cast_expression "(code *)PTR_FUN_0012a1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_0012a1a8 + -0xd00,param_1)" ( (binary_expression "PTR_FUN_0012a1a8 + -0xd00" identifier + number_literal) , identifier ))) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }" { (labeled_statement "LAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();" statement_identifier : (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1b4)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a1b4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1b4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1b4" * (cast_expression "(code *)PTR_FUN_0012a1b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (return_statement "return puVar5;" return identifier ;) })) }))) }) (else_clause "else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" else (compound_statement "{\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a1d0)(0x20)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1d0)" ( (pointer_expression "*(code *)PTR_FUN_0012a1d0" * (cast_expression "(code *)PTR_FUN_0012a1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar5 = 0x1c;" (assignment_expression "*puVar5 = 0x1c" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 1) = 10;" (assignment_expression "*(undefined2 *)(puVar5 + 1) = 10" (pointer_expression "*(undefined2 *)(puVar5 + 1)" * (cast_expression "(undefined2 *)(puVar5 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[3] = local_3c;" (assignment_expression "puVar5[3] = local_3c" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[4] = local_38;" (assignment_expression "puVar5[4] = local_38" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = local_34;" (assignment_expression "puVar5[5] = local_34" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" * (cast_expression "(undefined2 *)((int)puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar5[6] = local_30;" (assignment_expression "puVar5[6] = local_30" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" else (compound_statement "{\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" { (expression_statement "iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);" (assignment_expression "iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c)" identifier = (call_expression "(*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c)" (parenthesized_expression "(*(code *)PTR_inet_aton_0012b1d0)" ( (pointer_expression "*(code *)PTR_inet_aton_0012b1d0" * (cast_expression "(code *)PTR_inet_aton_0012b1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,&local_5c)" ( identifier , (pointer_expression "&local_5c" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }" { (if_statement "if (param_3 != 2) goto LAB_000fba48;" if (parenthesized_expression "(param_3 != 2)" ( (binary_expression "param_3 != 2" identifier != number_literal) )) (goto_statement "goto LAB_000fba48;" goto statement_identifier ;)) (goto_statement "goto LAB_000fba6c;" goto statement_identifier ;) })) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a1d0)(0x14)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1d0)" ( (pointer_expression "*(code *)PTR_FUN_0012a1d0" * (cast_expression "(code *)PTR_FUN_0012a1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*puVar5 = 0x10;" (assignment_expression "*puVar5 = 0x10" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 1) = 2;" (assignment_expression "*(undefined2 *)(puVar5 + 1) = 2" (pointer_expression "*(undefined2 *)(puVar5 + 1)" * (cast_expression "(undefined2 *)(puVar5 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[2] = local_5c;" (assignment_expression "puVar5[2] = local_5c" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;" statement_identifier : (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" * (cast_expression "(undefined2 *)((int)puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) }))) (if_statement "if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }" { (expression_statement "(*(code *)PTR_freeaddrinfo_0012adcc)();" (call_expression "(*(code *)PTR_freeaddrinfo_0012adcc)()" (parenthesized_expression "(*(code *)PTR_freeaddrinfo_0012adcc)" ( (pointer_expression "*(code *)PTR_freeaddrinfo_0012adcc" * (cast_expression "(code *)PTR_freeaddrinfo_0012adcc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar5;\n  }" { (return_statement "return puVar5;" return identifier ;) })) (labeled_statement "LAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit "len_and_sockaddr * str2sockaddr(char *host,int port,sa_family_t af,int ai_flags)\n\n{\n  undefined *puVar1;\n  addrinfo *paVar2;\n  char *pcVar3;\n  int iVar4;\n  len_and_sockaddr *plVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  sockaddr *psVar9;\n  undefined2 in_register_00000018;\n  int iVar10;\n  uint uVar11;\n  char *pcVar12;\n  addrinfo *result;\n  addrinfo hint;\n  in6_addr in6;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar4 = CONCAT22(in_register_00000018,af);\n  result = (addrinfo *)0x0;\n  iVar8 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*host == '[') {\n    pcVar12 = host + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);\n    if ((ai_flags & 2U) == 0) {\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }\n    goto LAB_000fbad4;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a);\n  pcVar12 = host;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)) {\n    iVar10 = (int)pcVar3 - (int)host;\nLAB_000fbbb4:\n    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  if (iVar4 == 10) {\nLAB_000fba48:\n    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);\n    if (0 < iVar10) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }\n  }\n  else {\n    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);\n    if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }\n    if (iVar4 != 2) goto LAB_000fba48;\n  }\n  pcVar3 = &SUB_00000002;\n  hint.ai_protocol = 0;\n  hint.ai_flags = ai_flags & 0xfffffffd;\n  hint.ai_addrlen = 0;\n  hint.ai_addr = (sockaddr *)0x0;\n  hint.ai_canonname = (char *)0x0;\n  hint.ai_next = (addrinfo *)0x0;\n  hint.ai_socktype = 2;\n  hint.ai_family = iVar4;\n  iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result);\n  uVar11 = port;\n  if (iVar4 == 0) goto LAB_000fbb38;\n  while( true ) {\n    ai_flags = ai_flags & 2;\n    (*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);\n    if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;\nLAB_000fb9e0:\n    while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }\n  }\nLAB_000fbad4:\n  plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)();\n  return plVar5;\n}\n\n" (function_definition "len_and_sockaddr * str2sockaddr(char *host,int port,sa_family_t af,int ai_flags)\n\n{\n  undefined *puVar1;\n  addrinfo *paVar2;\n  char *pcVar3;\n  int iVar4;\n  len_and_sockaddr *plVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  sockaddr *psVar9;\n  undefined2 in_register_00000018;\n  int iVar10;\n  uint uVar11;\n  char *pcVar12;\n  addrinfo *result;\n  addrinfo hint;\n  in6_addr in6;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar4 = CONCAT22(in_register_00000018,af);\n  result = (addrinfo *)0x0;\n  iVar8 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*host == '[') {\n    pcVar12 = host + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);\n    if ((ai_flags & 2U) == 0) {\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }\n    goto LAB_000fbad4;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a);\n  pcVar12 = host;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)) {\n    iVar10 = (int)pcVar3 - (int)host;\nLAB_000fbbb4:\n    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  if (iVar4 == 10) {\nLAB_000fba48:\n    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);\n    if (0 < iVar10) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }\n  }\n  else {\n    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);\n    if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }\n    if (iVar4 != 2) goto LAB_000fba48;\n  }\n  pcVar3 = &SUB_00000002;\n  hint.ai_protocol = 0;\n  hint.ai_flags = ai_flags & 0xfffffffd;\n  hint.ai_addrlen = 0;\n  hint.ai_addr = (sockaddr *)0x0;\n  hint.ai_canonname = (char *)0x0;\n  hint.ai_next = (addrinfo *)0x0;\n  hint.ai_socktype = 2;\n  hint.ai_family = iVar4;\n  iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result);\n  uVar11 = port;\n  if (iVar4 == 0) goto LAB_000fbb38;\n  while( true ) {\n    ai_flags = ai_flags & 2;\n    (*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);\n    if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;\nLAB_000fb9e0:\n    while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }\n  }\nLAB_000fbad4:\n  plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)();\n  return plVar5;\n}" type_identifier (pointer_declarator "* str2sockaddr(char *host,int port,sa_family_t af,int ai_flags)" * (function_declarator "str2sockaddr(char *host,int port,sa_family_t af,int ai_flags)" identifier (parameter_list "(char *host,int port,sa_family_t af,int ai_flags)" ( (parameter_declaration "char *host" primitive_type (pointer_declarator "*host" * identifier)) , (parameter_declaration "int port" primitive_type identifier) , (parameter_declaration "sa_family_t af" type_identifier identifier) , (parameter_declaration "int ai_flags" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  addrinfo *paVar2;\n  char *pcVar3;\n  int iVar4;\n  len_and_sockaddr *plVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  int iVar8;\n  sockaddr *psVar9;\n  undefined2 in_register_00000018;\n  int iVar10;\n  uint uVar11;\n  char *pcVar12;\n  addrinfo *result;\n  addrinfo hint;\n  in6_addr in6;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar4 = CONCAT22(in_register_00000018,af);\n  result = (addrinfo *)0x0;\n  iVar8 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*host == '[') {\n    pcVar12 = host + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);\n    if ((ai_flags & 2U) == 0) {\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }\n    goto LAB_000fbad4;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a);\n  pcVar12 = host;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)) {\n    iVar10 = (int)pcVar3 - (int)host;\nLAB_000fbbb4:\n    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  if (iVar4 == 10) {\nLAB_000fba48:\n    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);\n    if (0 < iVar10) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }\n  }\n  else {\n    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);\n    if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }\n    if (iVar4 != 2) goto LAB_000fba48;\n  }\n  pcVar3 = &SUB_00000002;\n  hint.ai_protocol = 0;\n  hint.ai_flags = ai_flags & 0xfffffffd;\n  hint.ai_addrlen = 0;\n  hint.ai_addr = (sockaddr *)0x0;\n  hint.ai_canonname = (char *)0x0;\n  hint.ai_next = (addrinfo *)0x0;\n  hint.ai_socktype = 2;\n  hint.ai_family = iVar4;\n  iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result);\n  uVar11 = port;\n  if (iVar4 == 0) goto LAB_000fbb38;\n  while( true ) {\n    ai_flags = ai_flags & 2;\n    (*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);\n    if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;\nLAB_000fb9e0:\n    while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }\n  }\nLAB_000fbad4:\n  plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)();\n  return plVar5;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "addrinfo *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "len_and_sockaddr *plVar5;" type_identifier (pointer_declarator "*plVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "sockaddr *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "undefined2 in_register_00000018;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "addrinfo *result;" type_identifier (pointer_declarator "*result" * identifier) ;) (declaration "addrinfo hint;" type_identifier identifier ;) (declaration "in6_addr in6;" type_identifier identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "iVar4 = CONCAT22(in_register_00000018,af);" (assignment_expression "iVar4 = CONCAT22(in_register_00000018,af)" identifier = (call_expression "CONCAT22(in_register_00000018,af)" identifier (argument_list "(in_register_00000018,af)" ( identifier , identifier )))) ;) (expression_statement "result = (addrinfo *)0x0;" (assignment_expression "result = (addrinfo *)0x0" identifier = (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iVar8 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*host == '[') {\n    pcVar12 = host + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);\n    if ((ai_flags & 2U) == 0) {\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }\n    goto LAB_000fbad4;\n  }" if (parenthesized_expression "(*host == '[')" ( (binary_expression "*host == '['" (pointer_expression "*host" * identifier) == (char_literal "'['" ' character ')) )) (compound_statement "{\n    pcVar12 = host + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);\n    if ((ai_flags & 2U) == 0) {\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }\n    goto LAB_000fbad4;\n  }" { (expression_statement "pcVar12 = host + 1;" (assignment_expression "pcVar12 = host + 1" identifier = (binary_expression "host + 1" identifier + number_literal)) ;) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d)" identifier = (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(pcVar12,0x5d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12,0x5d)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }" { (expression_statement "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;" (binary_expression "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00" (assignment_expression "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" identifier = (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier)) (ERROR ")9__f_l_0012a1a8" ) number_literal identifier) + number_literal) ;) }) (else_clause "else {\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }" else (compound_statement "{\n      iVar10 = (int)pcVar3 - (int)pcVar12;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;\n    }" { (expression_statement "iVar10 = (int)pcVar3 - (int)pcVar12;" (assignment_expression "iVar10 = (int)pcVar3 - (int)pcVar12" identifier = (binary_expression "(int)pcVar3 - (int)pcVar12" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;" if (parenthesized_expression "((pcVar3[1] == ':') || (pcVar3[1] == '\0'))" ( (binary_expression "(pcVar3[1] == ':') || (pcVar3[1] == '\0')" (parenthesized_expression "(pcVar3[1] == ':')" ( (binary_expression "pcVar3[1] == ':'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) || (parenthesized_expression "(pcVar3[1] == '\0')" ( (binary_expression "pcVar3[1] == '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000fbbb4;" goto statement_identifier ;)) (expression_statement "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00;" (binary_expression "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00" (assignment_expression "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" identifier = (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier)) (ERROR ")9__f_l_0012a1a8" ) number_literal identifier) + number_literal) ;) }))) (labeled_statement "LAB_000fbc2c:\n    (*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);" statement_identifier : (expression_statement "(*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host);" (call_expression "(*(code *)PTR_bb_error_msg_0012a1c8)(puVar6,host)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_0012a1c8)" ( (pointer_expression "*(code *)PTR_bb_error_msg_0012a1c8" * (cast_expression "(code *)PTR_bb_error_msg_0012a1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,host)" ( identifier , identifier ))) ;)) (if_statement "if ((ai_flags & 2U) == 0) {\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }" if (parenthesized_expression "((ai_flags & 2U) == 0)" ( (binary_expression "(ai_flags & 2U) == 0" (parenthesized_expression "(ai_flags & 2U)" ( (binary_expression "ai_flags & 2U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      ai_flags = 0;\n      if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;\n      return (len_and_sockaddr *)0x0;\n    }" { (expression_statement "ai_flags = 0;" (assignment_expression "ai_flags = 0" identifier = number_literal) ;) (if_statement "if (iVar8 != *(int *)puVar1) goto LAB_000fbb30;" if (parenthesized_expression "(iVar8 != *(int *)puVar1)" ( (binary_expression "iVar8 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (goto_statement "goto LAB_000fbb30;" goto statement_identifier ;)) (return_statement "return (len_and_sockaddr *)0x0;" return (cast_expression "(len_and_sockaddr *)0x0" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (goto_statement "goto LAB_000fbad4;" goto statement_identifier ;) })) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a)" identifier = (cast_expression "(char *)(*(code *)PTR_strrchr_0012adbc)(host,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_0012adbc)(host,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" ( (pointer_expression "*(code *)PTR_strrchr_0012adbc" * (cast_expression "(code *)PTR_strrchr_0012adbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(host,0x3a)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar12 = host;" (assignment_expression "pcVar12 = host" identifier = identifier) ;) (if_statement "if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)) {\n    iVar10 = (int)pcVar3 - (int)host;\nLAB_000fbbb4:\n    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" if (parenthesized_expression "((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7))" ( (binary_expression "(pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)" (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7)" ( (comma_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a), pcVar3 == pcVar7" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(host,0x3a)" identifier = (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(host,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(host,0x3a)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(host,0x3a)" ( identifier , number_literal ))))) , (binary_expression "pcVar3 == pcVar7" identifier == identifier)) ))) )) (compound_statement "{\n    iVar10 = (int)pcVar3 - (int)host;\nLAB_000fbbb4:\n    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" { (expression_statement "iVar10 = (int)pcVar3 - (int)host;" (assignment_expression "iVar10 = (int)pcVar3 - (int)host" identifier = (binary_expression "(int)pcVar3 - (int)host" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)host" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_000fbbb4:\n    pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);" statement_identifier : (expression_statement "pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1);" (assignment_expression "pcVar12 = safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1)" identifier = (call_expression "safe_strncpy(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1)" identifier (argument_list "(&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8),pcVar12,iVar10 + 1)" ( (binary_expression "&stack0xffffff98 + -(iVar10 + 8U & 0xfffffff8)" (pointer_expression "&stack0xffffff98" & identifier) + (unary_expression "-(iVar10 + 8U & 0xfffffff8)" - (parenthesized_expression "(iVar10 + 8U & 0xfffffff8)" ( (binary_expression "iVar10 + 8U & 0xfffffff8" (binary_expression "iVar10 + 8U" identifier + number_literal) & number_literal) )))) , identifier , (binary_expression "iVar10 + 1" identifier + number_literal) )))) ;)) (expression_statement "pcVar7 = pcVar3 + 1;" (assignment_expression "pcVar7 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (if_statement "if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))) {\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" if (parenthesized_expression "(((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11))))" ( (binary_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))" (parenthesized_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'))" ( (binary_expression "(*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" (parenthesized_expression "(*pcVar3 == ':')" ( (binary_expression "*pcVar3 == ':'" (pointer_expression "*pcVar3" * identifier) == (char_literal "':'" ' character ')) )) || (parenthesized_expression "(pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" ( (comma_expression "pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'" (assignment_expression "pcVar7 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) , (binary_expression "pcVar3[1] != '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)))" ( (parenthesized_expression "(uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11))" ( (comma_expression "uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10),\n        **(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)" (assignment_expression "uVar11 = (*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10)" identifier = (call_expression "(*(code *)PTR_bb_strtoul_0012a2d4)(pcVar7,0,10)" (parenthesized_expression "(*(code *)PTR_bb_strtoul_0012a2d4)" ( (pointer_expression "*(code *)PTR_bb_strtoul_0012a2d4" * (cast_expression "(code *)PTR_bb_strtoul_0012a2d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7,0,10)" ( identifier , number_literal , number_literal )))) , (binary_expression "**(int **)PTR_bb_errno_0012a214 != 0 || (port = uVar11, 0xffff < uVar11)" (binary_expression "**(int **)PTR_bb_errno_0012a214 != 0" (pointer_expression "**(int **)PTR_bb_errno_0012a214" * (pointer_expression "*(int **)PTR_bb_errno_0012a214" * (cast_expression "(int **)PTR_bb_errno_0012a214" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) != number_literal) || (parenthesized_expression "(port = uVar11, 0xffff < uVar11)" ( (comma_expression "port = uVar11, 0xffff < uVar11" (assignment_expression "port = uVar11" identifier = identifier) , (binary_expression "0xffff < uVar11" number_literal < identifier)) )))) )) ))) )) (compound_statement "{\n      puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" { (expression_statement "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec;" (binary_expression "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xcec" (assignment_expression "puVar6 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" identifier = (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier)) (ERROR ")9__f_l_0012a1a8" ) number_literal identifier) + number_literal) ;) (goto_statement "goto LAB_000fbc2c;" goto statement_identifier ;) })) })) (if_statement "if (iVar4 == 10) {\nLAB_000fba48:\n    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);\n    if (0 < iVar10) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }\n  }\n  else {\n    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);\n    if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }\n    if (iVar4 != 2) goto LAB_000fba48;\n  }" if (parenthesized_expression "(iVar4 == 10)" ( (binary_expression "iVar4 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_000fba48:\n    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);\n    if (0 < iVar10) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }\n  }" { (labeled_statement "LAB_000fba48:\n    iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);" statement_identifier : (expression_statement "iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6);" (assignment_expression "iVar10 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6)" identifier = (call_expression "(*(code *)PTR_inet_pton_0012b158)(10,pcVar12,&in6)" (parenthesized_expression "(*(code *)PTR_inet_pton_0012b158)" ( (pointer_expression "*(code *)PTR_inet_pton_0012b158" * (cast_expression "(code *)PTR_inet_pton_0012b158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,pcVar12,&in6)" ( number_literal , identifier , (pointer_expression "&in6" & identifier) )))) ;)) (if_statement "if (0 < iVar10) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);\n      ((len_and_sockaddr *)ai_flags)->len = 0x1c;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];\n      (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      *(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];\n      goto LAB_000fb9e0;\n    }" { (expression_statement "uVar11 = port & 0xffff;" (assignment_expression "uVar11 = port & 0xffff" identifier = (binary_expression "port & 0xffff" identifier & number_literal)) ;) (expression_statement "ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20);" (assignment_expression "ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x20)" identifier = (call_expression "(*(code *)PTR_xzalloc_0012a1d0)(0x20)" (parenthesized_expression "(*(code *)PTR_xzalloc_0012a1d0)" ( (pointer_expression "*(code *)PTR_xzalloc_0012a1d0" * (cast_expression "(code *)PTR_xzalloc_0012a1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "((len_and_sockaddr *)ai_flags)->len = 0x1c;" (assignment_expression "((len_and_sockaddr *)ai_flags)->len = 0x1c" (field_expression "((len_and_sockaddr *)ai_flags)->len" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "(((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10;" (assignment_expression "(((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 10" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sa.sa_family" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sa" (parenthesized_expression "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0];" (assignment_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8) = in6.__in6_u.__u6_addr32[0]" (pointer_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8)" * (cast_expression "(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 8)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((len_and_sockaddr *)ai_flags)->u + 8)" ( (binary_expression "(int)&((len_and_sockaddr *)ai_flags)->u + 8" (cast_expression "(int)&((len_and_sockaddr *)ai_flags)->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((len_and_sockaddr *)ai_flags)->u" & (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))) = (subscript_expression "in6.__in6_u.__u6_addr32[0]" (field_expression "in6.__in6_u.__u6_addr32" (field_expression "in6.__in6_u" identifier . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1];" (assignment_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc) = in6.__in6_u.__u6_addr32[1]" (pointer_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc)" * (cast_expression "(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0xc)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((len_and_sockaddr *)ai_flags)->u + 0xc)" ( (binary_expression "(int)&((len_and_sockaddr *)ai_flags)->u + 0xc" (cast_expression "(int)&((len_and_sockaddr *)ai_flags)->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((len_and_sockaddr *)ai_flags)->u" & (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))) = (subscript_expression "in6.__in6_u.__u6_addr32[1]" (field_expression "in6.__in6_u.__u6_addr32" (field_expression "in6.__in6_u" identifier . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2];" (assignment_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10) = in6.__in6_u.__u6_addr32[2]" (pointer_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10)" * (cast_expression "(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x10)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((len_and_sockaddr *)ai_flags)->u + 0x10)" ( (binary_expression "(int)&((len_and_sockaddr *)ai_flags)->u + 0x10" (cast_expression "(int)&((len_and_sockaddr *)ai_flags)->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((len_and_sockaddr *)ai_flags)->u" & (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))) = (subscript_expression "in6.__in6_u.__u6_addr32[2]" (field_expression "in6.__in6_u.__u6_addr32" (field_expression "in6.__in6_u" identifier . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;" (assignment_expression "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin" (parenthesized_expression "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(in_port_t)port" ( (type_descriptor "in_port_t" type_identifier) ) identifier)) ;) (expression_statement "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3];" (assignment_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14) = in6.__in6_u.__u6_addr32[3]" (pointer_expression "*(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14)" * (cast_expression "(uint32_t *)((int)&((len_and_sockaddr *)ai_flags)->u + 0x14)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((len_and_sockaddr *)ai_flags)->u + 0x14)" ( (binary_expression "(int)&((len_and_sockaddr *)ai_flags)->u + 0x14" (cast_expression "(int)&((len_and_sockaddr *)ai_flags)->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((len_and_sockaddr *)ai_flags)->u" & (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))) = (subscript_expression "in6.__in6_u.__u6_addr32[3]" (field_expression "in6.__in6_u.__u6_addr32" (field_expression "in6.__in6_u" identifier . field_identifier) . field_identifier) [ number_literal ])) ;) (goto_statement "goto LAB_000fb9e0;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);\n    if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }\n    if (iVar4 != 2) goto LAB_000fba48;\n  }" else (compound_statement "{\n    iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);\n    if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }\n    if (iVar4 != 2) goto LAB_000fba48;\n  }" { (expression_statement "iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint);" (assignment_expression "iVar10 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint)" identifier = (call_expression "(*(code *)PTR_inet_aton_0012b1d0)(pcVar12,&hint)" (parenthesized_expression "(*(code *)PTR_inet_aton_0012b1d0)" ( (pointer_expression "*(code *)PTR_inet_aton_0012b1d0" * (cast_expression "(code *)PTR_inet_aton_0012b1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12,&hint)" ( identifier , (pointer_expression "&hint" & identifier) )))) ;) (if_statement "if (iVar10 != 0) {\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);\n      ((len_and_sockaddr *)ai_flags)->len = 0x10;\n      (((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;\n      (((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;\n      goto LAB_000fb9d8;\n    }" { (expression_statement "uVar11 = port & 0xffff;" (assignment_expression "uVar11 = port & 0xffff" identifier = (binary_expression "port & 0xffff" identifier & number_literal)) ;) (expression_statement "ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14);" (assignment_expression "ai_flags = (*(code *)PTR_xzalloc_0012a1d0)(0x14)" identifier = (call_expression "(*(code *)PTR_xzalloc_0012a1d0)(0x14)" (parenthesized_expression "(*(code *)PTR_xzalloc_0012a1d0)" ( (pointer_expression "*(code *)PTR_xzalloc_0012a1d0" * (cast_expression "(code *)PTR_xzalloc_0012a1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal )))) ;) (expression_statement "((len_and_sockaddr *)ai_flags)->len = 0x10;" (assignment_expression "((len_and_sockaddr *)ai_flags)->len = 0x10" (field_expression "((len_and_sockaddr *)ai_flags)->len" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "(((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2;" (assignment_expression "(((len_and_sockaddr *)ai_flags)->u).sa.sa_family = 2" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sa.sa_family" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sa" (parenthesized_expression "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags;" (assignment_expression "(((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo = hint.ai_flags" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin6.sin6_flowinfo" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin6" (parenthesized_expression "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "hint.ai_flags" identifier . field_identifier)) ;) (goto_statement "goto LAB_000fb9d8;" goto statement_identifier ;) })) (if_statement "if (iVar4 != 2) goto LAB_000fba48;" if (parenthesized_expression "(iVar4 != 2)" ( (binary_expression "iVar4 != 2" identifier != number_literal) )) (goto_statement "goto LAB_000fba48;" goto statement_identifier ;)) }))) (expression_statement "pcVar3 = &SUB_00000002;" (assignment_expression "pcVar3 = &SUB_00000002" identifier = (pointer_expression "&SUB_00000002" & identifier)) ;) (expression_statement "hint.ai_protocol = 0;" (assignment_expression "hint.ai_protocol = 0" (field_expression "hint.ai_protocol" identifier . field_identifier) = number_literal) ;) (expression_statement "hint.ai_flags = ai_flags & 0xfffffffd;" (assignment_expression "hint.ai_flags = ai_flags & 0xfffffffd" (field_expression "hint.ai_flags" identifier . field_identifier) = (binary_expression "ai_flags & 0xfffffffd" identifier & number_literal)) ;) (expression_statement "hint.ai_addrlen = 0;" (assignment_expression "hint.ai_addrlen = 0" (field_expression "hint.ai_addrlen" identifier . field_identifier) = number_literal) ;) (expression_statement "hint.ai_addr = (sockaddr *)0x0;" (assignment_expression "hint.ai_addr = (sockaddr *)0x0" (field_expression "hint.ai_addr" identifier . field_identifier) = (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "hint.ai_canonname = (char *)0x0;" (assignment_expression "hint.ai_canonname = (char *)0x0" (field_expression "hint.ai_canonname" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "hint.ai_next = (addrinfo *)0x0;" (assignment_expression "hint.ai_next = (addrinfo *)0x0" (field_expression "hint.ai_next" identifier . field_identifier) = (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "hint.ai_socktype = 2;" (assignment_expression "hint.ai_socktype = 2" (field_expression "hint.ai_socktype" identifier . field_identifier) = number_literal) ;) (expression_statement "hint.ai_family = iVar4;" (assignment_expression "hint.ai_family = iVar4" (field_expression "hint.ai_family" identifier . field_identifier) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result);" (assignment_expression "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result)" identifier = (call_expression "(*(code *)PTR_getaddrinfo_0012ad14)(pcVar12,0,&hint,&result)" (parenthesized_expression "(*(code *)PTR_getaddrinfo_0012ad14)" ( (pointer_expression "*(code *)PTR_getaddrinfo_0012ad14" * (cast_expression "(code *)PTR_getaddrinfo_0012ad14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12,0,&hint,&result)" ( identifier , number_literal , (pointer_expression "&hint" & identifier) , (pointer_expression "&result" & identifier) )))) ;) (expression_statement "uVar11 = port;" (assignment_expression "uVar11 = port" identifier = identifier) ;) (if_statement "if (iVar4 == 0) goto LAB_000fbb38;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000fbb38;" goto statement_identifier ;)) (while_statement "while( true ) {\n    ai_flags = ai_flags & 2;\n    (*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);\n    if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;\nLAB_000fb9e0:\n    while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    ai_flags = ai_flags & 2;\n    (*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);\n    if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;\nLAB_000fb9e0:\n    while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }\n  }" { (expression_statement "ai_flags = ai_flags & 2;" (assignment_expression "ai_flags = ai_flags & 2" identifier = (binary_expression "ai_flags & 2" identifier & number_literal)) ;) (expression_statement "(*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host);" (comma_expression "(*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00,host" (binary_expression "(*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0xd00" (call_expression "(*(code *)PTR_bb_error_msg_0012a1c8)\n              (PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_0012a1c8)" ( (pointer_expression "*(code *)PTR_bb_error_msg_0012a1c8" * (cast_expression "(code *)PTR_bb_error_msg_0012a1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)" ( (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier) ))) (ERROR "9__f_l_0012a1a8" number_literal identifier) + number_literal) , identifier) (ERROR ")" )) ;) (if_statement "if ((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0) break;" if (parenthesized_expression "((len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0)" ( (binary_expression "(len_and_sockaddr *)ai_flags != (len_and_sockaddr *)0x0" (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(len_and_sockaddr *)0x0" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000fb9e0:\n    while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }" statement_identifier : (while_statement "while( true ) {\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }\n      port = uVar11;\n      if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }\nLAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000fbb38:\n      paVar2 = result;\n      uVar11 = port;\n      if (result == (addrinfo *)0x0) break;\n      uVar11 = port & 0xffff;\n      ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);\n      puVar6 = PTR_memcpy_0012b150;\n      psVar9 = paVar2->ai_addr;\n      ((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;\n      (*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);\n      pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;\n      if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }\n    }" { (if_statement "if (result != (addrinfo *)0x0) {\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }" if (parenthesized_expression "(result != (addrinfo *)0x0)" ( (binary_expression "result != (addrinfo *)0x0" identifier != (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_freeaddrinfo_0012adcc)();\n      }" { (expression_statement "(*(code *)PTR_freeaddrinfo_0012adcc)();" (call_expression "(*(code *)PTR_freeaddrinfo_0012adcc)()" (parenthesized_expression "(*(code *)PTR_freeaddrinfo_0012adcc)" ( (pointer_expression "*(code *)PTR_freeaddrinfo_0012adcc" * (cast_expression "(code *)PTR_freeaddrinfo_0012adcc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "port = uVar11;" (assignment_expression "port = uVar11" identifier = identifier) ;) (if_statement "if (iVar8 == *(int *)puVar1) {\n        return (len_and_sockaddr *)ai_flags;\n      }" if (parenthesized_expression "(iVar8 == *(int *)puVar1)" ( (binary_expression "iVar8 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return (len_and_sockaddr *)ai_flags;\n      }" { (return_statement "return (len_and_sockaddr *)ai_flags;" return (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (labeled_statement "LAB_000fbb30:\n      (*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_000fbb38:\n      paVar2 = result;" statement_identifier : (expression_statement "paVar2 = result;" (assignment_expression "paVar2 = result" identifier = identifier) ;)) (expression_statement "uVar11 = port;" (assignment_expression "uVar11 = port" identifier = identifier) ;) (if_statement "if (result == (addrinfo *)0x0) break;" if (parenthesized_expression "(result == (addrinfo *)0x0)" ( (binary_expression "result == (addrinfo *)0x0" identifier == (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = port & 0xffff;" (assignment_expression "uVar11 = port & 0xffff" identifier = (binary_expression "port & 0xffff" identifier & number_literal)) ;) (expression_statement "ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4);" (assignment_expression "ai_flags = (*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4)" identifier = (call_expression "(*(code *)PTR_xmalloc_0012a230)(result->ai_addrlen + 4)" (parenthesized_expression "(*(code *)PTR_xmalloc_0012a230)" ( (pointer_expression "*(code *)PTR_xmalloc_0012a230" * (cast_expression "(code *)PTR_xmalloc_0012a230" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(result->ai_addrlen + 4)" ( (binary_expression "result->ai_addrlen + 4" (field_expression "result->ai_addrlen" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "puVar6 = PTR_memcpy_0012b150;" (assignment_expression "puVar6 = PTR_memcpy_0012b150" identifier = identifier) ;) (expression_statement "psVar9 = paVar2->ai_addr;" (assignment_expression "psVar9 = paVar2->ai_addr" identifier = (field_expression "paVar2->ai_addr" identifier -> field_identifier)) ;) (expression_statement "((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen;" (assignment_expression "((len_and_sockaddr *)ai_flags)->len = paVar2->ai_addrlen" (field_expression "((len_and_sockaddr *)ai_flags)->len" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (field_expression "paVar2->ai_addrlen" identifier -> field_identifier)) ;) (expression_statement "(*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9);" (call_expression "(*(code *)puVar6)(&((len_and_sockaddr *)ai_flags)->u,psVar9)" (parenthesized_expression "(*(code *)puVar6)" ( (pointer_expression "*(code *)puVar6" * (cast_expression "(code *)puVar6" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&((len_and_sockaddr *)ai_flags)->u,psVar9)" ( (pointer_expression "&((len_and_sockaddr *)ai_flags)->u" & (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) , identifier ))) ;) (expression_statement "pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family;" (assignment_expression "pcVar12 = (char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family" identifier = (cast_expression "(char *)(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(uint)(((len_and_sockaddr *)ai_flags)->u).sa.sa_family" (field_expression "(uint)(((len_and_sockaddr *)ai_flags)->u).sa" (call_expression "(uint)(((len_and_sockaddr *)ai_flags)->u)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) ))) . field_identifier) . field_identifier))) ;) (if_statement "if (pcVar12 == &DAT_0000000a) {\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }\n      else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }" if (parenthesized_expression "(pcVar12 == &DAT_0000000a)" ( (binary_expression "pcVar12 == &DAT_0000000a" identifier == (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\nLAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;\n      }" { (labeled_statement "LAB_000fb9d8:\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;" statement_identifier : (expression_statement "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11;" (assignment_expression "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)uVar11" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin" (parenthesized_expression "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(in_port_t)uVar11" ( (type_descriptor "in_port_t" type_identifier) ) identifier)) ;)) }) (else_clause "else if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }" else (if_statement "if (pcVar12 == pcVar3) {\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }" if (parenthesized_expression "(pcVar12 == pcVar3)" ( (binary_expression "pcVar12 == pcVar3" identifier == identifier) )) (compound_statement "{\n        (((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;\n      }" { (expression_statement "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port;" (assignment_expression "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port = (in_port_t)port" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin.sin_port" (field_expression "(((len_and_sockaddr *)ai_flags)->u).sin" (parenthesized_expression "(((len_and_sockaddr *)ai_flags)->u)" ( (field_expression "((len_and_sockaddr *)ai_flags)->u" (parenthesized_expression "((len_and_sockaddr *)ai_flags)" ( (cast_expression "(len_and_sockaddr *)ai_flags" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(in_port_t)port" ( (type_descriptor "in_port_t" type_identifier) ) identifier)) ;) })))) }))) })) (labeled_statement "LAB_000fbad4:\n  plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)();" statement_identifier : (expression_statement "plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)();" (assignment_expression "plVar5 = (len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)()" identifier = (cast_expression "(len_and_sockaddr *)(*(code *)PTR_xfunc_die_0012a1b4)()" ( (type_descriptor "len_and_sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xfunc_die_0012a1b4)()" (parenthesized_expression "(*(code *)PTR_xfunc_die_0012a1b4)" ( (pointer_expression "*(code *)PTR_xfunc_die_0012a1b4" * (cast_expression "(code *)PTR_xfunc_die_0012a1b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (return_statement "return plVar5;" return identifier ;) })))
(translation_unit "undefined4 * FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)\n\n{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}\n\n" (function_definition "undefined4 * FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)\n\n{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}" type_identifier (pointer_declarator "* FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)" * (function_declarator "FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)" identifier (parameter_list "(char *param_1,uint param_2,int param_3,uint param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) )))) (compound_statement "{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }" if (parenthesized_expression "(*param_1 == '[')" ( (binary_expression "*param_1 == '['" (pointer_expression "*param_1" * identifier) == (char_literal "'['" ' character ')) )) (compound_statement "{\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }" { (expression_statement "pcVar10 = param_1 + 1;" (assignment_expression "pcVar10 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" identifier = (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,0x5d)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" { (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xd00;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xd00" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0xd00" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" else (compound_statement "{\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" { (expression_statement "iVar9 = (int)pcVar3 - (int)pcVar10;" (assignment_expression "iVar9 = (int)pcVar3 - (int)pcVar10" identifier = (binary_expression "(int)pcVar3 - (int)pcVar10" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;" if (parenthesized_expression "((pcVar3[1] == ':') || (pcVar3[1] == '\0'))" ( (binary_expression "(pcVar3[1] == ':') || (pcVar3[1] == '\0')" (parenthesized_expression "(pcVar3[1] == ':')" ( (binary_expression "pcVar3[1] == ':'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) || (parenthesized_expression "(pcVar3[1] == '\0')" ( (binary_expression "pcVar3[1] == '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000fbbb4;" goto statement_identifier ;)) (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xd00;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xd00" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0xd00" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);" statement_identifier : (expression_statement "(*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);" (call_expression "(*(code *)PTR_FUN_0012a1c8)(puVar6,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1c8)" ( (pointer_expression "*(code *)PTR_FUN_0012a1c8" * (cast_expression "(code *)PTR_FUN_0012a1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,param_1)" ( identifier , identifier ))) ;)) (if_statement "if ((param_4 & 2) != 0) goto LAB_000fbad4;" if (parenthesized_expression "((param_4 & 2) != 0)" ( (binary_expression "(param_4 & 2) != 0" (parenthesized_expression "(param_4 & 2)" ( (binary_expression "param_4 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000fbad4;" goto statement_identifier ;)) (if_statement "if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return (undefined4 *)0x0;\n    }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (goto_statement "goto LAB_000fbb30;" goto statement_identifier ;) })) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" identifier = (cast_expression "(char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" ( (pointer_expression "*(code *)PTR_strrchr_0012adbc" * (cast_expression "(code *)PTR_strrchr_0012adbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x3a)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar10 = param_1;" (assignment_expression "pcVar10 = param_1" identifier = identifier) ;) (if_statement "if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" if (parenthesized_expression "((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7))" ( (binary_expression "(pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)" (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)" ( (comma_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" identifier = (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x3a)" ( identifier , number_literal ))))) , (binary_expression "pcVar3 == pcVar7" identifier == identifier)) ))) )) (compound_statement "{\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" { (expression_statement "iVar9 = (int)pcVar3 - (int)param_1;" (assignment_expression "iVar9 = (int)pcVar3 - (int)param_1" identifier = (binary_expression "(int)pcVar3 - (int)param_1" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);" statement_identifier : (expression_statement "pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);" (assignment_expression "pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" identifier = (cast_expression "(char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" identifier (argument_list "(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" ( (binary_expression "&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8)" (pointer_expression "&stack0xffffff98" & identifier) + (unary_expression "-(iVar9 + 8U & 0xfffffff8)" - (parenthesized_expression "(iVar9 + 8U & 0xfffffff8)" ( (binary_expression "iVar9 + 8U & 0xfffffff8" (binary_expression "iVar9 + 8U" identifier + number_literal) & number_literal) )))) , identifier , (binary_expression "iVar9 + 1" identifier + number_literal) ))))) ;)) (expression_statement "pcVar7 = pcVar3 + 1;" (assignment_expression "pcVar7 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (if_statement "if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" if (parenthesized_expression "(((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2))))" ( (binary_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))" (parenthesized_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'))" ( (binary_expression "(*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" (parenthesized_expression "(*pcVar3 == ':')" ( (binary_expression "*pcVar3 == ':'" (pointer_expression "*pcVar3" * identifier) == (char_literal "':'" ' character ')) )) || (parenthesized_expression "(pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" ( (comma_expression "pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'" (assignment_expression "pcVar7 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) , (binary_expression "pcVar3[1] != '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))" ( (parenthesized_expression "(param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2))" ( (comma_expression "param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)" (assignment_expression "param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10)" identifier = (call_expression "(*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a2d4)" ( (pointer_expression "*(code *)PTR_FUN_0012a2d4" * (cast_expression "(code *)PTR_FUN_0012a2d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar7,0,10)" ( identifier , number_literal , number_literal )))) , (binary_expression "**(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)" (binary_expression "**(int **)PTR_DAT_0012a214 != 0" (pointer_expression "**(int **)PTR_DAT_0012a214" * (pointer_expression "*(int **)PTR_DAT_0012a214" * (cast_expression "(int **)PTR_DAT_0012a214" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) != number_literal) || (parenthesized_expression "(0xffff < param_2)" ( (binary_expression "0xffff < param_2" number_literal < identifier) )))) )) ))) )) (compound_statement "{\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" { (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xcec;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xcec" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0xcec" identifier + number_literal)) ;) (goto_statement "goto LAB_000fbc2c;" goto statement_identifier ;) })) })) (expression_statement "uVar1 = (undefined2)param_2;" (assignment_expression "uVar1 = (undefined2)param_2" identifier = (cast_expression "(undefined2)param_2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (if_statement "if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" if (parenthesized_expression "(param_3 == 10)" ( (binary_expression "param_3 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }" { (labeled_statement "LAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);" (assignment_expression "iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c)" identifier = (call_expression "(*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c)" (parenthesized_expression "(*(code *)PTR_inet_pton_0012b158)" ( (pointer_expression "*(code *)PTR_inet_pton_0012b158" * (cast_expression "(code *)PTR_inet_pton_0012b158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,pcVar10,&local_3c)" ( number_literal , identifier , (pointer_expression "&local_3c" & identifier) )))) ;)) (if_statement "if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }" { (labeled_statement "LAB_000fba6c:\n      local_50 = 0;" statement_identifier : (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;)) (expression_statement "local_5c = param_4 & 0xfffffffd;" (assignment_expression "local_5c = param_4 & 0xfffffffd" identifier = (binary_expression "param_4 & 0xfffffffd" identifier & number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 2;" (assignment_expression "local_54 = 2" identifier = number_literal) ;) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60)" identifier = (call_expression "(*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60)" (parenthesized_expression "(*(code *)PTR_getaddrinfo_0012ad14)" ( (pointer_expression "*(code *)PTR_getaddrinfo_0012ad14" * (cast_expression "(code *)PTR_getaddrinfo_0012ad14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,0,&local_5c,&local_60)" ( identifier , number_literal , (pointer_expression "&local_5c" & identifier) , (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "iVar9 = local_60;" (assignment_expression "iVar9 = local_60" identifier = identifier) ;) (if_statement "if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" if (parenthesized_expression "((iVar4 == 0) && (local_60 != 0))" ( (binary_expression "(iVar4 == 0) && (local_60 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a230)" ( (pointer_expression "*(code *)PTR_FUN_0012a230" * (cast_expression "(code *)PTR_FUN_0012a230" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(local_60 + 0x10) + 4)" ( (binary_expression "*(int *)(local_60 + 0x10) + 4" (pointer_expression "*(int *)(local_60 + 0x10)" * (cast_expression "(int *)(local_60 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + 0x10)" ( (binary_expression "local_60 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar6 = PTR_memcpy_0012b150;" (assignment_expression "puVar6 = PTR_memcpy_0012b150" identifier = identifier) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar9 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = *(undefined4 *)(iVar9 + 0x10);" (assignment_expression "*puVar5 = *(undefined4 *)(iVar9 + 0x10)" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)puVar6)(puVar5 + 1,uVar8);" (call_expression "(*(code *)puVar6)(puVar5 + 1,uVar8)" (parenthesized_expression "(*(code *)puVar6)" ( (pointer_expression "*(code *)puVar6" * (cast_expression "(code *)puVar6" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5 + 1,uVar8)" ( (binary_expression "puVar5 + 1" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;" if (parenthesized_expression "(*(short *)(puVar5 + 1) == 10)" ( (binary_expression "*(short *)(puVar5 + 1) == 10" (pointer_expression "*(short *)(puVar5 + 1)" * (cast_expression "(short *)(puVar5 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000fb9d8;" goto statement_identifier ;)) (if_statement "if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }" if (parenthesized_expression "(*(short *)(puVar5 + 1) == 2)" ( (binary_expression "*(short *)(puVar5 + 1) == 2" (pointer_expression "*(short *)(puVar5 + 1)" * (cast_expression "(short *)(puVar5 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }" { (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" * (cast_expression "(undefined2 *)((int)puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" else (compound_statement "{\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" { (expression_statement "puVar5 = (undefined4 *)(param_4 & 2);" (assignment_expression "puVar5 = (undefined4 *)(param_4 & 2)" identifier = (cast_expression "(undefined4 *)(param_4 & 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 & 2)" ( (binary_expression "param_4 & 2" identifier & number_literal) )))) ;) (expression_statement "(*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);" (call_expression "(*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1c8)" ( (pointer_expression "*(code *)PTR_FUN_0012a1c8" * (cast_expression "(code *)PTR_FUN_0012a1c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_0012a1a8 + -0xd00,param_1)" ( (binary_expression "PTR_FUN_0012a1a8 + -0xd00" identifier + number_literal) , identifier ))) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }" { (labeled_statement "LAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();" statement_identifier : (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1b4)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a1b4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1b4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1b4" * (cast_expression "(code *)PTR_FUN_0012a1b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (return_statement "return puVar5;" return identifier ;) })) }))) }) (else_clause "else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" else (compound_statement "{\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a1d0)(0x20)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1d0)" ( (pointer_expression "*(code *)PTR_FUN_0012a1d0" * (cast_expression "(code *)PTR_FUN_0012a1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar5 = 0x1c;" (assignment_expression "*puVar5 = 0x1c" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 1) = 10;" (assignment_expression "*(undefined2 *)(puVar5 + 1) = 10" (pointer_expression "*(undefined2 *)(puVar5 + 1)" * (cast_expression "(undefined2 *)(puVar5 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[3] = local_3c;" (assignment_expression "puVar5[3] = local_3c" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[4] = local_38;" (assignment_expression "puVar5[4] = local_38" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = local_34;" (assignment_expression "puVar5[5] = local_34" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" * (cast_expression "(undefined2 *)((int)puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar5[6] = local_30;" (assignment_expression "puVar5[6] = local_30" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" else (compound_statement "{\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" { (expression_statement "iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);" (assignment_expression "iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c)" identifier = (call_expression "(*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c)" (parenthesized_expression "(*(code *)PTR_inet_aton_0012b1d0)" ( (pointer_expression "*(code *)PTR_inet_aton_0012b1d0" * (cast_expression "(code *)PTR_inet_aton_0012b1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,&local_5c)" ( identifier , (pointer_expression "&local_5c" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }" { (if_statement "if (param_3 != 2) goto LAB_000fba48;" if (parenthesized_expression "(param_3 != 2)" ( (binary_expression "param_3 != 2" identifier != number_literal) )) (goto_statement "goto LAB_000fba48;" goto statement_identifier ;)) (goto_statement "goto LAB_000fba6c;" goto statement_identifier ;) })) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_0012a1d0)(0x14)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1d0)" ( (pointer_expression "*(code *)PTR_FUN_0012a1d0" * (cast_expression "(code *)PTR_FUN_0012a1d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*puVar5 = 0x10;" (assignment_expression "*puVar5 = 0x10" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 1) = 2;" (assignment_expression "*(undefined2 *)(puVar5 + 1) = 2" (pointer_expression "*(undefined2 *)(puVar5 + 1)" * (cast_expression "(undefined2 *)(puVar5 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[2] = local_5c;" (assignment_expression "puVar5[2] = local_5c" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;" statement_identifier : (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" * (cast_expression "(undefined2 *)((int)puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) }))) (if_statement "if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }" { (expression_statement "(*(code *)PTR_freeaddrinfo_0012adcc)();" (call_expression "(*(code *)PTR_freeaddrinfo_0012adcc)()" (parenthesized_expression "(*(code *)PTR_freeaddrinfo_0012adcc)" ( (pointer_expression "*(code *)PTR_freeaddrinfo_0012adcc" * (cast_expression "(code *)PTR_freeaddrinfo_0012adcc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar5;\n  }" { (return_statement "return puVar5;" return identifier ;) })) (labeled_statement "LAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) , (binary_expression IDENT == IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression & IDENT) + (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) , IDENT , (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT )))) , (binary_expression (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) != LIT) || (parenthesized_expression ( (binary_expression LIT < IDENT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (return_statement return IDENT ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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 ( ))) ;) })) (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 ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined4 * FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)\n\n{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)" (* "*") (function_declarator "FUN_000fb8cc(char *param_1,uint param_2,int param_3,uint param_4)" (identifier "FUN_000fb8cc") (parameter_list "(char *param_1,uint param_2,int param_3,uint param_4)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")")))) (compound_statement "{\n  undefined2 uVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined *puVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  int local_60;\n  uint local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  local_60 = 0;\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }\n  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  pcVar10 = param_1;\n  if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }\n  uVar1 = (undefined2)param_2;\n  if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }\n  if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }\n  if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }\nLAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return puVar5;\n}" ({ "{") (declaration "undefined2 uVar1;" (type_identifier "undefined2") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (if_statement "if (*param_1 == '[') {\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }" (if "if") (parenthesized_expression "(*param_1 == '[')" (( "(") (binary_expression "*param_1 == '['" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'['" (' "'") (character "[") (' "'"))) () ")")) (compound_statement "{\n    pcVar10 = param_1 + 1;\n    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);\n    if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\nLAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);\n    if ((param_4 & 2) != 0) goto LAB_000fbad4;\n    if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }\n    goto LAB_000fbb30;\n  }" ({ "{") (expression_statement "pcVar10 = param_1 + 1;" (assignment_expression "pcVar10 = param_1 + 1" (identifier "pcVar10") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" (identifier "pcVar3") (= "=") (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" (( "(") (pointer_expression "*(code *)PTR_strchr_0012af54" (* "*") (cast_expression "(code *)PTR_strchr_0012af54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_0012af54"))) () ")")) (argument_list "(pcVar10,0x5d)" (( "(") (identifier "pcVar10") (, ",") (number_literal "0x5d") () ")"))))) (; ";")) (if_statement "if (pcVar3 == (char *)0x0) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }\n    else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" ({ "{") (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xd00;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xd00" (identifier "puVar6") (= "=") (binary_expression "PTR_FUN_0012a1a8 + -0xd00" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "-0xd00"))) (; ";")) (} "}")) (else_clause "else {\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" (else "else") (compound_statement "{\n      iVar9 = (int)pcVar3 - (int)pcVar10;\n      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;\n      puVar6 = PTR_FUN_0012a1a8 + -0xd00;\n    }" ({ "{") (expression_statement "iVar9 = (int)pcVar3 - (int)pcVar10;" (assignment_expression "iVar9 = (int)pcVar3 - (int)pcVar10" (identifier "iVar9") (= "=") (binary_expression "(int)pcVar3 - (int)pcVar10" (cast_expression "(int)pcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar3")) (- "-") (cast_expression "(int)pcVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar10")))) (; ";")) (if_statement "if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;" (if "if") (parenthesized_expression "((pcVar3[1] == ':') || (pcVar3[1] == '\0'))" (( "(") (binary_expression "(pcVar3[1] == ':') || (pcVar3[1] == '\0')" (parenthesized_expression "(pcVar3[1] == ':')" (( "(") (binary_expression "pcVar3[1] == ':'" (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar3[1] == '\0')" (( "(") (binary_expression "pcVar3[1] == '\0'" (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000fbbb4;" (goto "goto") (statement_identifier "LAB_000fbbb4") (; ";"))) (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xd00;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xd00" (identifier "puVar6") (= "=") (binary_expression "PTR_FUN_0012a1a8 + -0xd00" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "-0xd00"))) (; ";")) (} "}")))) (labeled_statement "LAB_000fbc2c:\n    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);" (statement_identifier "LAB_000fbc2c") (: ":") (expression_statement "(*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);" (call_expression "(*(code *)PTR_FUN_0012a1c8)(puVar6,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1c8)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1c8" (* "*") (cast_expression "(code *)PTR_FUN_0012a1c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1c8"))) () ")")) (argument_list "(puVar6,param_1)" (( "(") (identifier "puVar6") (, ",") (identifier "param_1") () ")"))) (; ";"))) (if_statement "if ((param_4 & 2) != 0) goto LAB_000fbad4;" (if "if") (parenthesized_expression "((param_4 & 2) != 0)" (( "(") (binary_expression "(param_4 & 2) != 0" (parenthesized_expression "(param_4 & 2)" (( "(") (binary_expression "param_4 & 2" (identifier "param_4") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fbad4;" (goto "goto") (statement_identifier "LAB_000fbad4") (; ";"))) (if_statement "if (local_2c == *(int *)puVar2) {\n      return (undefined4 *)0x0;\n    }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n      return (undefined4 *)0x0;\n    }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (goto_statement "goto LAB_000fbb30;" (goto "goto") (statement_identifier "LAB_000fbb30") (; ";")) (} "}"))) (expression_statement "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (identifier "pcVar3") (= "=") (cast_expression "(char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" (( "(") (pointer_expression "*(code *)PTR_strrchr_0012adbc" (* "*") (cast_expression "(code *)PTR_strrchr_0012adbc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strrchr_0012adbc"))) () ")")) (argument_list "(param_1,0x3a)" (( "(") (identifier "param_1") (, ",") (number_literal "0x3a") () ")"))))) (; ";")) (expression_statement "pcVar10 = param_1;" (assignment_expression "pcVar10 = param_1" (identifier "pcVar10") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" (if "if") (parenthesized_expression "((pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7))" (( "(") (binary_expression "(pcVar3 != (char *)0x0) &&\n     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)" (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)" (( "(") (comma_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" (identifier "pcVar7") (= "=") (cast_expression "(char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" (( "(") (pointer_expression "*(code *)PTR_strchr_0012af54" (* "*") (cast_expression "(code *)PTR_strchr_0012af54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_0012af54"))) () ")")) (argument_list "(param_1,0x3a)" (( "(") (identifier "param_1") (, ",") (number_literal "0x3a") () ")"))))) (, ",") (binary_expression "pcVar3 == pcVar7" (identifier "pcVar3") (== "==") (identifier "pcVar7"))) () ")"))) () ")")) (compound_statement "{\n    iVar9 = (int)pcVar3 - (int)param_1;\nLAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);\n    pcVar7 = pcVar3 + 1;\n    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }\n  }" ({ "{") (expression_statement "iVar9 = (int)pcVar3 - (int)param_1;" (assignment_expression "iVar9 = (int)pcVar3 - (int)param_1" (identifier "iVar9") (= "=") (binary_expression "(int)pcVar3 - (int)param_1" (cast_expression "(int)pcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar3")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (labeled_statement "LAB_000fbbb4:\n    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);" (statement_identifier "LAB_000fbbb4") (: ":") (expression_statement "pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);" (assignment_expression "pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" (identifier "pcVar10") (= "=") (cast_expression "(char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" (identifier "FUN_000f8624") (argument_list "(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1)" (( "(") (binary_expression "&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8)" (pointer_expression "&stack0xffffff98" (& "&") (identifier "stack0xffffff98")) (+ "+") (unary_expression "-(iVar9 + 8U & 0xfffffff8)" (- "-") (parenthesized_expression "(iVar9 + 8U & 0xfffffff8)" (( "(") (binary_expression "iVar9 + 8U & 0xfffffff8" (binary_expression "iVar9 + 8U" (identifier "iVar9") (+ "+") (number_literal "8U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (, ",") (identifier "pcVar10") (, ",") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1")) () ")"))))) (; ";"))) (expression_statement "pcVar7 = pcVar3 + 1;" (assignment_expression "pcVar7 = pcVar3 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))) {\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" (if "if") (parenthesized_expression "(((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2))))" (( "(") (binary_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&\n       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))" (parenthesized_expression "((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'))" (( "(") (binary_expression "(*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" (parenthesized_expression "(*pcVar3 == ':')" (( "(") (binary_expression "*pcVar3 == ':'" (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')" (( "(") (comma_expression "pcVar7 = pcVar3 + 2, pcVar3[1] != '\0'" (assignment_expression "pcVar7 = pcVar3 + 2" (identifier "pcVar7") (= "=") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2"))) (, ",") (binary_expression "pcVar3[1] != '\0'" (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)))" (( "(") (parenthesized_expression "(param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2))" (( "(") (comma_expression "param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)" (assignment_expression "param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10)" (identifier "param_2") (= "=") (call_expression "(*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a2d4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a2d4" (* "*") (cast_expression "(code *)PTR_FUN_0012a2d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a2d4"))) () ")")) (argument_list "(pcVar7,0,10)" (( "(") (identifier "pcVar7") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (, ",") (binary_expression "**(int **)PTR_DAT_0012a214 != 0 ||\n        (0xffff < param_2)" (binary_expression "**(int **)PTR_DAT_0012a214 != 0" (pointer_expression "**(int **)PTR_DAT_0012a214" (* "*") (pointer_expression "*(int **)PTR_DAT_0012a214" (* "*") (cast_expression "(int **)PTR_DAT_0012a214" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0012a214")))) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(0xffff < param_2)" (( "(") (binary_expression "0xffff < param_2" (number_literal "0xffff") (< "<") (identifier "param_2")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      puVar6 = PTR_FUN_0012a1a8 + -0xcec;\n      goto LAB_000fbc2c;\n    }" ({ "{") (expression_statement "puVar6 = PTR_FUN_0012a1a8 + -0xcec;" (assignment_expression "puVar6 = PTR_FUN_0012a1a8 + -0xcec" (identifier "puVar6") (= "=") (binary_expression "PTR_FUN_0012a1a8 + -0xcec" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "-0xcec"))) (; ";")) (goto_statement "goto LAB_000fbc2c;" (goto "goto") (statement_identifier "LAB_000fbc2c") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar1 = (undefined2)param_2;" (assignment_expression "uVar1 = (undefined2)param_2" (identifier "uVar1") (= "=") (cast_expression "(undefined2)param_2" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "param_2"))) (; ";")) (if_statement "if (param_3 == 10) {\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }\n  else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" (if "if") (parenthesized_expression "(param_3 == 10)" (( "(") (binary_expression "param_3 == 10" (identifier "param_3") (== "==") (number_literal "10")) () ")")) (compound_statement "{\nLAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);\n    if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }\n  }" ({ "{") (labeled_statement "LAB_000fba48:\n    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);" (statement_identifier "LAB_000fba48") (: ":") (expression_statement "iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);" (assignment_expression "iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c)" (parenthesized_expression "(*(code *)PTR_inet_pton_0012b158)" (( "(") (pointer_expression "*(code *)PTR_inet_pton_0012b158" (* "*") (cast_expression "(code *)PTR_inet_pton_0012b158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inet_pton_0012b158"))) () ")")) (argument_list "(10,pcVar10,&local_3c)" (( "(") (number_literal "10") (, ",") (identifier "pcVar10") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";"))) (if_statement "if (iVar9 < 1) {\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }\n    else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" (if "if") (parenthesized_expression "(iVar9 < 1)" (( "(") (binary_expression "iVar9 < 1" (identifier "iVar9") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_000fba6c:\n      local_50 = 0;\n      local_5c = param_4 & 0xfffffffd;\n      local_4c = 0;\n      local_48 = 0;\n      local_44 = 0;\n      local_40 = 0;\n      local_54 = 2;\n      local_58 = param_3;\n      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);\n      iVar9 = local_60;\n      if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }\n    }" ({ "{") (labeled_statement "LAB_000fba6c:\n      local_50 = 0;" (statement_identifier "LAB_000fba6c") (: ":") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_5c = param_4 & 0xfffffffd;" (assignment_expression "local_5c = param_4 & 0xfffffffd" (identifier "local_5c") (= "=") (binary_expression "param_4 & 0xfffffffd" (identifier "param_4") (& "&") (number_literal "0xfffffffd"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 2;" (assignment_expression "local_54 = 2" (identifier "local_54") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60)" (parenthesized_expression "(*(code *)PTR_getaddrinfo_0012ad14)" (( "(") (pointer_expression "*(code *)PTR_getaddrinfo_0012ad14" (* "*") (cast_expression "(code *)PTR_getaddrinfo_0012ad14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getaddrinfo_0012ad14"))) () ")")) (argument_list "(pcVar10,0,&local_5c,&local_60)" (( "(") (identifier "pcVar10") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_5c" (& "&") (identifier "local_5c")) (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (expression_statement "iVar9 = local_60;" (assignment_expression "iVar9 = local_60" (identifier "iVar9") (= "=") (identifier "local_60")) (; ";")) (if_statement "if ((iVar4 == 0) && (local_60 != 0)) {\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" (if "if") (parenthesized_expression "((iVar4 == 0) && (local_60 != 0))" (( "(") (binary_expression "(iVar4 == 0) && (local_60 != 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);\n        puVar6 = PTR_memcpy_0012b150;\n        uVar8 = *(undefined4 *)(iVar9 + 0x14);\n        *puVar5 = *(undefined4 *)(iVar9 + 0x10);\n        (*(code *)puVar6)(puVar5 + 1,uVar8);\n        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;\n        if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a230)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a230" (* "*") (cast_expression "(code *)PTR_FUN_0012a230" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a230"))) () ")")) (argument_list "(*(int *)(local_60 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(local_60 + 0x10) + 4" (pointer_expression "*(int *)(local_60 + 0x10)" (* "*") (cast_expression "(int *)(local_60 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_60 + 0x10)" (( "(") (binary_expression "local_60 + 0x10" (identifier "local_60") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar6 = PTR_memcpy_0012b150;" (assignment_expression "puVar6 = PTR_memcpy_0012b150" (identifier "puVar6") (= "=") (identifier "PTR_memcpy_0012b150")) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar9 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*puVar5 = *(undefined4 *)(iVar9 + 0x10);" (assignment_expression "*puVar5 = *(undefined4 *)(iVar9 + 0x10)" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "(*(code *)puVar6)(puVar5 + 1,uVar8);" (call_expression "(*(code *)puVar6)(puVar5 + 1,uVar8)" (parenthesized_expression "(*(code *)puVar6)" (( "(") (pointer_expression "*(code *)puVar6" (* "*") (cast_expression "(code *)puVar6" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) () ")")) (argument_list "(puVar5 + 1,uVar8)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;" (if "if") (parenthesized_expression "(*(short *)(puVar5 + 1) == 10)" (( "(") (binary_expression "*(short *)(puVar5 + 1) == 10" (pointer_expression "*(short *)(puVar5 + 1)" (* "*") (cast_expression "(short *)(puVar5 + 1)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")")))) (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_000fb9d8;" (goto "goto") (statement_identifier "LAB_000fb9d8") (; ";"))) (if_statement "if (*(short *)(puVar5 + 1) == 2) {\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }" (if "if") (parenthesized_expression "(*(short *)(puVar5 + 1) == 2)" (( "(") (binary_expression "*(short *)(puVar5 + 1) == 2" (pointer_expression "*(short *)(puVar5 + 1)" (* "*") (cast_expression "(short *)(puVar5 + 1)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          *(undefined2 *)((int)puVar5 + 6) = uVar1;\n        }" ({ "{") (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" (* "*") (cast_expression "(undefined2 *)((int)puVar5 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 6)" (( "(") (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" (else "else") (compound_statement "{\n        puVar5 = (undefined4 *)(param_4 & 2);\n        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);\n        if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(param_4 & 2);" (assignment_expression "puVar5 = (undefined4 *)(param_4 & 2)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(param_4 & 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 & 2)" (( "(") (binary_expression "param_4 & 2" (identifier "param_4") (& "&") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);" (call_expression "(*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1c8)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1c8" (* "*") (cast_expression "(code *)PTR_FUN_0012a1c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1c8"))) () ")")) (argument_list "(PTR_FUN_0012a1a8 + -0xd00,param_1)" (( "(") (binary_expression "PTR_FUN_0012a1a8 + -0xd00" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "-0xd00")) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (puVar5 != (undefined4 *)0x0) {\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();\n          return puVar5;\n        }" ({ "{") (labeled_statement "LAB_000fbad4:\n          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();" (statement_identifier "LAB_000fbad4") (: ":") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1b4)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_0012a1b4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1b4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1b4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1b4"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" (else "else") (compound_statement "{\n      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);\n      *puVar5 = 0x1c;\n      *(undefined2 *)(puVar5 + 1) = 10;\n      puVar5[3] = local_3c;\n      puVar5[4] = local_38;\n      puVar5[5] = local_34;\n      *(undefined2 *)((int)puVar5 + 6) = uVar1;\n      puVar5[6] = local_30;\n    }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_0012a1d0)(0x20)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1d0)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1d0" (* "*") (cast_expression "(code *)PTR_FUN_0012a1d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1d0"))) () ")")) (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*puVar5 = 0x1c;" (assignment_expression "*puVar5 = 0x1c" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x1c")) (; ";")) (expression_statement "*(undefined2 *)(puVar5 + 1) = 10;" (assignment_expression "*(undefined2 *)(puVar5 + 1) = 10" (pointer_expression "*(undefined2 *)(puVar5 + 1)" (* "*") (cast_expression "(undefined2 *)(puVar5 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar5[3] = local_3c;" (assignment_expression "puVar5[3] = local_3c" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar5[4] = local_38;" (assignment_expression "puVar5[4] = local_38" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar5[5] = local_34;" (assignment_expression "puVar5[5] = local_34" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" (* "*") (cast_expression "(undefined2 *)((int)puVar5 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 6)" (( "(") (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar5[6] = local_30;" (assignment_expression "puVar5[6] = local_30" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_30")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" (else "else") (compound_statement "{\n    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);\n    if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }\n    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);\n    *puVar5 = 0x10;\n    *(undefined2 *)(puVar5 + 1) = 2;\n    puVar5[2] = local_5c;\nLAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;\n  }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);" (assignment_expression "iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c)" (parenthesized_expression "(*(code *)PTR_inet_aton_0012b1d0)" (( "(") (pointer_expression "*(code *)PTR_inet_aton_0012b1d0" (* "*") (cast_expression "(code *)PTR_inet_aton_0012b1d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inet_aton_0012b1d0"))) () ")")) (argument_list "(pcVar10,&local_5c)" (( "(") (identifier "pcVar10") (, ",") (pointer_expression "&local_5c" (& "&") (identifier "local_5c")) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 != 2) goto LAB_000fba48;\n      goto LAB_000fba6c;\n    }" ({ "{") (if_statement "if (param_3 != 2) goto LAB_000fba48;" (if "if") (parenthesized_expression "(param_3 != 2)" (( "(") (binary_expression "param_3 != 2" (identifier "param_3") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_000fba48;" (goto "goto") (statement_identifier "LAB_000fba48") (; ";"))) (goto_statement "goto LAB_000fba6c;" (goto "goto") (statement_identifier "LAB_000fba6c") (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_0012a1d0)(0x14)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1d0)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1d0" (* "*") (cast_expression "(code *)PTR_FUN_0012a1d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1d0"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "*puVar5 = 0x10;" (assignment_expression "*puVar5 = 0x10" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "*(undefined2 *)(puVar5 + 1) = 2;" (assignment_expression "*(undefined2 *)(puVar5 + 1) = 2" (pointer_expression "*(undefined2 *)(puVar5 + 1)" (* "*") (cast_expression "(undefined2 *)(puVar5 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar5[2] = local_5c;" (assignment_expression "puVar5[2] = local_5c" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (labeled_statement "LAB_000fb9d8:\n    *(undefined2 *)((int)puVar5 + 6) = uVar1;" (statement_identifier "LAB_000fb9d8") (: ":") (expression_statement "*(undefined2 *)((int)puVar5 + 6) = uVar1;" (assignment_expression "*(undefined2 *)((int)puVar5 + 6) = uVar1" (pointer_expression "*(undefined2 *)((int)puVar5 + 6)" (* "*") (cast_expression "(undefined2 *)((int)puVar5 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 6)" (( "(") (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar1")) (; ";"))) (} "}")))) (if_statement "if (local_60 != 0) {\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }" (if "if") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_freeaddrinfo_0012adcc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_freeaddrinfo_0012adcc)();" (call_expression "(*(code *)PTR_freeaddrinfo_0012adcc)()" (parenthesized_expression "(*(code *)PTR_freeaddrinfo_0012adcc)" (( "(") (pointer_expression "*(code *)PTR_freeaddrinfo_0012adcc" (* "*") (cast_expression "(code *)PTR_freeaddrinfo_0012adcc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_freeaddrinfo_0012adcc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_2c == *(int *)puVar2) {\n    return puVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return puVar5;\n  }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (labeled_statement "LAB_000fbb30:\n  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" (statement_identifier "LAB_000fbb30") (: ":") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}")))

type_1 * function_1(char *var_2,int var_14,type_2 af,int var_7)

{
  type_3 *puVar1;
  type_4 *paVar2;
  char *var_3;
  int var_13;
  type_1 *plVar5;
  type_3 *puVar6;
  char *var_9;
  int var_8;
  type_5 *psVar9;
  type_6 in_register_00000018;
  int var_11;
  type_7 var_12;
  char *var_16;
  type_4 *var_15;
  type_4 hint;
  type_8 in6;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  var_13 = var_1(in_register_00000018,af);
  var_15 = (type_4 *)0x0;
  var_8 = *(int *)PTR___stack_chk_guard_0012b14c;
  if (*var_2 == '[') {
    var_16 = var_2 + 1;
    var_3 = (char *)(*(type_9 *)PTR_strchr_0012af54)(var_16,0x5d);
    if (var_3 == (char *)0x0) {
      puVar6 = var_4<var_5&var_6)9__f_l_0012a1a8 + -0xd00;
    }
    else {
      var_11 = (int)var_3 - (int)var_16;
      if ((var_3[1] == ':') || (var_3[1] == '\0')) goto LAB_000fbbb4;
      puVar6 = var_4<var_5&var_6)9__f_l_0012a1a8 + -0xd00;
    }
LAB_000fbc2c:
    (*(type_9 *)PTR_bb_error_msg_0012a1c8)(puVar6,var_2);
    if ((var_7 & 2U) == 0) {
      var_7 = 0;
      if (var_8 != *(int *)puVar1) goto LAB_000fbb30;
      return (type_1 *)0x0;
    }
    goto LAB_000fbad4;
  }
  var_3 = (char *)(*(type_9 *)PTR_strrchr_0012adbc)(var_2,0x3a);
  var_16 = var_2;
  if ((var_3 != (char *)0x0) &&
     (var_9 = (char *)(*(type_9 *)PTR_strchr_0012af54)(var_2,0x3a), var_3 == var_9)) {
    var_11 = (int)var_3 - (int)var_2;
LAB_000fbbb4:
    var_16 = var_10(&stack0xffffff98 + -(var_11 + 8U & 0xfffffff8),var_16,var_11 + 1);
    var_9 = var_3 + 1;
    if (((*var_3 == ':') || (var_9 = var_3 + 2, var_3[1] != '\0')) &&
       ((var_12 = (*(type_9 *)PTR_bb_strtoul_0012a2d4)(var_9,0,10),
        **(int **)PTR_bb_errno_0012a214 != 0 || (var_14 = var_12, 0xffff < var_12)))) {
      puVar6 = var_4<var_5&var_6)9__f_l_0012a1a8 + -0xcec;
      goto LAB_000fbc2c;
    }
  }
  if (var_13 == 10) {
LAB_000fba48:
    var_11 = (*(type_9 *)PTR_inet_pton_0012b158)(10,var_16,&in6);
    if (0 < var_11) {
      var_12 = var_14 & 0xffff;
      var_7 = (*(type_9 *)PTR_xzalloc_0012a1d0)(0x20);
      ((type_1 *)var_7)->len = 0x1c;
      (((type_1 *)var_7)->u).sa.sa_family = 10;
      *(uint32_t *)((int)&((type_1 *)var_7)->u + 8) = in6.__in6_u.__u6_addr32[0];
      *(uint32_t *)((int)&((type_1 *)var_7)->u + 0xc) = in6.__in6_u.__u6_addr32[1];
      *(uint32_t *)((int)&((type_1 *)var_7)->u + 0x10) = in6.__in6_u.__u6_addr32[2];
      (((type_1 *)var_7)->u).sin.sin_port = (type_10)var_14;
      *(uint32_t *)((int)&((type_1 *)var_7)->u + 0x14) = in6.__in6_u.__u6_addr32[3];
      goto LAB_000fb9e0;
    }
  }
  else {
    var_11 = (*(type_9 *)PTR_inet_aton_0012b1d0)(var_16,&hint);
    if (var_11 != 0) {
      var_12 = var_14 & 0xffff;
      var_7 = (*(type_9 *)PTR_xzalloc_0012a1d0)(0x14);
      ((type_1 *)var_7)->len = 0x10;
      (((type_1 *)var_7)->u).sa.sa_family = 2;
      (((type_1 *)var_7)->u).sin6.sin6_flowinfo = hint.var_7;
      goto LAB_000fb9d8;
    }
    if (var_13 != 2) goto LAB_000fba48;
  }
  var_3 = &SUB_00000002;
  hint.ai_protocol = 0;
  hint.var_7 = var_7 & 0xfffffffd;
  hint.ai_addrlen = 0;
  hint.ai_addr = (type_5 *)0x0;
  hint.ai_canonname = (char *)0x0;
  hint.ai_next = (type_4 *)0x0;
  hint.ai_socktype = 2;
  hint.ai_family = var_13;
  var_13 = (*(type_9 *)PTR_getaddrinfo_0012ad14)(var_16,0,&hint,&var_15);
  var_12 = var_14;
  if (var_13 == 0) goto LAB_000fbb38;
  while( true ) {
    var_7 = var_7 & 2;
    (*(type_9 *)PTR_bb_error_msg_0012a1c8)
              (var_4<var_5&var_6)9__f_l_0012a1a8 + -0xd00,var_2);
    if ((type_1 *)var_7 != (type_1 *)0x0) break;
LAB_000fb9e0:
    while( true ) {
      if (var_15 != (type_4 *)0x0) {
        (*(type_9 *)PTR_freeaddrinfo_0012adcc)();
      }
      var_14 = var_12;
      if (var_8 == *(int *)puVar1) {
        return (type_1 *)var_7;
      }
LAB_000fbb30:
      (*(type_9 *)PTR___stack_chk_fail_0012b0c8)();
LAB_000fbb38:
      paVar2 = var_15;
      var_12 = var_14;
      if (var_15 == (type_4 *)0x0) break;
      var_12 = var_14 & 0xffff;
      var_7 = (*(type_9 *)PTR_xmalloc_0012a230)(var_15->ai_addrlen + 4);
      puVar6 = PTR_memcpy_0012b150;
      psVar9 = paVar2->ai_addr;
      ((type_1 *)var_7)->len = paVar2->ai_addrlen;
      (*(type_9 *)puVar6)(&((type_1 *)var_7)->u,psVar9);
      var_16 = (char *)(type_7)(((type_1 *)var_7)->u).sa.sa_family;
      if (var_16 == &DAT_0000000a) {
LAB_000fb9d8:
        (((type_1 *)var_7)->u).sin.sin_port = (type_10)var_12;
      }
      else if (var_16 == var_3) {
        (((type_1 *)var_7)->u).sin.sin_port = (type_10)var_14;
      }
    }
  }
LAB_000fbad4:
  plVar5 = (type_1 *)(*(type_9 *)PTR_xfunc_die_0012a1b4)();
  return plVar5;
}


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

undefined4 * MASKED(char *param_1,uint param_2,int param_3,uint param_4)

{
  undefined2 uVar1;
  undefined *puVar2;
  char *pcVar3;
  int iVar4;
  undefined4 *puVar5;
  undefined *puVar6;
  char *pcVar7;
  undefined4 uVar8;
  int iVar9;
  char *pcVar10;
  int local_60;
  uint local_5c;
  int local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  local_60 = 0;
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  if (*param_1 == '[') {
    pcVar10 = param_1 + 1;
    pcVar3 = (char *)(*(code *)PTR_strchr_0012af54)(pcVar10,0x5d);
    if (pcVar3 == (char *)0x0) {
      puVar6 = PTR_FUN_0012a1a8 + -0xd00;
    }
    else {
      iVar9 = (int)pcVar3 - (int)pcVar10;
      if ((pcVar3[1] == ':') || (pcVar3[1] == '\0')) goto LAB_000fbbb4;
      puVar6 = PTR_FUN_0012a1a8 + -0xd00;
    }
LAB_000fbc2c:
    (*(code *)PTR_FUN_0012a1c8)(puVar6,param_1);
    if ((param_4 & 2) != 0) goto LAB_000fbad4;
    if (local_2c == *(int *)puVar2) {
      return (undefined4 *)0x0;
    }
    goto LAB_000fbb30;
  }
  pcVar3 = (char *)(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);
  pcVar10 = param_1;
  if ((pcVar3 != (char *)0x0) &&
     (pcVar7 = (char *)(*(code *)PTR_strchr_0012af54)(param_1,0x3a), pcVar3 == pcVar7)) {
    iVar9 = (int)pcVar3 - (int)param_1;
LAB_000fbbb4:
    pcVar10 = (char *)FUN_000f8624(&stack0xffffff98 + -(iVar9 + 8U & 0xfffffff8),pcVar10,iVar9 + 1);
    pcVar7 = pcVar3 + 1;
    if (((*pcVar3 == ':') || (pcVar7 = pcVar3 + 2, pcVar3[1] != '\0')) &&
       ((param_2 = (*(code *)PTR_FUN_0012a2d4)(pcVar7,0,10), **(int **)PTR_DAT_0012a214 != 0 ||
        (0xffff < param_2)))) {
      puVar6 = PTR_FUN_0012a1a8 + -0xcec;
      goto LAB_000fbc2c;
    }
  }
  uVar1 = (undefined2)param_2;
  if (param_3 == 10) {
LAB_000fba48:
    iVar9 = (*(code *)PTR_inet_pton_0012b158)(10,pcVar10,&local_3c);
    if (iVar9 < 1) {
LAB_000fba6c:
      local_50 = 0;
      local_5c = param_4 & 0xfffffffd;
      local_4c = 0;
      local_48 = 0;
      local_44 = 0;
      local_40 = 0;
      local_54 = 2;
      local_58 = param_3;
      iVar4 = (*(code *)PTR_getaddrinfo_0012ad14)(pcVar10,0,&local_5c,&local_60);
      iVar9 = local_60;
      if ((iVar4 == 0) && (local_60 != 0)) {
        puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a230)(*(int *)(local_60 + 0x10) + 4);
        puVar6 = PTR_memcpy_0012b150;
        uVar8 = *(undefined4 *)(iVar9 + 0x14);
        *puVar5 = *(undefined4 *)(iVar9 + 0x10);
        (*(code *)puVar6)(puVar5 + 1,uVar8);
        if (*(short *)(puVar5 + 1) == 10) goto LAB_000fb9d8;
        if (*(short *)(puVar5 + 1) == 2) {
          *(undefined2 *)((int)puVar5 + 6) = uVar1;
        }
      }
      else {
        puVar5 = (undefined4 *)(param_4 & 2);
        (*(code *)PTR_FUN_0012a1c8)(PTR_FUN_0012a1a8 + -0xd00,param_1);
        if (puVar5 != (undefined4 *)0x0) {
LAB_000fbad4:
          puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1b4)();
          return puVar5;
        }
      }
    }
    else {
      puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x20);
      *puVar5 = 0x1c;
      *(undefined2 *)(puVar5 + 1) = 10;
      puVar5[3] = local_3c;
      puVar5[4] = local_38;
      puVar5[5] = local_34;
      *(undefined2 *)((int)puVar5 + 6) = uVar1;
      puVar5[6] = local_30;
    }
  }
  else {
    iVar9 = (*(code *)PTR_inet_aton_0012b1d0)(pcVar10,&local_5c);
    if (iVar9 == 0) {
      if (param_3 != 2) goto LAB_000fba48;
      goto LAB_000fba6c;
    }
    puVar5 = (undefined4 *)(*(code *)PTR_FUN_0012a1d0)(0x14);
    *puVar5 = 0x10;
    *(undefined2 *)(puVar5 + 1) = 2;
    puVar5[2] = local_5c;
LAB_000fb9d8:
    *(undefined2 *)((int)puVar5 + 6) = uVar1;
  }
  if (local_60 != 0) {
    (*(code *)PTR_freeaddrinfo_0012adcc)();
  }
  if (local_2c == *(int *)puVar2) {
    return puVar5;
  }
LAB_000fbb30:
  puVar5 = (undefined4 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();
  return puVar5;
}

