
/* WARNING: Unknown calling convention */
/* 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 */

void urh_from_pollfd(MHD_UpgradeResponseHandle *urh,pollfd *p)

{
  MHD_EpollState MVar1;
  MHD_EpollState MVar2;
  
  MVar2 = (urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);
  (urh->app).celi = MVar2;
  MVar1 = (urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);
  (urh->mhd).celi = MVar1;
  if ((p->revents & 1U) != 0) {
    (urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;
  }
  if ((p->revents & 4U) != 0) {
    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;
  }
  if ((p->revents & 0x10U) != 0) {
    (urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);
  }
  if ((p->revents & 0xaaU) != 0) {
    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;
  }
  if ((p[1].revents & 1U) != 0) {
    (urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;
  }
  if ((p[1].revents & 4U) != 0) {
    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;
  }
  if ((p[1].revents & 0x10U) != 0) {
    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;
  }
  if ((p[1].revents & 0xaaU) != 0) {
    (urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);
  }
  return;
}



void FUN_00018560(int param_1,int param_2)

{
  uint uVar1;
  uint uVar2;
  
  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;
  *(uint *)(param_1 + 0x38) = uVar2;
  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;
  *(uint *)(param_1 + 0x44) = uVar1;
  if ((*(ushort *)(param_2 + 6) & 1) != 0) {
    *(uint *)(param_1 + 0x38) = uVar2 | 1;
  }
  if ((*(ushort *)(param_2 + 6) & 4) != 0) {
    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;
  }
  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {
    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;
  }
  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {
    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;
  }
  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {
    *(uint *)(param_1 + 0x44) = uVar1 | 1;
  }
  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {
    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;
  }
  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {
    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;
  }
  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {
    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;
  }
  return;
}


lw v1,0x38(a0)
li a2,-0x4
and v1,v1,a2
sw v1,0x38(a0)
lw v0,0x44(a0)
and v0,v0,a2
sw v0,0x44(a0)
lhu a2,0x6(a1)
andi a2,a2,0x1
beq a2,zero,0x00018590
_ori v1,v1,0x1
sw v1,0x38(a0)
lhu v1,0x6(a1)
andi v1,v1,0x4
beq v1,zero,0x000185ac
_nop
lw v1,0x38(a0)
ori v1,v1,0x2
sw v1,0x38(a0)
lhu v1,0x6(a1)
andi v1,v1,0x10
beq v1,zero,0x000185c8
_nop
lw v1,0x38(a0)
ori v1,v1,0x3
sw v1,0x38(a0)
lhu v1,0x6(a1)
andi v1,v1,0xaa
beq v1,zero,0x000185e4
_nop
lw v1,0x38(a0)
ori v1,v1,0x80
sw v1,0x38(a0)
lhu v1,0xe(a1)
andi v1,v1,0x1
beq v1,zero,0x000185f8
_ori v0,v0,0x1
sw v0,0x44(a0)
lhu v0,0xe(a1)
andi v0,v0,0x4
beq v0,zero,0x00018614
_nop
lw v0,0x44(a0)
ori v0,v0,0x2
sw v0,0x44(a0)
lhu v0,0xe(a1)
andi v0,v0,0x10
beq v0,zero,0x00018630
_nop
lw v0,0x44(a0)
ori v0,v0,0x80
sw v0,0x44(a0)
lhu v0,0xe(a1)
andi v0,v0,0xaa
beq v0,zero,0x0001864c
_nop
lw v0,0x44(a0)
ori v0,v0,0x3
sw v0,0x44(a0)
jr ra
_nop
(translation_unit "void FUN_00018560(int param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00018560(int param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00018560(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc" identifier = (binary_expression "*(uint *)(param_1 + 0x38) & 0xfffffffc" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(param_1 + 0x38) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc" identifier = (binary_expression "*(uint *)(param_1 + 0x44) & 0xfffffffc" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(param_1 + 0x44) = uVar1;" (assignment_expression "*(uint *)(param_1 + 0x44) = uVar1" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 1) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 1) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 1)" ( (binary_expression "*(ushort *)(param_2 + 6) & 1" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar2 | 1;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2 | 1" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "uVar2 | 1" identifier | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 4) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 4) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 4)" ( (binary_expression "*(ushort *)(param_2 + 6) & 4" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x38) | 2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 0x10) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 0x10) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 0x10)" ( (binary_expression "*(ushort *)(param_2 + 6) & 0x10" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x38) | 3" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 0xaa) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 0xaa) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 0xaa)" ( (binary_expression "*(ushort *)(param_2 + 6) & 0xaa" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x38) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 1) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 1) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 1)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 1" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = uVar1 | 1;" (assignment_expression "*(uint *)(param_1 + 0x44) = uVar1 | 1" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 4) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 4) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 4)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 4" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x44) | 2" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 0x10) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 0x10) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 0x10)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 0x10" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x44) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 0xaa) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 0xaa) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 0xaa)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 0xaa" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x44) | 3" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) | number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n/* 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\nvoid urh_from_pollfd(MHD_UpgradeResponseHandle *urh,pollfd *p)\n\n{\n  MHD_EpollState MVar1;\n  MHD_EpollState MVar2;\n  \n  MVar2 = (urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  (urh->app).celi = MVar2;\n  MVar1 = (urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  (urh->mhd).celi = MVar1;\n  if ((p->revents & 1U) != 0) {\n    (urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;\n  }\n  if ((p->revents & 4U) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }\n  if ((p->revents & 0x10U) != 0) {\n    (urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }\n  if ((p->revents & 0xaaU) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;\n  }\n  if ((p[1].revents & 1U) != 0) {\n    (urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;\n  }\n  if ((p[1].revents & 4U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }\n  if ((p[1].revents & 0x10U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;\n  }\n  if ((p[1].revents & 0xaaU) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }\n  return;\n}\n\n" comment comment comment comment (function_definition "void urh_from_pollfd(MHD_UpgradeResponseHandle *urh,pollfd *p)\n\n{\n  MHD_EpollState MVar1;\n  MHD_EpollState MVar2;\n  \n  MVar2 = (urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  (urh->app).celi = MVar2;\n  MVar1 = (urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  (urh->mhd).celi = MVar1;\n  if ((p->revents & 1U) != 0) {\n    (urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;\n  }\n  if ((p->revents & 4U) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }\n  if ((p->revents & 0x10U) != 0) {\n    (urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }\n  if ((p->revents & 0xaaU) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;\n  }\n  if ((p[1].revents & 1U) != 0) {\n    (urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;\n  }\n  if ((p[1].revents & 4U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }\n  if ((p[1].revents & 0x10U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;\n  }\n  if ((p[1].revents & 0xaaU) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }\n  return;\n}" primitive_type (function_declarator "urh_from_pollfd(MHD_UpgradeResponseHandle *urh,pollfd *p)" identifier (parameter_list "(MHD_UpgradeResponseHandle *urh,pollfd *p)" ( (parameter_declaration "MHD_UpgradeResponseHandle *urh" type_identifier (pointer_declarator "*urh" * identifier)) , (parameter_declaration "pollfd *p" type_identifier (pointer_declarator "*p" * identifier)) ))) (compound_statement "{\n  MHD_EpollState MVar1;\n  MHD_EpollState MVar2;\n  \n  MVar2 = (urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  (urh->app).celi = MVar2;\n  MVar1 = (urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  (urh->mhd).celi = MVar1;\n  if ((p->revents & 1U) != 0) {\n    (urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;\n  }\n  if ((p->revents & 4U) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }\n  if ((p->revents & 0x10U) != 0) {\n    (urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }\n  if ((p->revents & 0xaaU) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;\n  }\n  if ((p[1].revents & 1U) != 0) {\n    (urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;\n  }\n  if ((p[1].revents & 4U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }\n  if ((p[1].revents & 0x10U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;\n  }\n  if ((p[1].revents & 0xaaU) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }\n  return;\n}" { (declaration "MHD_EpollState MVar1;" type_identifier identifier ;) (declaration "MHD_EpollState MVar2;" type_identifier identifier ;) (expression_statement "MVar2 = (urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);" (assignment_expression "MVar2 = (urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" identifier = (binary_expression "(urh->app).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) & (unary_expression "~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ~ (parenthesized_expression "(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ( (binary_expression "MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY" identifier | identifier) ))))) ;) (expression_statement "(urh->app).celi = MVar2;" (assignment_expression "(urh->app).celi = MVar2" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "MVar1 = (urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);" (assignment_expression "MVar1 = (urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" identifier = (binary_expression "(urh->mhd).celi & ~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) & (unary_expression "~(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ~ (parenthesized_expression "(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ( (binary_expression "MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY" identifier | identifier) ))))) ;) (expression_statement "(urh->mhd).celi = MVar1;" (assignment_expression "(urh->mhd).celi = MVar1" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((p->revents & 1U) != 0) {\n    (urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;\n  }" if (parenthesized_expression "((p->revents & 1U) != 0)" ( (binary_expression "(p->revents & 1U) != 0" (parenthesized_expression "(p->revents & 1U)" ( (binary_expression "p->revents & 1U" (field_expression "p->revents" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;\n  }" { (expression_statement "(urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY;" (assignment_expression "(urh->app).celi = MVar2 | MHD_EPOLL_STATE_READ_READY" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) = (binary_expression "MVar2 | MHD_EPOLL_STATE_READ_READY" identifier | identifier)) ;) })) (if_statement "if ((p->revents & 4U) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }" if (parenthesized_expression "((p->revents & 4U) != 0)" ( (binary_expression "(p->revents & 4U) != 0" (parenthesized_expression "(p->revents & 4U)" ( (binary_expression "p->revents & 4U" (field_expression "p->revents" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }" { (expression_statement "(urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY;" (assignment_expression "(urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_WRITE_READY" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(urh->app).celi | MHD_EPOLL_STATE_WRITE_READY" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) | identifier)) ;) })) (if_statement "if ((p->revents & 0x10U) != 0) {\n    (urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }" if (parenthesized_expression "((p->revents & 0x10U) != 0)" ( (binary_expression "(p->revents & 0x10U) != 0" (parenthesized_expression "(p->revents & 0x10U)" ( (binary_expression "p->revents & 0x10U" (field_expression "p->revents" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }" { (expression_statement "(urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);" (assignment_expression "(urh->app).celi = (urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(urh->app).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "(urh->app).celi" (parenthesized_expression "(urh->app)" ( (field_expression "urh->app" identifier -> field_identifier) )) . field_identifier) | (parenthesized_expression "(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ( (binary_expression "MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY" identifier | identifier) )))) ;) })) (if_statement "if ((p->revents & 0xaaU) != 0) {\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;\n  }" if (parenthesized_expression "((p->revents & 0xaaU) != 0)" ( (binary_expression "(p->revents & 0xaaU) != 0" (parenthesized_expression "(p->revents & 0xaaU)" ( (binary_expression "p->revents & 0xaaU" (field_expression "p->revents" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;\n  }" { (expression_statement "(urh->app).celi = (urh->app).celi | MHD_EPOLL_STATE_ERROR;" (assignment_expression "(urh->app).celi = (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) = (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)) ;) })) (if_statement "if ((p[1].revents & 1U) != 0) {\n    (urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;\n  }" if (parenthesized_expression "((p[1].revents & 1U) != 0)" ( (binary_expression "(p[1].revents & 1U) != 0" (parenthesized_expression "(p[1].revents & 1U)" ( (binary_expression "p[1].revents & 1U" (field_expression "p[1].revents" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;\n  }" { (expression_statement "(urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY;" (assignment_expression "(urh->mhd).celi = MVar1 | MHD_EPOLL_STATE_READ_READY" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) = (binary_expression "MVar1 | MHD_EPOLL_STATE_READ_READY" identifier | identifier)) ;) })) (if_statement "if ((p[1].revents & 4U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }" if (parenthesized_expression "((p[1].revents & 4U) != 0)" ( (binary_expression "(p[1].revents & 4U) != 0" (parenthesized_expression "(p[1].revents & 4U)" ( (binary_expression "p[1].revents & 4U" (field_expression "p[1].revents" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;\n  }" { (expression_statement "(urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY;" (assignment_expression "(urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(urh->mhd).celi | MHD_EPOLL_STATE_WRITE_READY" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) | identifier)) ;) })) (if_statement "if ((p[1].revents & 0x10U) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;\n  }" if (parenthesized_expression "((p[1].revents & 0x10U) != 0)" ( (binary_expression "(p[1].revents & 0x10U) != 0" (parenthesized_expression "(p[1].revents & 0x10U)" ( (binary_expression "p[1].revents & 0x10U" (field_expression "p[1].revents" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;\n  }" { (expression_statement "(urh->mhd).celi = (urh->mhd).celi | MHD_EPOLL_STATE_ERROR;" (assignment_expression "(urh->mhd).celi = (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) = (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)) ;) })) (if_statement "if ((p[1].revents & 0xaaU) != 0) {\n    (urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }" if (parenthesized_expression "((p[1].revents & 0xaaU) != 0)" ( (binary_expression "(p[1].revents & 0xaaU) != 0" (parenthesized_expression "(p[1].revents & 0xaaU)" ( (binary_expression "p[1].revents & 0xaaU" (field_expression "p[1].revents" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    (urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);\n  }" { (expression_statement "(urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY);" (assignment_expression "(urh->mhd).celi = (urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(urh->mhd).celi | (MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "(urh->mhd).celi" (parenthesized_expression "(urh->mhd)" ( (field_expression "urh->mhd" identifier -> field_identifier) )) . field_identifier) | (parenthesized_expression "(MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ( (binary_expression "MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY" identifier | identifier) )))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00018560(int param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00018560(int param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00018560(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc" identifier = (binary_expression "*(uint *)(param_1 + 0x38) & 0xfffffffc" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(param_1 + 0x38) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc" identifier = (binary_expression "*(uint *)(param_1 + 0x44) & 0xfffffffc" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(param_1 + 0x44) = uVar1;" (assignment_expression "*(uint *)(param_1 + 0x44) = uVar1" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 1) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 1) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 1)" ( (binary_expression "*(ushort *)(param_2 + 6) & 1" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar2 | 1;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2 | 1" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "uVar2 | 1" identifier | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 4) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 4) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 4)" ( (binary_expression "*(ushort *)(param_2 + 6) & 4" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x38) | 2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 0x10) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 0x10) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 0x10)" ( (binary_expression "*(ushort *)(param_2 + 6) & 0x10" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x38) | 3" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 6) & 0xaa) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 6) & 0xaa) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 0xaa)" ( (binary_expression "*(ushort *)(param_2 + 6) & 0xaa" (pointer_expression "*(ushort *)(param_2 + 6)" * (cast_expression "(ushort *)(param_2 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }" { (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x38) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 1) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 1) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 1)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 1" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = uVar1 | 1;" (assignment_expression "*(uint *)(param_1 + 0x44) = uVar1 | 1" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 4) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 4) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 4)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 4" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x44) | 2" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 0x10) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 0x10) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 0x10)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 0x10" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x44) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }" if (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 0xaa) != 0)" ( (binary_expression "(*(ushort *)(param_2 + 0xe) & 0xaa) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 0xaa)" ( (binary_expression "*(ushort *)(param_2 + 0xe) & 0xaa" (pointer_expression "*(ushort *)(param_2 + 0xe)" * (cast_expression "(ushort *)(param_2 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }" { (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x44) | 3" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) | number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00018560(int param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00018560(int param_1,int param_2)" (identifier "FUN_00018560") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;\n  *(uint *)(param_1 + 0x38) = uVar2;\n  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;\n  *(uint *)(param_1 + 0x44) = uVar1;\n  if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }\n  if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }\n  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }\n  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc" (identifier "uVar2") (= "=") (binary_expression "*(uint *)(param_1 + 0x38) & 0xfffffffc" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x38) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc" (identifier "uVar1") (= "=") (binary_expression "*(uint *)(param_1 + 0x44) & 0xfffffffc" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x44) = uVar1;" (assignment_expression "*(uint *)(param_1 + 0x44) = uVar1" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (if_statement "if ((*(ushort *)(param_2 + 6) & 1) != 0) {\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 6) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 6) & 1) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 1)" (( "(") (binary_expression "*(ushort *)(param_2 + 6) & 1" (pointer_expression "*(ushort *)(param_2 + 6)" (* "*") (cast_expression "(ushort *)(param_2 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = uVar2 | 1;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = uVar2 | 1;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2 | 1" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "uVar2 | 1" (identifier "uVar2") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 6) & 4) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 6) & 4) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 6) & 4) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 4)" (( "(") (binary_expression "*(ushort *)(param_2 + 6) & 4" (pointer_expression "*(ushort *)(param_2 + 6)" (* "*") (cast_expression "(ushort *)(param_2 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x38) | 2" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 6) & 0x10) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 6) & 0x10) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 0x10)" (( "(") (binary_expression "*(ushort *)(param_2 + 6) & 0x10" (pointer_expression "*(ushort *)(param_2 + 6)" (* "*") (cast_expression "(ushort *)(param_2 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x38) | 3" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (| "|") (number_literal "3"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 6) & 0xaa) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 6) & 0xaa) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 6) & 0xaa)" (( "(") (binary_expression "*(ushort *)(param_2 + 6) & 0xaa" (pointer_expression "*(ushort *)(param_2 + 6)" (* "*") (cast_expression "(ushort *)(param_2 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xaa")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x38) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 0xe) & 1) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 1)" (( "(") (binary_expression "*(ushort *)(param_2 + 0xe) & 1" (pointer_expression "*(ushort *)(param_2 + 0xe)" (* "*") (cast_expression "(ushort *)(param_2 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xe)" (( "(") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = uVar1 | 1;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x44) = uVar1 | 1;" (assignment_expression "*(uint *)(param_1 + 0x44) = uVar1 | 1" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (binary_expression "uVar1 | 1" (identifier "uVar1") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 4) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 0xe) & 4) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 4)" (( "(") (binary_expression "*(ushort *)(param_2 + 0xe) & 4" (pointer_expression "*(ushort *)(param_2 + 0xe)" (* "*") (cast_expression "(ushort *)(param_2 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xe)" (( "(") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x44) | 2" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 0x10) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 0xe) & 0x10) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 0x10)" (( "(") (binary_expression "*(ushort *)(param_2 + 0xe) & 0x10" (pointer_expression "*(ushort *)(param_2 + 0xe)" (* "*") (cast_expression "(ushort *)(param_2 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xe)" (( "(") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x44) | 0x80" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }" (if "if") (parenthesized_expression "((*(ushort *)(param_2 + 0xe) & 0xaa) != 0)" (( "(") (binary_expression "(*(ushort *)(param_2 + 0xe) & 0xaa) != 0" (parenthesized_expression "(*(ushort *)(param_2 + 0xe) & 0xaa)" (( "(") (binary_expression "*(ushort *)(param_2 + 0xe) & 0xaa" (pointer_expression "*(ushort *)(param_2 + 0xe)" (* "*") (cast_expression "(ushort *)(param_2 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xe)" (( "(") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe")) () ")")))) (& "&") (number_literal "0xaa")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;" (assignment_expression "*(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x44) | 3" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (| "|") (number_literal "3"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */
/* 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 */

void function_1(type_1 *urh,type_2 *p)

{
  type_3 var_5;
  type_3 var_3;
  
  var_3 = (urh->app).celi & ~(var_1|var_2);
  (urh->app).celi = var_3;
  var_5 = (urh->mhd).celi & ~(var_1|var_2);
  (urh->mhd).celi = var_5;
  if ((p->revents & 1U) != 0) {
    (urh->app).celi = var_3 | var_2;
  }
  if ((p->revents & 4U) != 0) {
    (urh->app).celi = (urh->app).celi | var_1;
  }
  if ((p->revents & 0x10U) != 0) {
    (urh->app).celi = (urh->app).celi | (var_1|var_2);
  }
  if ((p->revents & 0xaaU) != 0) {
    (urh->app).celi = (urh->app).celi | var_4;
  }
  if ((p[1].revents & 1U) != 0) {
    (urh->mhd).celi = var_5 | var_2;
  }
  if ((p[1].revents & 4U) != 0) {
    (urh->mhd).celi = (urh->mhd).celi | var_1;
  }
  if ((p[1].revents & 0x10U) != 0) {
    (urh->mhd).celi = (urh->mhd).celi | var_4;
  }
  if ((p[1].revents & 0xaaU) != 0) {
    (urh->mhd).celi = (urh->mhd).celi | (var_1|var_2);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement))))

void MASKED(int param_1,int param_2)

{
  uint uVar1;
  uint uVar2;
  
  uVar2 = *(uint *)(param_1 + 0x38) & 0xfffffffc;
  *(uint *)(param_1 + 0x38) = uVar2;
  uVar1 = *(uint *)(param_1 + 0x44) & 0xfffffffc;
  *(uint *)(param_1 + 0x44) = uVar1;
  if ((*(ushort *)(param_2 + 6) & 1) != 0) {
    *(uint *)(param_1 + 0x38) = uVar2 | 1;
  }
  if ((*(ushort *)(param_2 + 6) & 4) != 0) {
    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 2;
  }
  if ((*(ushort *)(param_2 + 6) & 0x10) != 0) {
    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 3;
  }
  if ((*(ushort *)(param_2 + 6) & 0xaa) != 0) {
    *(uint *)(param_1 + 0x38) = *(uint *)(param_1 + 0x38) | 0x80;
  }
  if ((*(ushort *)(param_2 + 0xe) & 1) != 0) {
    *(uint *)(param_1 + 0x44) = uVar1 | 1;
  }
  if ((*(ushort *)(param_2 + 0xe) & 4) != 0) {
    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 2;
  }
  if ((*(ushort *)(param_2 + 0xe) & 0x10) != 0) {
    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 0x80;
  }
  if ((*(ushort *)(param_2 + 0xe) & 0xaa) != 0) {
    *(uint *)(param_1 + 0x44) = *(uint *)(param_1 + 0x44) | 3;
  }
  return;
}

