
/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */
/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */
/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */

_Bool urh_to_fdset(MHD_UpgradeResponseHandle *urh,fd_set *rs,fd_set *ws,fd_set *es,
                  MHD_socket *max_fd,uint fd_setsize)

{
  size_t sVar1;
  int iVar2;
  bool bVar3;
  int iVar4;
  int fd;
  
  iVar4 = urh->connection->socket_fd;
  fd = (urh->mhd).socket;
  if (iVar4 == -1) {
    bVar3 = true;
  }
  else {
    if (urh->in_buffer_used < urh->in_buffer_size) {
      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);
      bVar3 = iVar2 != 0;
      sVar1 = urh->out_buffer_used;
    }
    else {
      sVar1 = urh->out_buffer_used;
      bVar3 = true;
    }
    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {
      bVar3 = false;
    }
    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {
      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)
         ) {
        if (fd == -1) {
          return bVar3;
        }
        goto LAB_00017f14;
      }
      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);
    }
  }
  if (fd == -1) {
    return bVar3;
  }
  if ((urh->out_buffer_used < urh->out_buffer_size) &&
     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)) {
    bVar3 = false;
  }
LAB_00017f14:
  if ((urh->in_buffer_used != 0) &&
     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)) {
    bVar3 = false;
  }
  if ((((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&
     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))) {
    MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);
  }
  return bVar3;
}



bool FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                 undefined4 param_5,undefined4 param_6)

{
  int iVar1;
  bool bVar2;
  int iVar3;
  int iVar4;
  
  iVar3 = *(int *)(*param_1 + 0xa4);
  iVar4 = param_1[0x10];
  if (iVar3 == -1) {
    bVar2 = true;
  }
  else {
    if ((uint)param_1[10] < (uint)param_1[8]) {
      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);
      bVar2 = iVar1 != 0;
      iVar1 = param_1[0xb];
    }
    else {
      iVar1 = param_1[0xb];
      bVar2 = true;
    }
    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {
      bVar2 = false;
    }
    if ((param_1[0xe] & 0x80U) == 0) {
      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {
        if (iVar4 == -1) {
          return bVar2;
        }
        goto LAB_00017f14;
      }
      FUN_00022130(iVar3,param_4,param_5,param_6);
    }
  }
  if (iVar4 == -1) {
    return bVar2;
  }
  if (((uint)param_1[0xb] < (uint)param_1[9]) &&
     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {
    bVar2 = false;
  }
LAB_00017f14:
  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {
    bVar2 = false;
  }
  if (((param_1[0x11] & 0x80U) == 0) &&
     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {
    FUN_00022130(iVar4,param_4,param_5,param_6);
  }
  return bVar2;
}


lui gp,0x3
addiu gp,gp,-0xdf0
addu gp,gp,t9
addiu sp,sp,-0x38
li v0,-0x1
sw s6,0x30(sp)
or s6,a1,zero
sw s5,0x2c(sp)
or s5,a2,zero
sw s4,0x28(sp)
or s4,a3,zero
sw s0,0x18(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
lw v1,0x0(a0)
lw s2,0xa4(v1)
beq s2,v0,0x00017fcc
_lw s3,0x40(a0)
lw v0,0x28(a0)
lw v1,0x20(a0)
sltu v0,v0,v1
bne v0,zero,0x00017f88
_lw t9,-0x7fd0(gp)
lw v0,0x2c(s0)
bne v0,zero,0x00017fac
_li s1,0x1
lw v0,0x38(s0)
andi v0,v0,0x80
bne v0,zero,0x00017edc
_li v0,-0x1
lw v0,0x20(s0)
bne v0,zero,0x00017ec0
_lw t9,-0x7fd0(gp)
lw v0,0x24(s0)
beq v0,zero,0x00018008
_nop
or a1,s4,zero
lw a3,0x4c(sp)
or a0,s2,zero
bal 0x00022130
_lw a2,0x48(sp)
lw gp,0x10(sp)
li v0,-0x1
beq s3,v0,0x00017f60
_lw ra,0x34(sp)
lw v0,0x2c(s0)
lw v1,0x24(s0)
sltu v0,v0,v1
beq v0,zero,0x00017f14
_lw t9,-0x7fd0(gp)
or a1,s6,zero
lw a3,0x4c(sp)
or a0,s3,zero
bal 0x00022130
_lw a2,0x48(sp)
movz s1,zero,v0
lw gp,0x10(sp)
lw v0,0x28(s0)
bne v0,zero,0x00017fd4
_lw t9,-0x7fd0(gp)
lw v0,0x44(s0)
andi v0,v0,0x80
bne v0,zero,0x00017f60
_lw ra,0x34(sp)
lw v0,0x24(s0)
bne v0,zero,0x00017f48
_lw t9,-0x7fd0(gp)
lw v0,0x20(s0)
beq v0,zero,0x00017ff4
_nop
or a1,s4,zero
lw a3,0x4c(sp)
or a0,s3,zero
bal 0x00022130
_lw a2,0x48(sp)
lw ra,0x34(sp)
or v0,s1,zero
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
or a0,s2,zero
lw a3,0x4c(sp)
bal 0x00022130
_lw a2,0x48(sp)
sltu s1,zero,v0
lw v0,0x2c(s0)
beq v0,zero,0x00017e98
_lw gp,0x10(sp)
lw t9,-0x7fd0(gp)
or a1,s5,zero
lw a3,0x4c(sp)
or a0,s2,zero
bal 0x00022130
_lw a2,0x48(sp)
lw gp,0x10(sp)
b 0x00017e98
_movz s1,zero,v0
b 0x00017ed8
_li s1,0x1
or a1,s5,zero
lw a3,0x4c(sp)
or a0,s3,zero
bal 0x00022130
_lw a2,0x48(sp)
lw gp,0x10(sp)
b 0x00017f20
_movz s1,zero,v0
lw v0,0x28(s0)
beq v0,zero,0x00017f60
_lw ra,0x34(sp)
b 0x00017f48
_lw t9,-0x7fd0(gp)
lw v0,0x2c(s0)
bne v0,zero,0x00017ec0
_lw t9,-0x7fd0(gp)
li v0,-0x1
bne s3,v0,0x00017f14
_lw ra,0x34(sp)
b 0x00017f64
_or v0,s1,zero
(translation_unit "bool FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}\n\n" (function_definition "bool FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}" primitive_type (function_declarator "FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar3 = *(int *)(*param_1 + 0xa4);" (assignment_expression "iVar3 = *(int *)(*param_1 + 0xa4)" identifier = (pointer_expression "*(int *)(*param_1 + 0xa4)" * (cast_expression "(int *)(*param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0xa4)" ( (binary_expression "*param_1 + 0xa4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = param_1[0x10];" (assignment_expression "iVar4 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar2 = true;\n  }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" else (compound_statement "{\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" { (if_statement "if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" if (parenthesized_expression "((uint)param_1[10] < (uint)param_1[8])" ( (binary_expression "(uint)param_1[10] < (uint)param_1[8]" (cast_expression "(uint)param_1[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[10]" identifier [ number_literal ])) < (cast_expression "(uint)param_1[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }" { (expression_statement "iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);" (assignment_expression "iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar3,param_2,param_5,param_6)" identifier (argument_list "(iVar3,param_2,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "bVar2 = iVar1 != 0;" (assignment_expression "bVar2 = iVar1 != 0" identifier = (binary_expression "iVar1 != 0" identifier != number_literal)) ;) (expression_statement "iVar1 = param_1[0xb];" (assignment_expression "iVar1 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" else (compound_statement "{\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" { (expression_statement "iVar1 = param_1[0xb];" (assignment_expression "iVar1 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (if_statement "if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }" if (parenthesized_expression "((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0))" ( (binary_expression "(iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)" ( (comma_expression "iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0" (assignment_expression "iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar3,param_3,param_5,param_6)" identifier (argument_list "(iVar3,param_3,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      bVar2 = false;\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) })) (if_statement "if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }" if (parenthesized_expression "((param_1[0xe] & 0x80U) == 0)" ( (binary_expression "(param_1[0xe] & 0x80U) == 0" (parenthesized_expression "(param_1[0xe] & 0x80U)" ( (binary_expression "param_1[0xe] & 0x80U" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }" { (if_statement "if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }" if (parenthesized_expression "(((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0))" ( (binary_expression "((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)" (parenthesized_expression "((param_1[8] == 0) && (param_1[9] == 0))" ( (binary_expression "(param_1[8] == 0) && (param_1[9] == 0)" (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_1[9] == 0)" ( (binary_expression "param_1[9] == 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }" { (if_statement "if (iVar4 == -1) {\n          return bVar2;\n        }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n          return bVar2;\n        }" { (return_statement "return bVar2;" return identifier ;) })) (goto_statement "goto LAB_00017f14;" goto statement_identifier ;) })) (expression_statement "FUN_00022130(iVar3,param_4,param_5,param_6);" (call_expression "FUN_00022130(iVar3,param_4,param_5,param_6)" identifier (argument_list "(iVar3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;) })) }))) (if_statement "if (iVar4 == -1) {\n    return bVar2;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    return bVar2;\n  }" { (return_statement "return bVar2;" return identifier ;) })) (if_statement "if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" if (parenthesized_expression "(((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0))" ( (binary_expression "((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)" (parenthesized_expression "((uint)param_1[0xb] < (uint)param_1[9])" ( (binary_expression "(uint)param_1[0xb] < (uint)param_1[9]" (cast_expression "(uint)param_1[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ])) < (cast_expression "(uint)param_1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0" (assignment_expression "iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar4,param_2,param_5,param_6)" identifier (argument_list "(iVar4,param_2,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar2 = false;\n  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) })) (labeled_statement "LAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" statement_identifier : (if_statement "if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" if (parenthesized_expression "((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0))" ( (binary_expression "(param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)" (parenthesized_expression "(param_1[10] != 0)" ( (binary_expression "param_1[10] != 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0" (assignment_expression "iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar4,param_3,param_5,param_6)" identifier (argument_list "(iVar4,param_3,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar2 = false;\n  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))) (if_statement "if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }" if (parenthesized_expression "(((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0))))" ( (binary_expression "((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))" (parenthesized_expression "((param_1[0x11] & 0x80U) == 0)" ( (binary_expression "(param_1[0x11] & 0x80U) == 0" (parenthesized_expression "(param_1[0x11] & 0x80U)" ( (binary_expression "param_1[0x11] & 0x80U" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))" ( (parenthesized_expression "((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0))" ( (binary_expression "(param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)" (parenthesized_expression "(param_1[9] != 0 || (param_1[8] != 0))" ( (binary_expression "param_1[9] != 0 || (param_1[8] != 0)" (binary_expression "param_1[9] != 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(param_1[10] != 0)" ( (binary_expression "param_1[10] != 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }" { (expression_statement "FUN_00022130(iVar4,param_4,param_5,param_6);" (call_expression "FUN_00022130(iVar4,param_4,param_5,param_6)" identifier (argument_list "(iVar4,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */\n/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */\n\n_Bool urh_to_fdset(MHD_UpgradeResponseHandle *urh,fd_set *rs,fd_set *ws,fd_set *es,\n                  MHD_socket *max_fd,uint fd_setsize)\n\n{\n  size_t sVar1;\n  int iVar2;\n  bool bVar3;\n  int iVar4;\n  int fd;\n  \n  iVar4 = urh->connection->socket_fd;\n  fd = (urh->mhd).socket;\n  if (iVar4 == -1) {\n    bVar3 = true;\n  }\n  else {\n    if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }\n    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }\n    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }\n  }\n  if (fd == -1) {\n    return bVar3;\n  }\n  if ((urh->out_buffer_used < urh->out_buffer_size) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }\nLAB_00017f14:\n  if ((urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }\n  if ((((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&\n     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))) {\n    MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);\n  }\n  return bVar3;\n}\n\n" comment comment comment (function_definition "_Bool urh_to_fdset(MHD_UpgradeResponseHandle *urh,fd_set *rs,fd_set *ws,fd_set *es,\n                  MHD_socket *max_fd,uint fd_setsize)\n\n{\n  size_t sVar1;\n  int iVar2;\n  bool bVar3;\n  int iVar4;\n  int fd;\n  \n  iVar4 = urh->connection->socket_fd;\n  fd = (urh->mhd).socket;\n  if (iVar4 == -1) {\n    bVar3 = true;\n  }\n  else {\n    if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }\n    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }\n    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }\n  }\n  if (fd == -1) {\n    return bVar3;\n  }\n  if ((urh->out_buffer_used < urh->out_buffer_size) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }\nLAB_00017f14:\n  if ((urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }\n  if ((((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&\n     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))) {\n    MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);\n  }\n  return bVar3;\n}" type_identifier (function_declarator "urh_to_fdset(MHD_UpgradeResponseHandle *urh,fd_set *rs,fd_set *ws,fd_set *es,\n                  MHD_socket *max_fd,uint fd_setsize)" identifier (parameter_list "(MHD_UpgradeResponseHandle *urh,fd_set *rs,fd_set *ws,fd_set *es,\n                  MHD_socket *max_fd,uint fd_setsize)" ( (parameter_declaration "MHD_UpgradeResponseHandle *urh" type_identifier (pointer_declarator "*urh" * identifier)) , (parameter_declaration "fd_set *rs" type_identifier (pointer_declarator "*rs" * identifier)) , (parameter_declaration "fd_set *ws" type_identifier (pointer_declarator "*ws" * identifier)) , (parameter_declaration "fd_set *es" type_identifier (pointer_declarator "*es" * identifier)) , (parameter_declaration "MHD_socket *max_fd" type_identifier (pointer_declarator "*max_fd" * identifier)) , (parameter_declaration "uint fd_setsize" type_identifier identifier) ))) (compound_statement "{\n  size_t sVar1;\n  int iVar2;\n  bool bVar3;\n  int iVar4;\n  int fd;\n  \n  iVar4 = urh->connection->socket_fd;\n  fd = (urh->mhd).socket;\n  if (iVar4 == -1) {\n    bVar3 = true;\n  }\n  else {\n    if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }\n    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }\n    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }\n  }\n  if (fd == -1) {\n    return bVar3;\n  }\n  if ((urh->out_buffer_used < urh->out_buffer_size) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }\nLAB_00017f14:\n  if ((urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }\n  if ((((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&\n     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))) {\n    MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);\n  }\n  return bVar3;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int fd;" primitive_type identifier ;) (expression_statement "iVar4 = urh->connection->socket_fd;" (assignment_expression "iVar4 = urh->connection->socket_fd" identifier = (field_expression "urh->connection->socket_fd" (field_expression "urh->connection" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "fd = (urh->mhd).socket;" (assignment_expression "fd = (urh->mhd).socket" identifier = (field_expression "(urh->mhd).socket" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (iVar4 == -1) {\n    bVar3 = true;\n  }\n  else {\n    if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }\n    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }\n    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar3 = true;\n  }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }) (else_clause "else {\n    if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }\n    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }\n    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }\n  }" else (compound_statement "{\n    if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }\n    if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }\n    if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }\n  }" { (if_statement "if (urh->in_buffer_used < urh->in_buffer_size) {\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }\n    else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }" if (parenthesized_expression "(urh->in_buffer_used < urh->in_buffer_size)" ( (binary_expression "urh->in_buffer_used < urh->in_buffer_size" (field_expression "urh->in_buffer_used" identifier -> field_identifier) < (field_expression "urh->in_buffer_size" identifier -> field_identifier)) )) (compound_statement "{\n      iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);\n      bVar3 = iVar2 != 0;\n      sVar1 = urh->out_buffer_used;\n    }" { (expression_statement "iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize);" (assignment_expression "iVar2 = MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize)" identifier = (call_expression "MHD_add_to_fd_set_(iVar4,rs,max_fd,fd_setsize)" identifier (argument_list "(iVar4,rs,max_fd,fd_setsize)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "bVar3 = iVar2 != 0;" (assignment_expression "bVar3 = iVar2 != 0" identifier = (binary_expression "iVar2 != 0" identifier != number_literal)) ;) (expression_statement "sVar1 = urh->out_buffer_used;" (assignment_expression "sVar1 = urh->out_buffer_used" identifier = (field_expression "urh->out_buffer_used" identifier -> field_identifier)) ;) }) (else_clause "else {\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }" else (compound_statement "{\n      sVar1 = urh->out_buffer_used;\n      bVar3 = true;\n    }" { (expression_statement "sVar1 = urh->out_buffer_used;" (assignment_expression "sVar1 = urh->out_buffer_used" identifier = (field_expression "urh->out_buffer_used" identifier -> field_identifier)) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }))) (if_statement "if ((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)) {\n      bVar3 = false;\n    }" if (parenthesized_expression "((sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0))" ( (binary_expression "(sVar1 != 0) && (iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)" (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0)" ( (comma_expression "iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize), iVar2 == 0" (assignment_expression "iVar2 = MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize)" identifier = (call_expression "MHD_add_to_fd_set_(iVar4,ws,max_fd,fd_setsize)" identifier (argument_list "(iVar4,ws,max_fd,fd_setsize)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      bVar3 = false;\n    }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) })) (if_statement "if (((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) {\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }" if (parenthesized_expression "(((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY)" ( (binary_expression "((urh->app).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY" (parenthesized_expression "((urh->app).celi & MHD_EPOLL_STATE_ERROR)" ( (binary_expression "(urh->app).celi & MHD_EPOLL_STATE_ERROR" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }\n      MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);\n    }" { (if_statement "if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         ) {\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }" if (parenthesized_expression "(((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)\n         )" ( (binary_expression "((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)" (parenthesized_expression "((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0))" ( (binary_expression "(urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)" (parenthesized_expression "(urh->in_buffer_size == 0)" ( (binary_expression "urh->in_buffer_size == 0" (field_expression "urh->in_buffer_size" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(urh->out_buffer_size == 0)" ( (binary_expression "urh->out_buffer_size == 0" (field_expression "urh->out_buffer_size" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(urh->out_buffer_used == 0)" ( (binary_expression "urh->out_buffer_used == 0" (field_expression "urh->out_buffer_used" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n        if (fd == -1) {\n          return bVar3;\n        }\n        goto LAB_00017f14;\n      }" { (if_statement "if (fd == -1) {\n          return bVar3;\n        }" if (parenthesized_expression "(fd == -1)" ( (binary_expression "fd == -1" identifier == number_literal) )) (compound_statement "{\n          return bVar3;\n        }" { (return_statement "return bVar3;" return identifier ;) })) (goto_statement "goto LAB_00017f14;" goto statement_identifier ;) })) (expression_statement "MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize);" (call_expression "MHD_add_to_fd_set_(iVar4,es,max_fd,fd_setsize)" identifier (argument_list "(iVar4,es,max_fd,fd_setsize)" ( identifier , identifier , identifier , identifier ))) ;) })) }))) (if_statement "if (fd == -1) {\n    return bVar3;\n  }" if (parenthesized_expression "(fd == -1)" ( (binary_expression "fd == -1" identifier == number_literal) )) (compound_statement "{\n    return bVar3;\n  }" { (return_statement "return bVar3;" return identifier ;) })) (if_statement "if ((urh->out_buffer_used < urh->out_buffer_size) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }" if (parenthesized_expression "((urh->out_buffer_used < urh->out_buffer_size) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0))" ( (binary_expression "(urh->out_buffer_used < urh->out_buffer_size) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)" (parenthesized_expression "(urh->out_buffer_used < urh->out_buffer_size)" ( (binary_expression "urh->out_buffer_used < urh->out_buffer_size" (field_expression "urh->out_buffer_used" identifier -> field_identifier) < (field_expression "urh->out_buffer_size" identifier -> field_identifier)) )) && (parenthesized_expression "(iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0)" ( (comma_expression "iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize), iVar4 == 0" (assignment_expression "iVar4 = MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize)" identifier = (call_expression "MHD_add_to_fd_set_(fd,rs,max_fd,fd_setsize)" identifier (argument_list "(fd,rs,max_fd,fd_setsize)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar3 = false;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) })) (labeled_statement "LAB_00017f14:\n  if ((urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }" statement_identifier : (if_statement "if ((urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)) {\n    bVar3 = false;\n  }" if (parenthesized_expression "((urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0))" ( (binary_expression "(urh->in_buffer_used != 0) &&\n     (iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)" (parenthesized_expression "(urh->in_buffer_used != 0)" ( (binary_expression "urh->in_buffer_used != 0" (field_expression "urh->in_buffer_used" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0)" ( (comma_expression "iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize), iVar4 == 0" (assignment_expression "iVar4 = MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize)" identifier = (call_expression "MHD_add_to_fd_set_(fd,ws,max_fd,fd_setsize)" identifier (argument_list "(fd,ws,max_fd,fd_setsize)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar3 = false;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }))) (if_statement "if ((((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&\n     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))) {\n    MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);\n  }" if (parenthesized_expression "((((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&\n     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0))))" ( (binary_expression "(((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY) &&\n     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))" (parenthesized_expression "(((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY)" ( (binary_expression "((urh->mhd).celi & MHD_EPOLL_STATE_ERROR) == MHD_EPOLL_STATE_UNREADY" (parenthesized_expression "((urh->mhd).celi & MHD_EPOLL_STATE_ERROR)" ( (binary_expression "(urh->mhd).celi & MHD_EPOLL_STATE_ERROR" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) & identifier) )) == identifier) )) && (parenthesized_expression "(((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))" ( (parenthesized_expression "((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0))" ( (binary_expression "(urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)" (parenthesized_expression "(urh->out_buffer_size != 0 || (urh->in_buffer_size != 0))" ( (binary_expression "urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)" (binary_expression "urh->out_buffer_size != 0" (field_expression "urh->out_buffer_size" identifier -> field_identifier) != number_literal) || (parenthesized_expression "(urh->in_buffer_size != 0)" ( (binary_expression "urh->in_buffer_size != 0" (field_expression "urh->in_buffer_size" identifier -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "(urh->in_buffer_used != 0)" ( (binary_expression "urh->in_buffer_used != 0" (field_expression "urh->in_buffer_used" identifier -> field_identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n    MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);\n  }" { (expression_statement "MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize);" (call_expression "MHD_add_to_fd_set_(fd,es,max_fd,fd_setsize)" identifier (argument_list "(fd,es,max_fd,fd_setsize)" ( identifier , identifier , identifier , identifier ))) ;) })) (return_statement "return bVar3;" return identifier ;) })))
(translation_unit "bool FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}\n\n" (function_definition "bool FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}" primitive_type (function_declarator "FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar3 = *(int *)(*param_1 + 0xa4);" (assignment_expression "iVar3 = *(int *)(*param_1 + 0xa4)" identifier = (pointer_expression "*(int *)(*param_1 + 0xa4)" * (cast_expression "(int *)(*param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0xa4)" ( (binary_expression "*param_1 + 0xa4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = param_1[0x10];" (assignment_expression "iVar4 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar2 = true;\n  }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" else (compound_statement "{\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" { (if_statement "if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" if (parenthesized_expression "((uint)param_1[10] < (uint)param_1[8])" ( (binary_expression "(uint)param_1[10] < (uint)param_1[8]" (cast_expression "(uint)param_1[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[10]" identifier [ number_literal ])) < (cast_expression "(uint)param_1[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }" { (expression_statement "iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);" (assignment_expression "iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar3,param_2,param_5,param_6)" identifier (argument_list "(iVar3,param_2,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "bVar2 = iVar1 != 0;" (assignment_expression "bVar2 = iVar1 != 0" identifier = (binary_expression "iVar1 != 0" identifier != number_literal)) ;) (expression_statement "iVar1 = param_1[0xb];" (assignment_expression "iVar1 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" else (compound_statement "{\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" { (expression_statement "iVar1 = param_1[0xb];" (assignment_expression "iVar1 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (if_statement "if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }" if (parenthesized_expression "((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0))" ( (binary_expression "(iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)" ( (comma_expression "iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0" (assignment_expression "iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar3,param_3,param_5,param_6)" identifier (argument_list "(iVar3,param_3,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      bVar2 = false;\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) })) (if_statement "if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }" if (parenthesized_expression "((param_1[0xe] & 0x80U) == 0)" ( (binary_expression "(param_1[0xe] & 0x80U) == 0" (parenthesized_expression "(param_1[0xe] & 0x80U)" ( (binary_expression "param_1[0xe] & 0x80U" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }" { (if_statement "if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }" if (parenthesized_expression "(((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0))" ( (binary_expression "((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)" (parenthesized_expression "((param_1[8] == 0) && (param_1[9] == 0))" ( (binary_expression "(param_1[8] == 0) && (param_1[9] == 0)" (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_1[9] == 0)" ( (binary_expression "param_1[9] == 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }" { (if_statement "if (iVar4 == -1) {\n          return bVar2;\n        }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n          return bVar2;\n        }" { (return_statement "return bVar2;" return identifier ;) })) (goto_statement "goto LAB_00017f14;" goto statement_identifier ;) })) (expression_statement "FUN_00022130(iVar3,param_4,param_5,param_6);" (call_expression "FUN_00022130(iVar3,param_4,param_5,param_6)" identifier (argument_list "(iVar3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;) })) }))) (if_statement "if (iVar4 == -1) {\n    return bVar2;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    return bVar2;\n  }" { (return_statement "return bVar2;" return identifier ;) })) (if_statement "if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" if (parenthesized_expression "(((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0))" ( (binary_expression "((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)" (parenthesized_expression "((uint)param_1[0xb] < (uint)param_1[9])" ( (binary_expression "(uint)param_1[0xb] < (uint)param_1[9]" (cast_expression "(uint)param_1[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ])) < (cast_expression "(uint)param_1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0" (assignment_expression "iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar4,param_2,param_5,param_6)" identifier (argument_list "(iVar4,param_2,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar2 = false;\n  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) })) (labeled_statement "LAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" statement_identifier : (if_statement "if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" if (parenthesized_expression "((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0))" ( (binary_expression "(param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)" (parenthesized_expression "(param_1[10] != 0)" ( (binary_expression "param_1[10] != 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0" (assignment_expression "iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6)" identifier = (call_expression "FUN_00022130(iVar4,param_3,param_5,param_6)" identifier (argument_list "(iVar4,param_3,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar2 = false;\n  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))) (if_statement "if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }" if (parenthesized_expression "(((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0))))" ( (binary_expression "((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))" (parenthesized_expression "((param_1[0x11] & 0x80U) == 0)" ( (binary_expression "(param_1[0x11] & 0x80U) == 0" (parenthesized_expression "(param_1[0x11] & 0x80U)" ( (binary_expression "param_1[0x11] & 0x80U" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))" ( (parenthesized_expression "((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0))" ( (binary_expression "(param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)" (parenthesized_expression "(param_1[9] != 0 || (param_1[8] != 0))" ( (binary_expression "param_1[9] != 0 || (param_1[8] != 0)" (binary_expression "param_1[9] != 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(param_1[10] != 0)" ( (binary_expression "param_1[10] != 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }" { (expression_statement "FUN_00022130(iVar4,param_4,param_5,param_6);" (call_expression "FUN_00022130(iVar4,param_4,param_5,param_6)" identifier (argument_list "(iVar4,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "bool FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}" (primitive_type "bool") (function_declarator "FUN_00017e20(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" (identifier "FUN_00017e20") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar3 = *(int *)(*param_1 + 0xa4);\n  iVar4 = param_1[0x10];\n  if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }\n  if (iVar4 == -1) {\n    return bVar2;\n  }\n  if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\nLAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }\n  if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }\n  return bVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "iVar3 = *(int *)(*param_1 + 0xa4);" (assignment_expression "iVar3 = *(int *)(*param_1 + 0xa4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*param_1 + 0xa4)" (* "*") (cast_expression "(int *)(*param_1 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0xa4)" (( "(") (binary_expression "*param_1 + 0xa4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "iVar4 = param_1[0x10];" (assignment_expression "iVar4 = param_1[0x10]" (identifier "iVar4") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if (iVar3 == -1) {\n    bVar2 = true;\n  }\n  else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    bVar2 = true;\n  }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" (else "else") (compound_statement "{\n    if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }\n    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }\n    if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }\n  }" ({ "{") (if_statement "if ((uint)param_1[10] < (uint)param_1[8]) {\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }\n    else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" (if "if") (parenthesized_expression "((uint)param_1[10] < (uint)param_1[8])" (( "(") (binary_expression "(uint)param_1[10] < (uint)param_1[8]" (cast_expression "(uint)param_1[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (< "<") (cast_expression "(uint)param_1[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) () ")")) (compound_statement "{\n      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);\n      bVar2 = iVar1 != 0;\n      iVar1 = param_1[0xb];\n    }" ({ "{") (expression_statement "iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);" (assignment_expression "iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6)" (identifier "iVar1") (= "=") (call_expression "FUN_00022130(iVar3,param_2,param_5,param_6)" (identifier "FUN_00022130") (argument_list "(iVar3,param_2,param_5,param_6)" (( "(") (identifier "iVar3") (, ",") (identifier "param_2") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "bVar2 = iVar1 != 0;" (assignment_expression "bVar2 = iVar1 != 0" (identifier "bVar2") (= "=") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "iVar1 = param_1[0xb];" (assignment_expression "iVar1 = param_1[0xb]" (identifier "iVar1") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" (else "else") (compound_statement "{\n      iVar1 = param_1[0xb];\n      bVar2 = true;\n    }" ({ "{") (expression_statement "iVar1 = param_1[0xb];" (assignment_expression "iVar1 = param_1[0xb]" (identifier "iVar1") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")))) (if_statement "if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {\n      bVar2 = false;\n    }" (if "if") (parenthesized_expression "((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0))" (( "(") (binary_expression "(iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)" (( "(") (comma_expression "iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0" (assignment_expression "iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6)" (identifier "iVar1") (= "=") (call_expression "FUN_00022130(iVar3,param_3,param_5,param_6)" (identifier "FUN_00022130") (argument_list "(iVar3,param_3,param_5,param_6)" (( "(") (identifier "iVar3") (, ",") (identifier "param_3") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      bVar2 = false;\n    }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}"))) (if_statement "if ((param_1[0xe] & 0x80U) == 0) {\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }" (if "if") (parenthesized_expression "((param_1[0xe] & 0x80U) == 0)" (( "(") (binary_expression "(param_1[0xe] & 0x80U) == 0" (parenthesized_expression "(param_1[0xe] & 0x80U)" (( "(") (binary_expression "param_1[0xe] & 0x80U" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (& "&") (number_literal "0x80U")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }\n      FUN_00022130(iVar3,param_4,param_5,param_6);\n    }" ({ "{") (if_statement "if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }" (if "if") (parenthesized_expression "(((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0))" (( "(") (binary_expression "((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)" (parenthesized_expression "((param_1[8] == 0) && (param_1[9] == 0))" (( "(") (binary_expression "(param_1[8] == 0) && (param_1[9] == 0)" (parenthesized_expression "(param_1[8] == 0)" (( "(") (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1[9] == 0)" (( "(") (binary_expression "param_1[9] == 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0xb] == 0)" (( "(") (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if (iVar4 == -1) {\n          return bVar2;\n        }\n        goto LAB_00017f14;\n      }" ({ "{") (if_statement "if (iVar4 == -1) {\n          return bVar2;\n        }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          return bVar2;\n        }" ({ "{") (return_statement "return bVar2;" (return "return") (identifier "bVar2") (; ";")) (} "}"))) (goto_statement "goto LAB_00017f14;" (goto "goto") (statement_identifier "LAB_00017f14") (; ";")) (} "}"))) (expression_statement "FUN_00022130(iVar3,param_4,param_5,param_6);" (call_expression "FUN_00022130(iVar3,param_4,param_5,param_6)" (identifier "FUN_00022130") (argument_list "(iVar3,param_4,param_5,param_6)" (( "(") (identifier "iVar3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (iVar4 == -1) {\n    return bVar2;\n  }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    return bVar2;\n  }" ({ "{") (return_statement "return bVar2;" (return "return") (identifier "bVar2") (; ";")) (} "}"))) (if_statement "if (((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" (if "if") (parenthesized_expression "(((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0))" (( "(") (binary_expression "((uint)param_1[0xb] < (uint)param_1[9]) &&\n     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)" (parenthesized_expression "((uint)param_1[0xb] < (uint)param_1[9])" (( "(") (binary_expression "(uint)param_1[0xb] < (uint)param_1[9]" (cast_expression "(uint)param_1[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (< "<") (cast_expression "(uint)param_1[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0" (assignment_expression "iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6)" (identifier "iVar3") (= "=") (call_expression "FUN_00022130(iVar4,param_2,param_5,param_6)" (identifier "FUN_00022130") (argument_list "(iVar4,param_2,param_5,param_6)" (( "(") (identifier "iVar4") (, ",") (identifier "param_2") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    bVar2 = false;\n  }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}"))) (labeled_statement "LAB_00017f14:\n  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" (statement_identifier "LAB_00017f14") (: ":") (if_statement "if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {\n    bVar2 = false;\n  }" (if "if") (parenthesized_expression "((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0))" (( "(") (binary_expression "(param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)" (parenthesized_expression "(param_1[10] != 0)" (( "(") (binary_expression "param_1[10] != 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0" (assignment_expression "iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6)" (identifier "iVar3") (= "=") (call_expression "FUN_00022130(iVar4,param_3,param_5,param_6)" (identifier "FUN_00022130") (argument_list "(iVar4,param_3,param_5,param_6)" (( "(") (identifier "iVar4") (, ",") (identifier "param_3") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    bVar2 = false;\n  }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")))) (if_statement "if (((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }" (if "if") (parenthesized_expression "(((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0))))" (( "(") (binary_expression "((param_1[0x11] & 0x80U) == 0) &&\n     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))" (parenthesized_expression "((param_1[0x11] & 0x80U) == 0)" (( "(") (binary_expression "(param_1[0x11] & 0x80U) == 0" (parenthesized_expression "(param_1[0x11] & 0x80U)" (( "(") (binary_expression "param_1[0x11] & 0x80U" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (& "&") (number_literal "0x80U")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))" (( "(") (parenthesized_expression "((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0))" (( "(") (binary_expression "(param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)" (parenthesized_expression "(param_1[9] != 0 || (param_1[8] != 0))" (( "(") (binary_expression "param_1[9] != 0 || (param_1[8] != 0)" (binary_expression "param_1[9] != 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_1[10] != 0)" (( "(") (binary_expression "param_1[10] != 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    FUN_00022130(iVar4,param_4,param_5,param_6);\n  }" ({ "{") (expression_statement "FUN_00022130(iVar4,param_4,param_5,param_6);" (call_expression "FUN_00022130(iVar4,param_4,param_5,param_6)" (identifier "FUN_00022130") (argument_list "(iVar4,param_4,param_5,param_6)" (( "(") (identifier "iVar4") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}"))) (return_statement "return bVar2;" (return "return") (identifier "bVar2") (; ";")) (} "}")))

/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */
/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */
/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */

type_1 function_1(type_2 *urh,type_3 *rs,type_3 *ws,type_3 *es,
                  type_4 *max_fd,type_5 fd_setsize)

{
  size_t var_4;
  int var_3;
  bool bVar3;
  int var_1;
  int var_7;
  
  var_1 = urh->connection->socket_fd;
  var_7 = (urh->mhd).socket;
  if (var_1 == -1) {
    bVar3 = true;
  }
  else {
    if (urh->in_buffer_used < urh->in_buffer_size) {
      var_3 = var_2(var_1,rs,max_fd,fd_setsize);
      bVar3 = var_3 != 0;
      var_4 = urh->out_buffer_used;
    }
    else {
      var_4 = urh->out_buffer_used;
      bVar3 = true;
    }
    if ((var_4 != 0) && (var_3 = var_2(var_1,ws,max_fd,fd_setsize), var_3 == 0)) {
      bVar3 = false;
    }
    if (((urh->app).celi & var_5) == var_6) {
      if (((urh->in_buffer_size == 0) && (urh->out_buffer_size == 0)) && (urh->out_buffer_used == 0)
         ) {
        if (var_7 == -1) {
          return bVar3;
        }
        goto LAB_00017f14;
      }
      var_2(var_1,es,max_fd,fd_setsize);
    }
  }
  if (var_7 == -1) {
    return bVar3;
  }
  if ((urh->out_buffer_used < urh->out_buffer_size) &&
     (var_1 = var_2(var_7,rs,max_fd,fd_setsize), var_1 == 0)) {
    bVar3 = false;
  }
LAB_00017f14:
  if ((urh->in_buffer_used != 0) &&
     (var_1 = var_2(var_7,ws,max_fd,fd_setsize), var_1 == 0)) {
    bVar3 = false;
  }
  if ((((urh->mhd).celi & var_5) == var_6) &&
     (((urh->out_buffer_size != 0 || (urh->in_buffer_size != 0)) || (urh->in_buffer_used != 0)))) {
    var_2(var_7,es,max_fd,fd_setsize);
  }
  return bVar3;
}


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

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

{
  int iVar1;
  bool bVar2;
  int iVar3;
  int iVar4;
  
  iVar3 = *(int *)(*param_1 + 0xa4);
  iVar4 = param_1[0x10];
  if (iVar3 == -1) {
    bVar2 = true;
  }
  else {
    if ((uint)param_1[10] < (uint)param_1[8]) {
      iVar1 = FUN_00022130(iVar3,param_2,param_5,param_6);
      bVar2 = iVar1 != 0;
      iVar1 = param_1[0xb];
    }
    else {
      iVar1 = param_1[0xb];
      bVar2 = true;
    }
    if ((iVar1 != 0) && (iVar1 = FUN_00022130(iVar3,param_3,param_5,param_6), iVar1 == 0)) {
      bVar2 = false;
    }
    if ((param_1[0xe] & 0x80U) == 0) {
      if (((param_1[8] == 0) && (param_1[9] == 0)) && (param_1[0xb] == 0)) {
        if (iVar4 == -1) {
          return bVar2;
        }
        goto LAB_00017f14;
      }
      FUN_00022130(iVar3,param_4,param_5,param_6);
    }
  }
  if (iVar4 == -1) {
    return bVar2;
  }
  if (((uint)param_1[0xb] < (uint)param_1[9]) &&
     (iVar3 = FUN_00022130(iVar4,param_2,param_5,param_6), iVar3 == 0)) {
    bVar2 = false;
  }
LAB_00017f14:
  if ((param_1[10] != 0) && (iVar3 = FUN_00022130(iVar4,param_3,param_5,param_6), iVar3 == 0)) {
    bVar2 = false;
  }
  if (((param_1[0x11] & 0x80U) == 0) &&
     (((param_1[9] != 0 || (param_1[8] != 0)) || (param_1[10] != 0)))) {
    FUN_00022130(iVar4,param_4,param_5,param_6);
  }
  return bVar2;
}

