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

_Bool res_retrieve_file(char *url,char **file,iri *iri)

{
  _Bool _Var1;
  _Bool _Var2;
  iri *i;
  char *url_00;
  char *pcVar3;
  url *orig_parsed;
  long in_FS_OFFSET;
  uerr_t local_4c;
  int url_err;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  i = iri_new();
  url_00 = uri_merge(url,"/robots.txt");
  _Var2 = opt.timestamping;
  _Var1 = opt.spider;
  set_uri_encoding(i,iri->uri_encoding,false);
  i->utf8_encode = false;
  pcVar3 = (char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);
  logputs(LOG_VERBOSE,pcVar3);
  *file = (char *)0x0;
  opt.timestamping = false;
  opt.spider = false;
  orig_parsed = url_parse(url_00,&url_err,i,true);
  if (orig_parsed == (url *)0x0) {
    pcVar3 = url_error(url_00,url_err);
    logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);
    free(pcVar3);
    opt.spider = _Var1;
    opt.timestamping = _Var2;
    free(url_00);
    iri_free(i);
    local_4c = URLERROR;
  }
  else {
    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,
                            false);
    url_free(orig_parsed);
    opt.spider = _Var1;
    opt.timestamping = _Var2;
    free(url_00);
    iri_free(i);
    if (local_4c == RETROK) goto LAB_00132fb9;
  }
  if (*file != (char *)0x0) {
    free(*file);
    *file = (char *)0x0;
  }
LAB_00132fb9:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return local_4c == RETROK;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



bool FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)

{
  undefined1 uVar1;
  undefined1 uVar2;
  long lVar3;
  void *__ptr;
  undefined8 uVar4;
  long lVar5;
  void *__ptr_00;
  long in_FS_OFFSET;
  int local_4c;
  undefined4 local_44;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  lVar3 = FUN_0013ebc0();
  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");
  uVar2 = DAT_001774fc;
  uVar1 = DAT_00177328;
  FUN_0013ec97(lVar3,*param_3,0);
  *(undefined1 *)(lVar3 + 0x18) = 0;
  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);
  FUN_0012bb1c(0,uVar4);
  *param_2 = 0;
  DAT_001774fc = 0;
  DAT_00177328 = 0;
  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);
  if (lVar5 == 0) {
    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);
    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);
    free(__ptr_00);
    DAT_00177328 = uVar1;
    DAT_001774fc = uVar2;
    free(__ptr);
    FUN_0013ec69(lVar3);
    local_4c = 0x12;
  }
  else {
    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);
    FUN_0013629a(lVar5);
    DAT_00177328 = uVar1;
    DAT_001774fc = uVar2;
    free(__ptr);
    FUN_0013ec69(lVar3);
    if (local_4c == 0x19) goto LAB_00132fb9;
  }
  if ((void *)*param_2 != (void *)0x0) {
    free((void *)*param_2);
    *param_2 = 0;
  }
LAB_00132fb9:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return local_4c == 0x19;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV RBP,RDI
MOV R12,RSI
MOV R13,RDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
CALL 0x0013ebc0
MOV RBX,RAX
LEA RSI,[0x15cf67]
MOV RDI,RBP
CALL 0x00136c46
MOV RBP,RAX
MOVZX R15D,byte ptr [0x001774fc]
MOVZX R14D,byte ptr [0x00177328]
MOV EDX,0x0
MOV RSI,qword ptr [R13]
MOV RDI,RBX
CALL 0x0013ec97
MOV byte ptr [RBX + 0x18],0x0
MOV EDX,0x5
LEA RSI,[0x15cfc0]
MOV EDI,0x0
CALL 0x0010c9f0
MOV RSI,RAX
MOV EDI,0x0
CALL 0x0012bb1c
MOV qword ptr [R12],0x0
MOV byte ptr [0x001774fc],0x0
MOV byte ptr [0x00177328],0x0
LEA RSI,[RSP + 0x14]
MOV ECX,0x1
MOV RDX,RBX
MOV RDI,RBP
CALL 0x00137430
TEST RAX,RAX
JZ 0x00132fe0
MOV R13,RAX
SUB RSP,0x8
PUSH 0x0
PUSH RBX
PUSH 0x0
MOV R9D,0x0
MOV R8D,0x0
MOV ECX,0x0
MOV RDX,R12
MOV RSI,RBP
MOV RDI,RAX
CALL 0x00134135
MOV dword ptr [RSP + 0x2c],EAX
ADD RSP,0x20
MOV RDI,R13
CALL 0x0013629a
MOV byte ptr [0x001774fc],R15B
MOV byte ptr [0x00177328],R14B
MOV RDI,RBP
CALL 0x0010c550
MOV RDI,RBX
CALL 0x0013ec69
CMP dword ptr [RSP + 0xc],0x19
JZ 0x00132fb9
MOV RDI,qword ptr [R12]
TEST RDI,RDI
JZ 0x00132fb9
CALL 0x0010c550
MOV qword ptr [R12],0x0
CMP dword ptr [RSP + 0xc],0x19
SETZ AL
MOV RCX,qword ptr [RSP + 0x18]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0013303e
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ESI,dword ptr [RSP + 0x14]
MOV RDI,RBP
CALL 0x00136190
MOV R13,RAX
MOV RCX,RAX
MOV RDX,RBP
LEA RSI,[0x157ef8]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0012bc55
MOV RDI,R13
CALL 0x0010c550
MOV byte ptr [0x001774fc],R15B
MOV byte ptr [0x00177328],R14B
MOV RDI,RBP
CALL 0x0010c550
MOV RDI,RBX
CALL 0x0013ec69
MOV dword ptr [RSP + 0xc],0x12
JMP 0x00132fa3
CALL 0x0010ca20
(translation_unit "bool FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "bool FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)" identifier (parameter_list "(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = FUN_0013ebc0();" (assignment_expression "lVar3 = FUN_0013ebc0()" identifier = (call_expression "FUN_0013ebc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr = (void *)FUN_00136c46(param_1,"/robots.txt");" (assignment_expression "__ptr = (void *)FUN_00136c46(param_1,"/robots.txt")" identifier = (cast_expression "(void *)FUN_00136c46(param_1,"/robots.txt")" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00136c46(param_1,"/robots.txt")" identifier (argument_list "(param_1,"/robots.txt")" ( identifier , (string_literal ""/robots.txt"" " string_content ") ))))) ;) (expression_statement "uVar2 = DAT_001774fc;" (assignment_expression "uVar2 = DAT_001774fc" identifier = identifier) ;) (expression_statement "uVar1 = DAT_00177328;" (assignment_expression "uVar1 = DAT_00177328" identifier = identifier) ;) (expression_statement "FUN_0013ec97(lVar3,*param_3,0);" (call_expression "FUN_0013ec97(lVar3,*param_3,0)" identifier (argument_list "(lVar3,*param_3,0)" ( identifier , (pointer_expression "*param_3" * identifier) , number_literal ))) ;) (expression_statement "*(undefined1 *)(lVar3 + 0x18) = 0;" (assignment_expression "*(undefined1 *)(lVar3 + 0x18) = 0" (pointer_expression "*(undefined1 *)(lVar3 + 0x18)" * (cast_expression "(undefined1 *)(lVar3 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" identifier = (call_expression "dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" identifier (argument_list "(0,"Loading robots.txt; please ignore errors.\n",5)" ( number_literal , (string_literal ""Loading robots.txt; please ignore errors.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0012bb1c(0,uVar4);" (call_expression "FUN_0012bb1c(0,uVar4)" identifier (argument_list "(0,uVar4)" ( number_literal , identifier ))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "DAT_001774fc = 0;" (assignment_expression "DAT_001774fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00177328 = 0;" (assignment_expression "DAT_00177328 = 0" identifier = number_literal) ;) (expression_statement "lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);" (assignment_expression "lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1)" identifier = (call_expression "FUN_00137430(__ptr,&local_44,lVar3,1)" identifier (argument_list "(__ptr,&local_44,lVar3,1)" ( identifier , (pointer_expression "&local_44" & identifier) , identifier , number_literal )))) ;) (if_statement "if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }" { (expression_statement "__ptr_00 = (void *)FUN_00136190(__ptr,local_44);" (assignment_expression "__ptr_00 = (void *)FUN_00136190(__ptr,local_44)" identifier = (cast_expression "(void *)FUN_00136190(__ptr,local_44)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00136190(__ptr,local_44)" identifier (argument_list "(__ptr,local_44)" ( identifier , identifier ))))) ;) (expression_statement "FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);" (call_expression "FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00)" identifier (argument_list "(1,"%s: %s.\n",__ptr,__ptr_00)" ( number_literal , (string_literal ""%s: %s.\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "DAT_00177328 = uVar1;" (assignment_expression "DAT_00177328 = uVar1" identifier = identifier) ;) (expression_statement "DAT_001774fc = uVar2;" (assignment_expression "DAT_001774fc = uVar2" identifier = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "FUN_0013ec69(lVar3);" (call_expression "FUN_0013ec69(lVar3)" identifier (argument_list "(lVar3)" ( identifier ))) ;) (expression_statement "local_4c = 0x12;" (assignment_expression "local_4c = 0x12" identifier = number_literal) ;) }) (else_clause "else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" else (compound_statement "{\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" { (expression_statement "local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);" (assignment_expression "local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" identifier = (call_expression "FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" identifier (argument_list "(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0013629a(lVar5);" (call_expression "FUN_0013629a(lVar5)" identifier (argument_list "(lVar5)" ( identifier ))) ;) (expression_statement "DAT_00177328 = uVar1;" (assignment_expression "DAT_00177328 = uVar1" identifier = identifier) ;) (expression_statement "DAT_001774fc = uVar2;" (assignment_expression "DAT_001774fc = uVar2" identifier = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "FUN_0013ec69(lVar3);" (call_expression "FUN_0013ec69(lVar3)" identifier (argument_list "(lVar3)" ( identifier ))) ;) (if_statement "if (local_4c == 0x19) goto LAB_00132fb9;" if (parenthesized_expression "(local_4c == 0x19)" ( (binary_expression "local_4c == 0x19" identifier == number_literal) )) (goto_statement "goto LAB_00132fb9;" goto statement_identifier ;)) }))) (if_statement "if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }" if (parenthesized_expression "((void *)*param_2 != (void *)0x0)" ( (binary_expression "(void *)*param_2 != (void *)0x0" (cast_expression "(void *)*param_2" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free((void *)*param_2);\n    *param_2 = 0;\n  }" { (expression_statement "free((void *)*param_2);" (call_expression "free((void *)*param_2)" identifier (argument_list "((void *)*param_2)" ( (cast_expression "(void *)*param_2" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) ))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) })) (labeled_statement "LAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_4c == 0x19;\n  }" { (return_statement "return local_4c == 0x19;" return (binary_expression "local_4c == 0x19" identifier == number_literal) ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\n_Bool res_retrieve_file(char *url,char **file,iri *iri)\n\n{\n  _Bool _Var1;\n  _Bool _Var2;\n  iri *i;\n  char *url_00;\n  char *pcVar3;\n  url *orig_parsed;\n  long in_FS_OFFSET;\n  uerr_t local_4c;\n  int url_err;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  i = iri_new();\n  url_00 = uri_merge(url,"/robots.txt");\n  _Var2 = opt.timestamping;\n  _Var1 = opt.spider;\n  set_uri_encoding(i,iri->uri_encoding,false);\n  i->utf8_encode = false;\n  pcVar3 = (char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  logputs(LOG_VERBOSE,pcVar3);\n  *file = (char *)0x0;\n  opt.timestamping = false;\n  opt.spider = false;\n  orig_parsed = url_parse(url_00,&url_err,i,true);\n  if (orig_parsed == (url *)0x0) {\n    pcVar3 = url_error(url_00,url_err);\n    logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);\n    free(pcVar3);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    local_4c = URLERROR;\n  }\n  else {\n    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);\n    url_free(orig_parsed);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    if (local_4c == RETROK) goto LAB_00132fb9;\n  }\n  if (*file != (char *)0x0) {\n    free(*file);\n    *file = (char *)0x0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == RETROK;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "_Bool res_retrieve_file(char *url,char **file,iri *iri)\n\n{\n  _Bool _Var1;\n  _Bool _Var2;\n  iri *i;\n  char *url_00;\n  char *pcVar3;\n  url *orig_parsed;\n  long in_FS_OFFSET;\n  uerr_t local_4c;\n  int url_err;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  i = iri_new();\n  url_00 = uri_merge(url,"/robots.txt");\n  _Var2 = opt.timestamping;\n  _Var1 = opt.spider;\n  set_uri_encoding(i,iri->uri_encoding,false);\n  i->utf8_encode = false;\n  pcVar3 = (char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  logputs(LOG_VERBOSE,pcVar3);\n  *file = (char *)0x0;\n  opt.timestamping = false;\n  opt.spider = false;\n  orig_parsed = url_parse(url_00,&url_err,i,true);\n  if (orig_parsed == (url *)0x0) {\n    pcVar3 = url_error(url_00,url_err);\n    logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);\n    free(pcVar3);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    local_4c = URLERROR;\n  }\n  else {\n    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);\n    url_free(orig_parsed);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    if (local_4c == RETROK) goto LAB_00132fb9;\n  }\n  if (*file != (char *)0x0) {\n    free(*file);\n    *file = (char *)0x0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == RETROK;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "res_retrieve_file(char *url,char **file,iri *iri)" identifier (parameter_list "(char *url,char **file,iri *iri)" ( (parameter_declaration "char *url" primitive_type (pointer_declarator "*url" * identifier)) , (parameter_declaration "char **file" primitive_type (pointer_declarator "**file" * (pointer_declarator "*file" * identifier))) , (parameter_declaration "iri *iri" type_identifier (pointer_declarator "*iri" * identifier)) ))) (compound_statement "{\n  _Bool _Var1;\n  _Bool _Var2;\n  iri *i;\n  char *url_00;\n  char *pcVar3;\n  url *orig_parsed;\n  long in_FS_OFFSET;\n  uerr_t local_4c;\n  int url_err;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  i = iri_new();\n  url_00 = uri_merge(url,"/robots.txt");\n  _Var2 = opt.timestamping;\n  _Var1 = opt.spider;\n  set_uri_encoding(i,iri->uri_encoding,false);\n  i->utf8_encode = false;\n  pcVar3 = (char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  logputs(LOG_VERBOSE,pcVar3);\n  *file = (char *)0x0;\n  opt.timestamping = false;\n  opt.spider = false;\n  orig_parsed = url_parse(url_00,&url_err,i,true);\n  if (orig_parsed == (url *)0x0) {\n    pcVar3 = url_error(url_00,url_err);\n    logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);\n    free(pcVar3);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    local_4c = URLERROR;\n  }\n  else {\n    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);\n    url_free(orig_parsed);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    if (local_4c == RETROK) goto LAB_00132fb9;\n  }\n  if (*file != (char *)0x0) {\n    free(*file);\n    *file = (char *)0x0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == RETROK;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "_Bool _Var2;" type_identifier identifier ;) (declaration "iri *i;" type_identifier (pointer_declarator "*i" * identifier) ;) (declaration "char *url_00;" primitive_type (pointer_declarator "*url_00" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "url *orig_parsed;" type_identifier (pointer_declarator "*orig_parsed" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uerr_t local_4c;" type_identifier identifier ;) (declaration "int url_err;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "i = iri_new();" (assignment_expression "i = iri_new()" identifier = (call_expression "iri_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "url_00 = uri_merge(url,"/robots.txt");" (assignment_expression "url_00 = uri_merge(url,"/robots.txt")" identifier = (call_expression "uri_merge(url,"/robots.txt")" identifier (argument_list "(url,"/robots.txt")" ( identifier , (string_literal ""/robots.txt"" " string_content ") )))) ;) (expression_statement "_Var2 = opt.timestamping;" (assignment_expression "_Var2 = opt.timestamping" identifier = (field_expression "opt.timestamping" identifier . field_identifier)) ;) (expression_statement "_Var1 = opt.spider;" (assignment_expression "_Var1 = opt.spider" identifier = (field_expression "opt.spider" identifier . field_identifier)) ;) (expression_statement "set_uri_encoding(i,iri->uri_encoding,false);" (call_expression "set_uri_encoding(i,iri->uri_encoding,false)" identifier (argument_list "(i,iri->uri_encoding,false)" ( identifier , (field_expression "iri->uri_encoding" identifier -> field_identifier) , false ))) ;) (expression_statement "i->utf8_encode = false;" (assignment_expression "i->utf8_encode = false" (field_expression "i->utf8_encode" identifier -> field_identifier) = false) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" identifier (argument_list "(0,"Loading robots.txt; please ignore errors.\n",5)" ( number_literal , (string_literal ""Loading robots.txt; please ignore errors.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "logputs(LOG_VERBOSE,pcVar3);" (call_expression "logputs(LOG_VERBOSE,pcVar3)" identifier (argument_list "(LOG_VERBOSE,pcVar3)" ( identifier , identifier ))) ;) (expression_statement "*file = (char *)0x0;" (assignment_expression "*file = (char *)0x0" (pointer_expression "*file" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "opt.timestamping = false;" (assignment_expression "opt.timestamping = false" (field_expression "opt.timestamping" identifier . field_identifier) = false) ;) (expression_statement "opt.spider = false;" (assignment_expression "opt.spider = false" (field_expression "opt.spider" identifier . field_identifier) = false) ;) (expression_statement "orig_parsed = url_parse(url_00,&url_err,i,true);" (assignment_expression "orig_parsed = url_parse(url_00,&url_err,i,true)" identifier = (call_expression "url_parse(url_00,&url_err,i,true)" identifier (argument_list "(url_00,&url_err,i,true)" ( identifier , (pointer_expression "&url_err" & identifier) , identifier , true )))) ;) (if_statement "if (orig_parsed == (url *)0x0) {\n    pcVar3 = url_error(url_00,url_err);\n    logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);\n    free(pcVar3);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    local_4c = URLERROR;\n  }\n  else {\n    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);\n    url_free(orig_parsed);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    if (local_4c == RETROK) goto LAB_00132fb9;\n  }" if (parenthesized_expression "(orig_parsed == (url *)0x0)" ( (binary_expression "orig_parsed == (url *)0x0" identifier == (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = url_error(url_00,url_err);\n    logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);\n    free(pcVar3);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    local_4c = URLERROR;\n  }" { (expression_statement "pcVar3 = url_error(url_00,url_err);" (assignment_expression "pcVar3 = url_error(url_00,url_err)" identifier = (call_expression "url_error(url_00,url_err)" identifier (argument_list "(url_00,url_err)" ( identifier , identifier )))) ;) (expression_statement "logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);" (call_expression "logprintf(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3)" identifier (argument_list "(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3)" ( identifier , (string_literal ""%s: %s.\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "opt.spider = _Var1;" (assignment_expression "opt.spider = _Var1" (field_expression "opt.spider" identifier . field_identifier) = identifier) ;) (expression_statement "opt.timestamping = _Var2;" (assignment_expression "opt.timestamping = _Var2" (field_expression "opt.timestamping" identifier . field_identifier) = identifier) ;) (expression_statement "free(url_00);" (call_expression "free(url_00)" identifier (argument_list "(url_00)" ( identifier ))) ;) (expression_statement "iri_free(i);" (call_expression "iri_free(i)" identifier (argument_list "(i)" ( identifier ))) ;) (expression_statement "local_4c = URLERROR;" (assignment_expression "local_4c = URLERROR" identifier = identifier) ;) }) (else_clause "else {\n    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);\n    url_free(orig_parsed);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    if (local_4c == RETROK) goto LAB_00132fb9;\n  }" else (compound_statement "{\n    local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);\n    url_free(orig_parsed);\n    opt.spider = _Var1;\n    opt.timestamping = _Var2;\n    free(url_00);\n    iri_free(i);\n    if (local_4c == RETROK) goto LAB_00132fb9;\n  }" { (expression_statement "local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false);" (assignment_expression "local_4c = retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false)" identifier = (call_expression "retrieve_url(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false)" identifier (argument_list "(orig_parsed,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,\n                            false)" ( identifier , identifier , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , false , identifier , false )))) ;) (expression_statement "url_free(orig_parsed);" (call_expression "url_free(orig_parsed)" identifier (argument_list "(orig_parsed)" ( identifier ))) ;) (expression_statement "opt.spider = _Var1;" (assignment_expression "opt.spider = _Var1" (field_expression "opt.spider" identifier . field_identifier) = identifier) ;) (expression_statement "opt.timestamping = _Var2;" (assignment_expression "opt.timestamping = _Var2" (field_expression "opt.timestamping" identifier . field_identifier) = identifier) ;) (expression_statement "free(url_00);" (call_expression "free(url_00)" identifier (argument_list "(url_00)" ( identifier ))) ;) (expression_statement "iri_free(i);" (call_expression "iri_free(i)" identifier (argument_list "(i)" ( identifier ))) ;) (if_statement "if (local_4c == RETROK) goto LAB_00132fb9;" if (parenthesized_expression "(local_4c == RETROK)" ( (binary_expression "local_4c == RETROK" identifier == identifier) )) (goto_statement "goto LAB_00132fb9;" goto statement_identifier ;)) }))) (if_statement "if (*file != (char *)0x0) {\n    free(*file);\n    *file = (char *)0x0;\n  }" if (parenthesized_expression "(*file != (char *)0x0)" ( (binary_expression "*file != (char *)0x0" (pointer_expression "*file" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(*file);\n    *file = (char *)0x0;\n  }" { (expression_statement "free(*file);" (call_expression "free(*file)" identifier (argument_list "(*file)" ( (pointer_expression "*file" * identifier) ))) ;) (expression_statement "*file = (char *)0x0;" (assignment_expression "*file = (char *)0x0" (pointer_expression "*file" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == RETROK;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == RETROK;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_4c == RETROK;\n  }" { (return_statement "return local_4c == RETROK;" return (binary_expression "local_4c == RETROK" identifier == identifier) ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "bool FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "bool FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)" identifier (parameter_list "(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = FUN_0013ebc0();" (assignment_expression "lVar3 = FUN_0013ebc0()" identifier = (call_expression "FUN_0013ebc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr = (void *)FUN_00136c46(param_1,"/robots.txt");" (assignment_expression "__ptr = (void *)FUN_00136c46(param_1,"/robots.txt")" identifier = (cast_expression "(void *)FUN_00136c46(param_1,"/robots.txt")" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00136c46(param_1,"/robots.txt")" identifier (argument_list "(param_1,"/robots.txt")" ( identifier , (string_literal ""/robots.txt"" " string_content ") ))))) ;) (expression_statement "uVar2 = DAT_001774fc;" (assignment_expression "uVar2 = DAT_001774fc" identifier = identifier) ;) (expression_statement "uVar1 = DAT_00177328;" (assignment_expression "uVar1 = DAT_00177328" identifier = identifier) ;) (expression_statement "FUN_0013ec97(lVar3,*param_3,0);" (call_expression "FUN_0013ec97(lVar3,*param_3,0)" identifier (argument_list "(lVar3,*param_3,0)" ( identifier , (pointer_expression "*param_3" * identifier) , number_literal ))) ;) (expression_statement "*(undefined1 *)(lVar3 + 0x18) = 0;" (assignment_expression "*(undefined1 *)(lVar3 + 0x18) = 0" (pointer_expression "*(undefined1 *)(lVar3 + 0x18)" * (cast_expression "(undefined1 *)(lVar3 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" identifier = (call_expression "dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" identifier (argument_list "(0,"Loading robots.txt; please ignore errors.\n",5)" ( number_literal , (string_literal ""Loading robots.txt; please ignore errors.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0012bb1c(0,uVar4);" (call_expression "FUN_0012bb1c(0,uVar4)" identifier (argument_list "(0,uVar4)" ( number_literal , identifier ))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "DAT_001774fc = 0;" (assignment_expression "DAT_001774fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00177328 = 0;" (assignment_expression "DAT_00177328 = 0" identifier = number_literal) ;) (expression_statement "lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);" (assignment_expression "lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1)" identifier = (call_expression "FUN_00137430(__ptr,&local_44,lVar3,1)" identifier (argument_list "(__ptr,&local_44,lVar3,1)" ( identifier , (pointer_expression "&local_44" & identifier) , identifier , number_literal )))) ;) (if_statement "if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }" { (expression_statement "__ptr_00 = (void *)FUN_00136190(__ptr,local_44);" (assignment_expression "__ptr_00 = (void *)FUN_00136190(__ptr,local_44)" identifier = (cast_expression "(void *)FUN_00136190(__ptr,local_44)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00136190(__ptr,local_44)" identifier (argument_list "(__ptr,local_44)" ( identifier , identifier ))))) ;) (expression_statement "FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);" (call_expression "FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00)" identifier (argument_list "(1,"%s: %s.\n",__ptr,__ptr_00)" ( number_literal , (string_literal ""%s: %s.\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "DAT_00177328 = uVar1;" (assignment_expression "DAT_00177328 = uVar1" identifier = identifier) ;) (expression_statement "DAT_001774fc = uVar2;" (assignment_expression "DAT_001774fc = uVar2" identifier = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "FUN_0013ec69(lVar3);" (call_expression "FUN_0013ec69(lVar3)" identifier (argument_list "(lVar3)" ( identifier ))) ;) (expression_statement "local_4c = 0x12;" (assignment_expression "local_4c = 0x12" identifier = number_literal) ;) }) (else_clause "else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" else (compound_statement "{\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" { (expression_statement "local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);" (assignment_expression "local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" identifier = (call_expression "FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" identifier (argument_list "(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0013629a(lVar5);" (call_expression "FUN_0013629a(lVar5)" identifier (argument_list "(lVar5)" ( identifier ))) ;) (expression_statement "DAT_00177328 = uVar1;" (assignment_expression "DAT_00177328 = uVar1" identifier = identifier) ;) (expression_statement "DAT_001774fc = uVar2;" (assignment_expression "DAT_001774fc = uVar2" identifier = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "FUN_0013ec69(lVar3);" (call_expression "FUN_0013ec69(lVar3)" identifier (argument_list "(lVar3)" ( identifier ))) ;) (if_statement "if (local_4c == 0x19) goto LAB_00132fb9;" if (parenthesized_expression "(local_4c == 0x19)" ( (binary_expression "local_4c == 0x19" identifier == number_literal) )) (goto_statement "goto LAB_00132fb9;" goto statement_identifier ;)) }))) (if_statement "if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }" if (parenthesized_expression "((void *)*param_2 != (void *)0x0)" ( (binary_expression "(void *)*param_2 != (void *)0x0" (cast_expression "(void *)*param_2" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free((void *)*param_2);\n    *param_2 = 0;\n  }" { (expression_statement "free((void *)*param_2);" (call_expression "free((void *)*param_2)" identifier (argument_list "((void *)*param_2)" ( (cast_expression "(void *)*param_2" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) ))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) })) (labeled_statement "LAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_4c == 0x19;\n  }" { (return_statement "return local_4c == 0x19;" return (binary_expression "local_4c == 0x19" identifier == number_literal) ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , LIT , LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return (binary_expression IDENT == LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "bool FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "bool") (function_declarator "FUN_00132e86(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)" (identifier "FUN_00132e86") (parameter_list "(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  long lVar3;\n  void *__ptr;\n  undefined8 uVar4;\n  long lVar5;\n  void *__ptr_00;\n  long in_FS_OFFSET;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar3 = FUN_0013ebc0();\n  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");\n  uVar2 = DAT_001774fc;\n  uVar1 = DAT_00177328;\n  FUN_0013ec97(lVar3,*param_3,0);\n  *(undefined1 *)(lVar3 + 0x18) = 0;\n  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);\n  FUN_0012bb1c(0,uVar4);\n  *param_2 = 0;\n  DAT_001774fc = 0;\n  DAT_00177328 = 0;\n  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);\n  if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }\n  if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }\nLAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar3 = FUN_0013ebc0();" (assignment_expression "lVar3 = FUN_0013ebc0()" (identifier "lVar3") (= "=") (call_expression "FUN_0013ebc0()" (identifier "FUN_0013ebc0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "__ptr = (void *)FUN_00136c46(param_1,"/robots.txt");" (assignment_expression "__ptr = (void *)FUN_00136c46(param_1,"/robots.txt")" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00136c46(param_1,"/robots.txt")" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00136c46(param_1,"/robots.txt")" (identifier "FUN_00136c46") (argument_list "(param_1,"/robots.txt")" (( "(") (identifier "param_1") (, ",") (string_literal ""/robots.txt"" (" """) (string_content "/robots.txt") (" """)) () ")"))))) (; ";")) (expression_statement "uVar2 = DAT_001774fc;" (assignment_expression "uVar2 = DAT_001774fc" (identifier "uVar2") (= "=") (identifier "DAT_001774fc")) (; ";")) (expression_statement "uVar1 = DAT_00177328;" (assignment_expression "uVar1 = DAT_00177328" (identifier "uVar1") (= "=") (identifier "DAT_00177328")) (; ";")) (expression_statement "FUN_0013ec97(lVar3,*param_3,0);" (call_expression "FUN_0013ec97(lVar3,*param_3,0)" (identifier "FUN_0013ec97") (argument_list "(lVar3,*param_3,0)" (( "(") (identifier "lVar3") (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(lVar3 + 0x18) = 0;" (assignment_expression "*(undefined1 *)(lVar3 + 0x18) = 0" (pointer_expression "*(undefined1 *)(lVar3 + 0x18)" (* "*") (cast_expression "(undefined1 *)(lVar3 + 0x18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x18)" (( "(") (binary_expression "lVar3 + 0x18" (identifier "lVar3") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Loading robots.txt; please ignore errors.\n",5)" (identifier "dcgettext") (argument_list "(0,"Loading robots.txt; please ignore errors.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Loading robots.txt; please ignore errors.\n"" (" """) (string_content "Loading robots.txt; please ignore errors.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012bb1c(0,uVar4);" (call_expression "FUN_0012bb1c(0,uVar4)" (identifier "FUN_0012bb1c") (argument_list "(0,uVar4)" (( "(") (number_literal "0") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001774fc = 0;" (assignment_expression "DAT_001774fc = 0" (identifier "DAT_001774fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00177328 = 0;" (assignment_expression "DAT_00177328 = 0" (identifier "DAT_00177328") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);" (assignment_expression "lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1)" (identifier "lVar5") (= "=") (call_expression "FUN_00137430(__ptr,&local_44,lVar3,1)" (identifier "FUN_00137430") (argument_list "(__ptr,&local_44,lVar3,1)" (( "(") (identifier "__ptr") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) (, ",") (identifier "lVar3") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }\n  else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);\n    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);\n    free(__ptr_00);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    local_4c = 0x12;\n  }" ({ "{") (expression_statement "__ptr_00 = (void *)FUN_00136190(__ptr,local_44);" (assignment_expression "__ptr_00 = (void *)FUN_00136190(__ptr,local_44)" (identifier "__ptr_00") (= "=") (cast_expression "(void *)FUN_00136190(__ptr,local_44)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00136190(__ptr,local_44)" (identifier "FUN_00136190") (argument_list "(__ptr,local_44)" (( "(") (identifier "__ptr") (, ",") (identifier "local_44") () ")"))))) (; ";")) (expression_statement "FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);" (call_expression "FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00)" (identifier "FUN_0012bc55") (argument_list "(1,"%s: %s.\n",__ptr,__ptr_00)" (( "(") (number_literal "1") (, ",") (string_literal ""%s: %s.\n"" (" """) (string_content "%s: %s.") (escape_sequence "\n") (" """)) (, ",") (identifier "__ptr") (, ",") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "DAT_00177328 = uVar1;" (assignment_expression "DAT_00177328 = uVar1" (identifier "DAT_00177328") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "DAT_001774fc = uVar2;" (assignment_expression "DAT_001774fc = uVar2" (identifier "DAT_001774fc") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "FUN_0013ec69(lVar3);" (call_expression "FUN_0013ec69(lVar3)" (identifier "FUN_0013ec69") (argument_list "(lVar3)" (( "(") (identifier "lVar3") () ")"))) (; ";")) (expression_statement "local_4c = 0x12;" (assignment_expression "local_4c = 0x12" (identifier "local_4c") (= "=") (number_literal "0x12")) (; ";")) (} "}")) (else_clause "else {\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" (else "else") (compound_statement "{\n    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);\n    FUN_0013629a(lVar5);\n    DAT_00177328 = uVar1;\n    DAT_001774fc = uVar2;\n    free(__ptr);\n    FUN_0013ec69(lVar3);\n    if (local_4c == 0x19) goto LAB_00132fb9;\n  }" ({ "{") (expression_statement "local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);" (assignment_expression "local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" (identifier "local_4c") (= "=") (call_expression "FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" (identifier "FUN_00134135") (argument_list "(lVar5,__ptr,param_2,0,0,0,0,lVar3,0)" (( "(") (identifier "lVar5") (, ",") (identifier "__ptr") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "lVar3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0013629a(lVar5);" (call_expression "FUN_0013629a(lVar5)" (identifier "FUN_0013629a") (argument_list "(lVar5)" (( "(") (identifier "lVar5") () ")"))) (; ";")) (expression_statement "DAT_00177328 = uVar1;" (assignment_expression "DAT_00177328 = uVar1" (identifier "DAT_00177328") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "DAT_001774fc = uVar2;" (assignment_expression "DAT_001774fc = uVar2" (identifier "DAT_001774fc") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "FUN_0013ec69(lVar3);" (call_expression "FUN_0013ec69(lVar3)" (identifier "FUN_0013ec69") (argument_list "(lVar3)" (( "(") (identifier "lVar3") () ")"))) (; ";")) (if_statement "if (local_4c == 0x19) goto LAB_00132fb9;" (if "if") (parenthesized_expression "(local_4c == 0x19)" (( "(") (binary_expression "local_4c == 0x19" (identifier "local_4c") (== "==") (number_literal "0x19")) () ")")) (goto_statement "goto LAB_00132fb9;" (goto "goto") (statement_identifier "LAB_00132fb9") (; ";"))) (} "}")))) (if_statement "if ((void *)*param_2 != (void *)0x0) {\n    free((void *)*param_2);\n    *param_2 = 0;\n  }" (if "if") (parenthesized_expression "((void *)*param_2 != (void *)0x0)" (( "(") (binary_expression "(void *)*param_2 != (void *)0x0" (cast_expression "(void *)*param_2" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free((void *)*param_2);\n    *param_2 = 0;\n  }" ({ "{") (expression_statement "free((void *)*param_2);" (call_expression "free((void *)*param_2)" (identifier "free") (argument_list "((void *)*param_2)" (( "(") (cast_expression "(void *)*param_2" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")"))) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_00132fb9:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }" (statement_identifier "LAB_00132fb9") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return local_4c == 0x19;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return local_4c == 0x19;\n  }" ({ "{") (return_statement "return local_4c == 0x19;" (return "return") (binary_expression "local_4c == 0x19" (identifier "local_4c") (== "==") (number_literal "0x19")) (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

type_1 function_1(char *type_3,char **file,type_2 *type_2)

{
  type_1 _Var1;
  type_1 _Var2;
  type_2 *i;
  char *url_00;
  char *pcVar3;
  type_3 *var_8;
  long var_1;
  type_4 var_15;
  int url_err;
  long var_17;
  
  var_17 = *(long *)(var_1 + 0x28);
  i = var_2();
  url_00 = var_3(type_3,"/robots.txt");
  _Var2 = opt.timestamping;
  _Var1 = opt.spider;
  var_4(i,type_2->uri_encoding,false);
  i->utf8_encode = false;
  pcVar3 = (char *)var_5(0,"Loading robots.txt; please ignore errors.\n",5);
  var_6(LOG_VERBOSE,pcVar3);
  *file = (char *)0x0;
  opt.timestamping = false;
  opt.spider = false;
  var_8 = var_7(url_00,&url_err,i,true);
  if (var_8 == (type_3 *)0x0) {
    pcVar3 = var_9(url_00,url_err);
    var_10(LOG_NOTQUIET,"%s: %s.\n",url_00,pcVar3);
    var_11(pcVar3);
    opt.spider = _Var1;
    opt.timestamping = _Var2;
    var_11(url_00);
    var_12(i);
    var_15 = URLERROR;
  }
  else {
    var_15 = var_13(var_8,url_00,file,(char **)0x0,(char *)0x0,(int *)0x0,false,i,
                            false);
    var_14(var_8);
    opt.spider = _Var1;
    opt.timestamping = _Var2;
    var_11(url_00);
    var_12(i);
    if (var_15 == var_16) goto LAB_00132fb9;
  }
  if (*file != (char *)0x0) {
    var_11(*file);
    *file = (char *)0x0;
  }
LAB_00132fb9:
  if (var_17 == *(long *)(var_1 + 0x28)) {
    return var_15 == var_16;
  }
                    /* WARNING: Subroutine does not return */
  var_18();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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) (identifier) (number_literal) (number_literal) (number_literal) (number_literal) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

bool MASKED(undefined8 param_1,undefined8 *param_2,undefined8 *param_3)

{
  undefined1 uVar1;
  undefined1 uVar2;
  long lVar3;
  void *__ptr;
  undefined8 uVar4;
  long lVar5;
  void *__ptr_00;
  long in_FS_OFFSET;
  int local_4c;
  undefined4 local_44;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  lVar3 = FUN_0013ebc0();
  __ptr = (void *)FUN_00136c46(param_1,"/robots.txt");
  uVar2 = DAT_001774fc;
  uVar1 = DAT_00177328;
  FUN_0013ec97(lVar3,*param_3,0);
  *(undefined1 *)(lVar3 + 0x18) = 0;
  uVar4 = dcgettext(0,"Loading robots.txt; please ignore errors.\n",5);
  FUN_0012bb1c(0,uVar4);
  *param_2 = 0;
  DAT_001774fc = 0;
  DAT_00177328 = 0;
  lVar5 = FUN_00137430(__ptr,&local_44,lVar3,1);
  if (lVar5 == 0) {
    __ptr_00 = (void *)FUN_00136190(__ptr,local_44);
    FUN_0012bc55(1,"%s: %s.\n",__ptr,__ptr_00);
    free(__ptr_00);
    DAT_00177328 = uVar1;
    DAT_001774fc = uVar2;
    free(__ptr);
    FUN_0013ec69(lVar3);
    local_4c = 0x12;
  }
  else {
    local_4c = FUN_00134135(lVar5,__ptr,param_2,0,0,0,0,lVar3,0);
    FUN_0013629a(lVar5);
    DAT_00177328 = uVar1;
    DAT_001774fc = uVar2;
    free(__ptr);
    FUN_0013ec69(lVar3);
    if (local_4c == 0x19) goto LAB_00132fb9;
  }
  if ((void *)*param_2 != (void *)0x0) {
    free((void *)*param_2);
    *param_2 = 0;
  }
LAB_00132fb9:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return local_4c == 0x19;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

