
/* 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 */

int process_broken_line(MHD_Connection *connection,char *line,MHD_ValueKind kind)

{
  char cVar1;
  int iVar2;
  char *pcVar3;
  ulong uVar4;
  ulong uVar5;
  char *pcVar6;
  
  pcVar3 = connection->last;
  if ((*line == ' ') || (*line == '\t')) {
    uVar4 = 0xffffffffffffffff;
    pcVar6 = pcVar3;
    do {
      if (uVar4 == 0) break;
      uVar4 = uVar4 - 1;
      cVar1 = *pcVar6;
      pcVar6 = pcVar6 + 1;
    } while (cVar1 != '\0');
    uVar4 = ~uVar4;
    do {
      do {
        line = line + 1;
      } while (*line == ' ');
    } while (*line == '\t');
    uVar5 = 0xffffffffffffffff;
    pcVar6 = line;
    do {
      if (uVar5 == 0) break;
      uVar5 = uVar5 - 1;
      cVar1 = *pcVar6;
      pcVar6 = pcVar6 + 1;
    } while (cVar1 != '\0');
    pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);
    if (pcVar3 == (char *)0x0) {
      transmit_error_response
                (connection,0x1af,
                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                );
      iVar2 = 0;
    }
    else {
      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);
      connection->last = pcVar3;
      iVar2 = 1;
    }
  }
  else {
    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);
    if (iVar2 == 0) {
      transmit_error_response
                (connection,0x1af,
                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                );
      iVar2 = 0;
    }
    else {
      iVar2 = 1;
      if (*line != '\0') {
        iVar2 = process_header_line(connection,line);
        if (iVar2 == 0) {
          transmit_error_response
                    (connection,400,
                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"
                    );
          iVar2 = 0;
        }
        else {
          iVar2 = 1;
        }
      }
    }
  }
  return iVar2;
}



undefined4 FUN_00107315(long param_1,char *param_2,undefined4 param_3)

{
  char cVar1;
  char *pcVar2;
  int iVar3;
  long lVar4;
  ulong uVar5;
  ulong uVar6;
  undefined4 uVar7;
  char *pcVar8;
  
  pcVar2 = *(char **)(param_1 + 0x98);
  if ((*param_2 == ' ') || (*param_2 == '\t')) {
    uVar5 = 0xffffffffffffffff;
    pcVar8 = pcVar2;
    do {
      if (uVar5 == 0) break;
      uVar5 = uVar5 - 1;
      cVar1 = *pcVar8;
      pcVar8 = pcVar8 + 1;
    } while (cVar1 != '\0');
    uVar5 = ~uVar5;
    do {
      do {
        param_2 = param_2 + 1;
      } while (*param_2 == ' ');
    } while (*param_2 == '\t');
    uVar6 = 0xffffffffffffffff;
    pcVar8 = param_2;
    do {
      if (uVar6 == 0) break;
      uVar6 = uVar6 - 1;
      cVar1 = *pcVar8;
      pcVar8 = pcVar8 + 1;
    } while (cVar1 != '\0');
    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);
    if (lVar4 == 0) {
      FUN_00107096(param_1,0x1af,
                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                  );
      uVar7 = 0;
    }
    else {
      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);
      *(long *)(param_1 + 0x98) = lVar4;
      uVar7 = 1;
    }
  }
  else {
    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);
    if (iVar3 == 0) {
      FUN_00107096(param_1,0x1af,
                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                  );
      uVar7 = 0;
    }
    else {
      uVar7 = 1;
      if (*param_2 != '\0') {
        iVar3 = FUN_00105eb8(param_1,param_2);
        if (iVar3 == 0) {
          FUN_00107096(param_1,400,
                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"
                      );
          uVar7 = 0;
        }
        else {
          uVar7 = 1;
        }
      }
    }
  }
  return uVar7;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV R13,RDI
MOV RBX,RSI
MOV RSI,qword ptr [RDI + 0x98]
MOVZX EAX,byte ptr [RBX]
CMP AL,0x20
JZ 0x00107339
CMP AL,0x9
JNZ 0x001073da
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RSI
SCASB.REPNE RDI
MOV RDX,RCX
NOT RDX
LEA RBP,[RDX + -0x1]
ADD RBX,0x1
MOVZX EAX,byte ptr [RBX]
CMP AL,0x20
JZ 0x00107354
CMP AL,0x9
JZ 0x00107354
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RBX
SCASB.REPNE RDI
MOV RDX,RCX
NOT RDX
LEA R12,[RDX + -0x1]
LEA RDX,[RBP + 0x1]
LEA RCX,[R12 + RDX*0x1]
MOV RDI,qword ptr [R13 + 0x50]
CALL 0x0011111f
MOV R14,RAX
TEST RAX,RAX
JZ 0x001073bf
LEA RDI,[RAX + RBP*0x1]
LEA RDX,[R12 + 0x1]
MOV RSI,RBX
CALL 0x00104410
MOV qword ptr [R13 + 0x98],R14
MOV EBP,0x1
MOV EAX,EBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
LEA RDX,[0x118648]
MOV ESI,0x1af
MOV RDI,R13
CALL 0x00107096
MOV EBP,0x0
JMP 0x001073b4
MOV ECX,EDX
MOV RDX,qword ptr [RDI + 0xa0]
CALL 0x001071a2
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00107410
MOV EBP,0x1
CMP byte ptr [RBX],0x0
JZ 0x001073b4
MOV RSI,RBX
MOV RDI,R13
CALL 0x00105eb8
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00107426
MOV EBP,0x1
JMP 0x001073b4
LEA RDX,[0x118648]
MOV ESI,0x1af
MOV RDI,R13
CALL 0x00107096
JMP 0x001073b4
LEA RDX,[0x1186d8]
MOV ESI,0x190
MOV RDI,R13
CALL 0x00107096
JMP 0x001073b4
(translation_unit "undefined4 FUN_00107315(long param_1,char *param_2,undefined4 param_3)\n\n{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}\n\n" (function_definition "undefined4 FUN_00107315(long param_1,char *param_2,undefined4 param_3)\n\n{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}" type_identifier (function_declarator "FUN_00107315(long param_1,char *param_2,undefined4 param_3)" identifier (parameter_list "(long param_1,char *param_2,undefined4 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (expression_statement "pcVar2 = *(char **)(param_1 + 0x98);" (assignment_expression "pcVar2 = *(char **)(param_1 + 0x98)" identifier = (pointer_expression "*(char **)(param_1 + 0x98)" * (cast_expression "(char **)(param_1 + 0x98)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*param_2 == ' ') || (*param_2 == '\t'))" ( (binary_expression "(*param_2 == ' ') || (*param_2 == '\t')" (parenthesized_expression "(*param_2 == ' ')" ( (binary_expression "*param_2 == ' '" (pointer_expression "*param_2" * identifier) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*param_2 == '\t')" ( (binary_expression "*param_2 == '\t'" (pointer_expression "*param_2" * identifier) == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }" { (expression_statement "uVar5 = 0xffffffffffffffff;" (assignment_expression "uVar5 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar2;" (assignment_expression "pcVar8 = pcVar2" identifier = identifier) ;) (do_statement "do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    }" { (if_statement "if (uVar5 == 0) break;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar5 = ~uVar5;" (assignment_expression "uVar5 = ~uVar5" identifier = (unary_expression "~uVar5" ~ identifier)) ;) (do_statement "do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');" do (compound_statement "{\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    }" { (do_statement "do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');" do (compound_statement "{\n        param_2 = param_2 + 1;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*param_2 == ' ')" ( (binary_expression "*param_2 == ' '" (pointer_expression "*param_2" * identifier) == (char_literal "' '" ' character ')) )) ;) }) while (parenthesized_expression "(*param_2 == '\t')" ( (binary_expression "*param_2 == '\t'" (pointer_expression "*param_2" * identifier) == (char_literal "'\t'" ' escape_sequence ')) )) ;) (expression_statement "uVar6 = 0xffffffffffffffff;" (assignment_expression "uVar6 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (do_statement "do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    }" { (if_statement "if (uVar6 == 0) break;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);" (assignment_expression "lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" identifier = (call_expression "FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , identifier , identifier , (binary_expression "(~uVar6 - 1) + uVar5" (parenthesized_expression "(~uVar6 - 1)" ( (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" ~ identifier) - number_literal) )) + identifier) )))) ;) (if_statement "if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }" { (expression_statement "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );" (call_expression "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" identifier (argument_list "(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" ( identifier , number_literal , (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" " string_content ") ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" else (compound_statement "{\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" { (expression_statement "memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);" (call_expression "memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6)" identifier (argument_list "((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6)" ( (cast_expression "(void *)(lVar4 + (uVar5 - 1))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + (uVar5 - 1))" ( (binary_expression "lVar4 + (uVar5 - 1)" identifier + (parenthesized_expression "(uVar5 - 1)" ( (binary_expression "uVar5 - 1" identifier - number_literal) ))) ))) , identifier , (unary_expression "~uVar6" ~ identifier) ))) ;) (expression_statement "*(long *)(param_1 + 0x98) = lVar4;" (assignment_expression "*(long *)(param_1 + 0x98) = lVar4" (pointer_expression "*(long *)(param_1 + 0x98)" * (cast_expression "(long *)(param_1 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" { (expression_statement "iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);" (assignment_expression "iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" identifier = (call_expression "FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" identifier (argument_list "(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_1 + 0xa0)" * (cast_expression "(undefined8 *)(param_1 + 0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }" { (expression_statement "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );" (call_expression "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" identifier (argument_list "(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" ( identifier , number_literal , (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" " string_content ") ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" else (compound_statement "{\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }" { (expression_statement "iVar3 = FUN_00105eb8(param_1,param_2);" (assignment_expression "iVar3 = FUN_00105eb8(param_1,param_2)" identifier = (call_expression "FUN_00105eb8(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }" { (expression_statement "FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );" (call_expression "FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      )" identifier (argument_list "(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      )" ( identifier , number_literal , (string_literal ""<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"" " string_content ") ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar7 = 1;\n        }" else (compound_statement "{\n          uVar7 = 1;\n        }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) })) }))) }))) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */\n/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */\n\nint process_broken_line(MHD_Connection *connection,char *line,MHD_ValueKind kind)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  ulong uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  \n  pcVar3 = connection->last;\n  if ((*line == ' ') || (*line == '\t')) {\n    uVar4 = 0xffffffffffffffff;\n    pcVar6 = pcVar3;\n    do {\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    uVar4 = ~uVar4;\n    do {\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    } while (*line == '\t');\n    uVar5 = 0xffffffffffffffff;\n    pcVar6 = line;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);\n    if (pcVar3 == (char *)0x0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }\n  }\n  else {\n    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);\n    if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }\n  }\n  return iVar2;\n}\n\n" comment comment comment (function_definition "int process_broken_line(MHD_Connection *connection,char *line,MHD_ValueKind kind)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  ulong uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  \n  pcVar3 = connection->last;\n  if ((*line == ' ') || (*line == '\t')) {\n    uVar4 = 0xffffffffffffffff;\n    pcVar6 = pcVar3;\n    do {\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    uVar4 = ~uVar4;\n    do {\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    } while (*line == '\t');\n    uVar5 = 0xffffffffffffffff;\n    pcVar6 = line;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);\n    if (pcVar3 == (char *)0x0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }\n  }\n  else {\n    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);\n    if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "process_broken_line(MHD_Connection *connection,char *line,MHD_ValueKind kind)" identifier (parameter_list "(MHD_Connection *connection,char *line,MHD_ValueKind kind)" ( (parameter_declaration "MHD_Connection *connection" type_identifier (pointer_declarator "*connection" * identifier)) , (parameter_declaration "char *line" primitive_type (pointer_declarator "*line" * identifier)) , (parameter_declaration "MHD_ValueKind kind" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  ulong uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  \n  pcVar3 = connection->last;\n  if ((*line == ' ') || (*line == '\t')) {\n    uVar4 = 0xffffffffffffffff;\n    pcVar6 = pcVar3;\n    do {\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    uVar4 = ~uVar4;\n    do {\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    } while (*line == '\t');\n    uVar5 = 0xffffffffffffffff;\n    pcVar6 = line;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);\n    if (pcVar3 == (char *)0x0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }\n  }\n  else {\n    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);\n    if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }\n  }\n  return iVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "pcVar3 = connection->last;" (assignment_expression "pcVar3 = connection->last" identifier = (field_expression "connection->last" identifier -> field_identifier)) ;) (if_statement "if ((*line == ' ') || (*line == '\t')) {\n    uVar4 = 0xffffffffffffffff;\n    pcVar6 = pcVar3;\n    do {\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    uVar4 = ~uVar4;\n    do {\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    } while (*line == '\t');\n    uVar5 = 0xffffffffffffffff;\n    pcVar6 = line;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);\n    if (pcVar3 == (char *)0x0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }\n  }\n  else {\n    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);\n    if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*line == ' ') || (*line == '\t'))" ( (binary_expression "(*line == ' ') || (*line == '\t')" (parenthesized_expression "(*line == ' ')" ( (binary_expression "*line == ' '" (pointer_expression "*line" * identifier) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*line == '\t')" ( (binary_expression "*line == '\t'" (pointer_expression "*line" * identifier) == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar4 = 0xffffffffffffffff;\n    pcVar6 = pcVar3;\n    do {\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    uVar4 = ~uVar4;\n    do {\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    } while (*line == '\t');\n    uVar5 = 0xffffffffffffffff;\n    pcVar6 = line;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');\n    pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);\n    if (pcVar3 == (char *)0x0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }\n  }" { (expression_statement "uVar4 = 0xffffffffffffffff;" (assignment_expression "uVar4 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar3;" (assignment_expression "pcVar6 = pcVar3" identifier = identifier) ;) (do_statement "do {\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar4 == 0) break;\n      uVar4 = uVar4 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    }" { (if_statement "if (uVar4 == 0) break;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = uVar4 - 1;" (assignment_expression "uVar4 = uVar4 - 1" identifier = (binary_expression "uVar4 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar4 = ~uVar4;" (assignment_expression "uVar4 = ~uVar4" identifier = (unary_expression "~uVar4" ~ identifier)) ;) (do_statement "do {\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    } while (*line == '\t');" do (compound_statement "{\n      do {\n        line = line + 1;\n      } while (*line == ' ');\n    }" { (do_statement "do {\n        line = line + 1;\n      } while (*line == ' ');" do (compound_statement "{\n        line = line + 1;\n      }" { (expression_statement "line = line + 1;" (assignment_expression "line = line + 1" identifier = (binary_expression "line + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*line == ' ')" ( (binary_expression "*line == ' '" (pointer_expression "*line" * identifier) == (char_literal "' '" ' character ')) )) ;) }) while (parenthesized_expression "(*line == '\t')" ( (binary_expression "*line == '\t'" (pointer_expression "*line" * identifier) == (char_literal "'\t'" ' escape_sequence ')) )) ;) (expression_statement "uVar5 = 0xffffffffffffffff;" (assignment_expression "uVar5 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = line;" (assignment_expression "pcVar6 = line" identifier = identifier) ;) (do_statement "do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar6;\n      pcVar6 = pcVar6 + 1;\n    }" { (if_statement "if (uVar5 == 0) break;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4);" (assignment_expression "pcVar3 = (char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4)" identifier = (cast_expression "(char *)MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "MHD_pool_reallocate(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4)" identifier (argument_list "(connection->pool,pcVar3,uVar4,(~uVar5 - 1) + uVar4)" ( (field_expression "connection->pool" identifier -> field_identifier) , identifier , identifier , (binary_expression "(~uVar5 - 1) + uVar4" (parenthesized_expression "(~uVar5 - 1)" ( (binary_expression "~uVar5 - 1" (unary_expression "~uVar5" ~ identifier) - number_literal) )) + identifier) ))))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }" { (expression_statement "transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );" (call_expression "transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                )" identifier (argument_list "(connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                )" ( identifier , number_literal , (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" " string_content ") ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }" else (compound_statement "{\n      memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);\n      connection->last = pcVar3;\n      iVar2 = 1;\n    }" { (expression_statement "memcpy(pcVar3 + (uVar4 - 1),line,~uVar5);" (call_expression "memcpy(pcVar3 + (uVar4 - 1),line,~uVar5)" identifier (argument_list "(pcVar3 + (uVar4 - 1),line,~uVar5)" ( (binary_expression "pcVar3 + (uVar4 - 1)" identifier + (parenthesized_expression "(uVar4 - 1)" ( (binary_expression "uVar4 - 1" identifier - number_literal) ))) , identifier , (unary_expression "~uVar5" ~ identifier) ))) ;) (expression_statement "connection->last = pcVar3;" (assignment_expression "connection->last = pcVar3" (field_expression "connection->last" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);\n    if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);\n    if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }\n  }" { (expression_statement "iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind);" (assignment_expression "iVar2 = connection_add_header(connection,pcVar3,connection->colon,kind)" identifier = (call_expression "connection_add_header(connection,pcVar3,connection->colon,kind)" identifier (argument_list "(connection,pcVar3,connection->colon,kind)" ( identifier , identifier , (field_expression "connection->colon" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }\n    else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );\n      iVar2 = 0;\n    }" { (expression_statement "transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                );" (call_expression "transmit_error_response\n                (connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                )" identifier (argument_list "(connection,0x1af,\n                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                )" ( identifier , number_literal , (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" " string_content ") ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }" else (compound_statement "{\n      iVar2 = 1;\n      if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (*line != '\0') {\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }" if (parenthesized_expression "(*line != '\0')" ( (binary_expression "*line != '\0'" (pointer_expression "*line" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar2 = process_header_line(connection,line);\n        if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }\n      }" { (expression_statement "iVar2 = process_header_line(connection,line);" (assignment_expression "iVar2 = process_header_line(connection,line)" identifier = (call_expression "process_header_line(connection,line)" identifier (argument_list "(connection,line)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }\n        else {\n          iVar2 = 1;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );\n          iVar2 = 0;\n        }" { (expression_statement "transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    );" (call_expression "transmit_error_response\n                    (connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    )" identifier (argument_list "(connection,400,\n                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                    )" ( identifier , number_literal , (string_literal ""<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"" " string_content ") ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar2 = 1;\n        }" else (compound_statement "{\n          iVar2 = 1;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) })) }))) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "undefined4 FUN_00107315(long param_1,char *param_2,undefined4 param_3)\n\n{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}\n\n" (function_definition "undefined4 FUN_00107315(long param_1,char *param_2,undefined4 param_3)\n\n{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}" type_identifier (function_declarator "FUN_00107315(long param_1,char *param_2,undefined4 param_3)" identifier (parameter_list "(long param_1,char *param_2,undefined4 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (expression_statement "pcVar2 = *(char **)(param_1 + 0x98);" (assignment_expression "pcVar2 = *(char **)(param_1 + 0x98)" identifier = (pointer_expression "*(char **)(param_1 + 0x98)" * (cast_expression "(char **)(param_1 + 0x98)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*param_2 == ' ') || (*param_2 == '\t'))" ( (binary_expression "(*param_2 == ' ') || (*param_2 == '\t')" (parenthesized_expression "(*param_2 == ' ')" ( (binary_expression "*param_2 == ' '" (pointer_expression "*param_2" * identifier) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*param_2 == '\t')" ( (binary_expression "*param_2 == '\t'" (pointer_expression "*param_2" * identifier) == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }" { (expression_statement "uVar5 = 0xffffffffffffffff;" (assignment_expression "uVar5 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar2;" (assignment_expression "pcVar8 = pcVar2" identifier = identifier) ;) (do_statement "do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    }" { (if_statement "if (uVar5 == 0) break;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar5 = ~uVar5;" (assignment_expression "uVar5 = ~uVar5" identifier = (unary_expression "~uVar5" ~ identifier)) ;) (do_statement "do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');" do (compound_statement "{\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    }" { (do_statement "do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');" do (compound_statement "{\n        param_2 = param_2 + 1;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*param_2 == ' ')" ( (binary_expression "*param_2 == ' '" (pointer_expression "*param_2" * identifier) == (char_literal "' '" ' character ')) )) ;) }) while (parenthesized_expression "(*param_2 == '\t')" ( (binary_expression "*param_2 == '\t'" (pointer_expression "*param_2" * identifier) == (char_literal "'\t'" ' escape_sequence ')) )) ;) (expression_statement "uVar6 = 0xffffffffffffffff;" (assignment_expression "uVar6 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (do_statement "do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    }" { (if_statement "if (uVar6 == 0) break;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);" (assignment_expression "lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" identifier = (call_expression "FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , identifier , identifier , (binary_expression "(~uVar6 - 1) + uVar5" (parenthesized_expression "(~uVar6 - 1)" ( (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" ~ identifier) - number_literal) )) + identifier) )))) ;) (if_statement "if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }" { (expression_statement "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );" (call_expression "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" identifier (argument_list "(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" ( identifier , number_literal , (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" " string_content ") ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" else (compound_statement "{\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" { (expression_statement "memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);" (call_expression "memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6)" identifier (argument_list "((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6)" ( (cast_expression "(void *)(lVar4 + (uVar5 - 1))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + (uVar5 - 1))" ( (binary_expression "lVar4 + (uVar5 - 1)" identifier + (parenthesized_expression "(uVar5 - 1)" ( (binary_expression "uVar5 - 1" identifier - number_literal) ))) ))) , identifier , (unary_expression "~uVar6" ~ identifier) ))) ;) (expression_statement "*(long *)(param_1 + 0x98) = lVar4;" (assignment_expression "*(long *)(param_1 + 0x98) = lVar4" (pointer_expression "*(long *)(param_1 + 0x98)" * (cast_expression "(long *)(param_1 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" { (expression_statement "iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);" (assignment_expression "iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" identifier = (call_expression "FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" identifier (argument_list "(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_1 + 0xa0)" * (cast_expression "(undefined8 *)(param_1 + 0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }" { (expression_statement "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );" (call_expression "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" identifier (argument_list "(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" ( identifier , number_literal , (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" " string_content ") ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" else (compound_statement "{\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }" { (expression_statement "iVar3 = FUN_00105eb8(param_1,param_2);" (assignment_expression "iVar3 = FUN_00105eb8(param_1,param_2)" identifier = (call_expression "FUN_00105eb8(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }" { (expression_statement "FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );" (call_expression "FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      )" identifier (argument_list "(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      )" ( identifier , number_literal , (string_literal ""<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"" " string_content ") ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar7 = 1;\n        }" else (compound_statement "{\n          uVar7 = 1;\n        }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) })) }))) }))) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ IDENT)) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) ))) , IDENT , (unary_expression ~ IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00107315(long param_1,char *param_2,undefined4 param_3)\n\n{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}" (type_identifier "undefined4") (function_declarator "FUN_00107315(long param_1,char *param_2,undefined4 param_3)" (identifier "FUN_00107315") (parameter_list "(long param_1,char *param_2,undefined4 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  \n  pcVar2 = *(char **)(param_1 + 0x98);\n  if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }\n  return uVar7;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (expression_statement "pcVar2 = *(char **)(param_1 + 0x98);" (assignment_expression "pcVar2 = *(char **)(param_1 + 0x98)" (identifier "pcVar2") (= "=") (pointer_expression "*(char **)(param_1 + 0x98)" (* "*") (cast_expression "(char **)(param_1 + 0x98)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (if_statement "if ((*param_2 == ' ') || (*param_2 == '\t')) {\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }\n  else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*param_2 == ' ') || (*param_2 == '\t'))" (( "(") (binary_expression "(*param_2 == ' ') || (*param_2 == '\t')" (parenthesized_expression "(*param_2 == ' ')" (( "(") (binary_expression "*param_2 == ' '" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*param_2 == '\t')" (( "(") (binary_expression "*param_2 == '\t'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    uVar5 = 0xffffffffffffffff;\n    pcVar8 = pcVar2;\n    do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    uVar5 = ~uVar5;\n    do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');\n    uVar6 = 0xffffffffffffffff;\n    pcVar8 = param_2;\n    do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');\n    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);\n    if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }\n  }" ({ "{") (expression_statement "uVar5 = 0xffffffffffffffff;" (assignment_expression "uVar5 = 0xffffffffffffffff" (identifier "uVar5") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar8 = pcVar2;" (assignment_expression "pcVar8 = pcVar2" (identifier "pcVar8") (= "=") (identifier "pcVar2")) (; ";")) (do_statement "do {\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');" (do "do") (compound_statement "{\n      if (uVar5 == 0) break;\n      uVar5 = uVar5 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    }" ({ "{") (if_statement "if (uVar5 == 0) break;" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar5 = ~uVar5;" (assignment_expression "uVar5 = ~uVar5" (identifier "uVar5") (= "=") (unary_expression "~uVar5" (~ "~") (identifier "uVar5"))) (; ";")) (do_statement "do {\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    } while (*param_2 == '\t');" (do "do") (compound_statement "{\n      do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');\n    }" ({ "{") (do_statement "do {\n        param_2 = param_2 + 1;\n      } while (*param_2 == ' ');" (do "do") (compound_statement "{\n        param_2 = param_2 + 1;\n      }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*param_2 == ' ')" (( "(") (binary_expression "*param_2 == ' '" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*param_2 == '\t')" (( "(") (binary_expression "*param_2 == '\t'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (; ";")) (expression_statement "uVar6 = 0xffffffffffffffff;" (assignment_expression "uVar6 = 0xffffffffffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" (identifier "pcVar8") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    } while (cVar1 != '\0');" (do "do") (compound_statement "{\n      if (uVar6 == 0) break;\n      uVar6 = uVar6 - 1;\n      cVar1 = *pcVar8;\n      pcVar8 = pcVar8 + 1;\n    }" ({ "{") (if_statement "if (uVar6 == 0) break;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);" (assignment_expression "lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" (identifier "lVar4") (= "=") (call_expression "FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" (identifier "FUN_0011111f") (argument_list "(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (identifier "pcVar2") (, ",") (identifier "uVar5") (, ",") (binary_expression "(~uVar6 - 1) + uVar5" (parenthesized_expression "(~uVar6 - 1)" (( "(") (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" (~ "~") (identifier "uVar6")) (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "uVar5")) () ")")))) (; ";")) (if_statement "if (lVar4 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );" (call_expression "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" (identifier "FUN_00107096") (argument_list "(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" (( "(") (identifier "param_1") (, ",") (number_literal "0x1af") (, ",") (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" (" """) (string_content "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>") (" """)) () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" (else "else") (compound_statement "{\n      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);\n      *(long *)(param_1 + 0x98) = lVar4;\n      uVar7 = 1;\n    }" ({ "{") (expression_statement "memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);" (call_expression "memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6)" (identifier "memcpy") (argument_list "((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6)" (( "(") (cast_expression "(void *)(lVar4 + (uVar5 - 1))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + (uVar5 - 1))" (( "(") (binary_expression "lVar4 + (uVar5 - 1)" (identifier "lVar4") (+ "+") (parenthesized_expression "(uVar5 - 1)" (( "(") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) () ")"))) () ")"))) (, ",") (identifier "param_2") (, ",") (unary_expression "~uVar6" (~ "~") (identifier "uVar6")) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x98) = lVar4;" (assignment_expression "*(long *)(param_1 + 0x98) = lVar4" (pointer_expression "*(long *)(param_1 + 0x98)" (* "*") (cast_expression "(long *)(param_1 + 0x98)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (identifier "lVar4")) (; ";")) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);\n    if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);" (assignment_expression "iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" (identifier "iVar3") (= "=") (call_expression "FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" (identifier "FUN_001071a2") (argument_list "(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar2") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0xa0)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0xa0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  );" (call_expression "FUN_00107096(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" (identifier "FUN_00107096") (argument_list "(param_1,0x1af,\n                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"\n                  )" (( "(") (identifier "param_1") (, ",") (number_literal "0x1af") (, ",") (string_literal ""<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"" (" """) (string_content "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>") (" """)) () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      uVar7 = 1;\n      if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }\n    }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*param_2 != '\0') {\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }" (if "if") (parenthesized_expression "(*param_2 != '\0')" (( "(") (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar3 = FUN_00105eb8(param_1,param_2);\n        if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }\n      }" ({ "{") (expression_statement "iVar3 = FUN_00105eb8(param_1,param_2);" (assignment_expression "iVar3 = FUN_00105eb8(param_1,param_2)" (identifier "iVar3") (= "=") (call_expression "FUN_00105eb8(param_1,param_2)" (identifier "FUN_00105eb8") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }\n        else {\n          uVar7 = 1;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );\n          uVar7 = 0;\n        }" ({ "{") (expression_statement "FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      );" (call_expression "FUN_00107096(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      )" (identifier "FUN_00107096") (argument_list "(param_1,400,\n                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"\n                      )" (( "(") (identifier "param_1") (, ",") (number_literal "400") (, ",") (string_literal ""<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"" (" """) (string_content "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>") (" """)) () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar7 = 1;\n        }" (else "else") (compound_statement "{\n          uVar7 = 1;\n        }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}")))) (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))

/* 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 */

int function_1(type_1 *connection,char *var_4,type_2 kind)

{
  char var_3;
  int var_11;
  char *var_7;
  type_3 var_1;
  type_3 var_5;
  char *var_2;
  
  var_7 = connection->last;
  if ((*var_4 == ' ') || (*var_4 == '\t')) {
    var_1 = 0xffffffffffffffff;
    var_2 = var_7;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 - 1;
      var_3 = *var_2;
      var_2 = var_2 + 1;
    } while (var_3 != '\0');
    var_1 = ~var_1;
    do {
      do {
        var_4 = var_4 + 1;
      } while (*var_4 == ' ');
    } while (*var_4 == '\t');
    var_5 = 0xffffffffffffffff;
    var_2 = var_4;
    do {
      if (var_5 == 0) break;
      var_5 = var_5 - 1;
      var_3 = *var_2;
      var_2 = var_2 + 1;
    } while (var_3 != '\0');
    var_7 = (char *)var_6(connection->pool,var_7,var_1,(~var_5 - 1) + var_1);
    if (var_7 == (char *)0x0) {
      var_8
                (connection,0x1af,
                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                );
      var_11 = 0;
    }
    else {
      var_9(var_7 + (var_1 - 1),var_4,~var_5);
      connection->last = var_7;
      var_11 = 1;
    }
  }
  else {
    var_11 = var_10(connection,var_7,connection->colon,kind);
    if (var_11 == 0) {
      var_8
                (connection,0x1af,
                 "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                );
      var_11 = 0;
    }
    else {
      var_11 = 1;
      if (*var_4 != '\0') {
        var_11 = var_12(connection,var_4);
        if (var_11 == 0) {
          var_8
                    (connection,400,
                     "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"
                    );
          var_11 = 0;
        }
        else {
          var_11 = 1;
        }
      }
    }
  }
  return var_11;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (identifier) (unary_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))))))) (return_statement (identifier)))))

undefined4 MASKED(long param_1,char *param_2,undefined4 param_3)

{
  char cVar1;
  char *pcVar2;
  int iVar3;
  long lVar4;
  ulong uVar5;
  ulong uVar6;
  undefined4 uVar7;
  char *pcVar8;
  
  pcVar2 = *(char **)(param_1 + 0x98);
  if ((*param_2 == ' ') || (*param_2 == '\t')) {
    uVar5 = 0xffffffffffffffff;
    pcVar8 = pcVar2;
    do {
      if (uVar5 == 0) break;
      uVar5 = uVar5 - 1;
      cVar1 = *pcVar8;
      pcVar8 = pcVar8 + 1;
    } while (cVar1 != '\0');
    uVar5 = ~uVar5;
    do {
      do {
        param_2 = param_2 + 1;
      } while (*param_2 == ' ');
    } while (*param_2 == '\t');
    uVar6 = 0xffffffffffffffff;
    pcVar8 = param_2;
    do {
      if (uVar6 == 0) break;
      uVar6 = uVar6 - 1;
      cVar1 = *pcVar8;
      pcVar8 = pcVar8 + 1;
    } while (cVar1 != '\0');
    lVar4 = FUN_0011111f(*(undefined8 *)(param_1 + 0x50),pcVar2,uVar5,(~uVar6 - 1) + uVar5);
    if (lVar4 == 0) {
      FUN_00107096(param_1,0x1af,
                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                  );
      uVar7 = 0;
    }
    else {
      memcpy((void *)(lVar4 + (uVar5 - 1)),param_2,~uVar6);
      *(long *)(param_1 + 0x98) = lVar4;
      uVar7 = 1;
    }
  }
  else {
    iVar3 = FUN_001071a2(param_1,pcVar2,*(undefined8 *)(param_1 + 0xa0),param_3);
    if (iVar3 == 0) {
      FUN_00107096(param_1,0x1af,
                   "<html><head><title>Request too big</title></head><body>Your HTTP header was too big for the memory constraints of this webserver.</body></html>"
                  );
      uVar7 = 0;
    }
    else {
      uVar7 = 1;
      if (*param_2 != '\0') {
        iVar3 = FUN_00105eb8(param_1,param_2);
        if (iVar3 == 0) {
          FUN_00107096(param_1,400,
                       "<html><head><title>Request malformed</title></head><body>Your HTTP request was syntactically incorrect.</body></html>"
                      );
          uVar7 = 0;
        }
        else {
          uVar7 = 1;
        }
      }
    }
  }
  return uVar7;
}

