
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

_Bool Curl_is_absolute_url(char *url,char *buf,size_t buflen)

{
  __int32_t **pp_Var1;
  int iVar2;
  char cVar3;
  uint c;
  uint uVar4;
  uint uVar5;
  
  if ((buflen == 0) || (c = (uint)(byte)*url, *url == 0)) {
    return false;
  }
  uVar4 = 0;
  if (buf == (char *)0x0) {
    uVar4 = 0;
    do {
      cVar3 = (char)c;
      if (cVar3 == ':') {
        if (url[uVar4 + 1] == '/') {
          return true;
        }
        iVar2 = Curl_isalnum(0x3a);
        if (iVar2 == 0) {
          return false;
        }
      }
      else {
        iVar2 = Curl_isalnum(c);
        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {
          return false;
        }
      }
      uVar4 = uVar4 + 1;
      if (buflen <= uVar4) {
        return false;
      }
      c = (uint)(byte)url[uVar4];
    } while (url[uVar4] != 0);
    return false;
  }
  do {
    cVar3 = (char)c;
    if (cVar3 == ':') {
      if (url[uVar4 + 1] == '/') {
        buf[uVar4] = '\0';
        return true;
      }
      iVar2 = Curl_isalnum(0x3a);
      if (iVar2 == 0) {
        return false;
      }
      c = 0x3a;
    }
    else {
      iVar2 = Curl_isalnum(c);
      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {
        return false;
      }
    }
    uVar5 = uVar4 + 1;
    pp_Var1 = __ctype_tolower_loc();
    buf[uVar4] = (char)(*pp_Var1)[c];
    if (buflen <= uVar5) {
      return false;
    }
    c = (uint)(byte)url[uVar5];
    uVar4 = uVar5;
  } while (url[uVar5] != 0);
  return false;
}



undefined4 __regparm2 FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)

{
  __int32_t **pp_Var1;
  int iVar2;
  char cVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  byte *unaff_retaddr;
  
  entry(param_2,0x75189);
  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {
    return 0;
  }
  uVar5 = 0;
  if (param_3 == 0) {
    uVar5 = 0;
    do {
      cVar3 = (char)uVar4;
      if (cVar3 == ':') {
        if (unaff_retaddr[uVar5 + 1] == 0x2f) {
          return 1;
        }
        iVar2 = FUN_00073320(0x3a);
        if (iVar2 == 0) {
          return 0;
        }
      }
      else {
        iVar2 = FUN_00073320(uVar4);
        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {
          return 0;
        }
      }
      uVar5 = uVar5 + 1;
      if (param_4 <= uVar5) {
        return 0;
      }
      uVar4 = (uint)unaff_retaddr[uVar5];
    } while (unaff_retaddr[uVar5] != 0);
    return 0;
  }
  do {
    cVar3 = (char)uVar4;
    if (cVar3 == ':') {
      if (unaff_retaddr[uVar5 + 1] == 0x2f) {
        *(undefined1 *)(param_3 + uVar5) = 0;
        return 1;
      }
      iVar2 = FUN_00073320(0x3a);
      if (iVar2 == 0) {
        return 0;
      }
      uVar4 = 0x3a;
    }
    else {
      iVar2 = FUN_00073320(uVar4);
      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {
        return 0;
      }
    }
    uVar6 = uVar5 + 1;
    pp_Var1 = __ctype_tolower_loc();
    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];
    if (param_4 <= uVar6) {
      return 0;
    }
    uVar4 = (uint)unaff_retaddr[uVar6];
    uVar5 = uVar6;
  } while (unaff_retaddr[uVar6] != 0);
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x41657
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x38]
TEST ESI,ESI
JZ 0x000752bb
MOV EAX,dword ptr [ESP + 0x30]
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JZ 0x000752bb
MOV ECX,dword ptr [ESP + 0x34]
XOR EBP,EBP
TEST ECX,ECX
JNZ 0x0007521e
JMP 0x00075250
MOV EAX,dword ptr [ESP + 0x30]
LEA EDI,[EBP + 0x1]
CMP byte ptr [EAX + EBP*0x1 + 0x1],0x2f
JZ 0x000752c5
SUB ESP,0xc
PUSH 0x3a
CALL 0x00073320
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000752bb
MOV ESI,0x3a
CALL 0x00018190
MOV ECX,ESI
MOV EAX,dword ptr [EAX]
MOVZX ESI,CL
MOV ECX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX + ESI*0x4]
MOV byte ptr [ECX + EBP*0x1],AL
CMP EDI,dword ptr [ESP + 0x38]
JNC 0x000752bb
MOV EAX,dword ptr [ESP + 0x30]
MOV EBP,EDI
MOVZX EDX,byte ptr [EAX + EDI*0x1]
TEST DL,DL
JZ 0x000752bb
CMP DL,0x3a
JZ 0x000751c0
SUB ESP,0xc
MOVZX EAX,DL
MOV ESI,EDX
PUSH EAX
CALL 0x00073320
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00075245
LEA EAX,[ESI + -0x2d]
CMP AL,0x1
JBE 0x00075245
MOV EAX,ESI
CMP AL,0x2b
JNZ 0x000752bb
LEA EDI,[EBP + 0x1]
JMP 0x000751ec
XOR ESI,ESI
MOV EDI,EAX
JMP 0x0007529b
SUB ESP,0xc
MOVZX EAX,DL
MOV byte ptr [ESP + 0x1b],DL
PUSH EAX
CALL 0x00073320
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00075288
MOVZX EDX,byte ptr [ESP + 0xf]
LEA EAX,[EDX + -0x2d]
CMP AL,0x1
JBE 0x00075288
CMP DL,0x2b
JNZ 0x000752bb
LEA EBP,[ESI + 0x1]
CMP dword ptr [ESP + 0x38],EBP
JBE 0x000752bb
MOVZX EDX,byte ptr [EDI + EBP*0x1]
MOV ESI,EBP
TEST DL,DL
JZ 0x000752bb
CMP DL,0x3a
JNZ 0x00075260
CMP byte ptr [EDI + ESI*0x1 + 0x1],0x2f
LEA EBP,[ESI + 0x1]
JZ 0x000752cd
SUB ESP,0xc
PUSH 0x3a
CALL 0x00073320
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0007528b
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x34]
MOV byte ptr [EAX + EBP*0x1],0x0
ADD ESP,0x1c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "undefined4 __regparm2 FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm2 FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}" { (declaration "__int32_t **pp_Var1;" type_identifier (pointer_declarator "**pp_Var1" * (pointer_declarator "*pp_Var1" * identifier)) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *unaff_retaddr;" type_identifier (pointer_declarator "*unaff_retaddr" * identifier) ;) (expression_statement "entry(param_2,0x75189);" (call_expression "entry(param_2,0x75189)" identifier (argument_list "(param_2,0x75189)" ( identifier , number_literal ))) ;) (if_statement "if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }" if (parenthesized_expression "((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0))" ( (binary_expression "(param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)" ( (comma_expression "uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0" (assignment_expression "uVar4 = (uint)*unaff_retaddr" identifier = (binary_expression "(uint)*unaff_retaddr" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "*unaff_retaddr == 0" (pointer_expression "*unaff_retaddr" * identifier) == number_literal)) ))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);" do (compound_statement "{\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    }" { (expression_statement "cVar3 = (char)uVar4;" (assignment_expression "cVar3 = (char)uVar4" identifier = (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }" { (if_statement "if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }" if (parenthesized_expression "(unaff_retaddr[uVar5 + 1] == 0x2f)" ( (binary_expression "unaff_retaddr[uVar5 + 1] == 0x2f" (subscript_expression "unaff_retaddr[uVar5 + 1]" identifier [ (binary_expression "uVar5 + 1" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = FUN_00073320(0x3a);" (assignment_expression "iVar2 = FUN_00073320(0x3a)" identifier = (call_expression "FUN_00073320(0x3a)" identifier (argument_list "(0x3a)" ( number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" { (expression_statement "iVar2 = FUN_00073320(uVar4);" (assignment_expression "iVar2 = FUN_00073320(uVar4)" identifier = (call_expression "FUN_00073320(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }" if (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" ( (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" ( (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" ( (binary_expression "1 < (byte)(cVar3 - 0x2dU)" number_literal < (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar3 - 0x2dU)" ( (binary_expression "cVar3 - 0x2dU" identifier - number_literal) )))) ))) )) && (parenthesized_expression "(cVar3 != '+')" ( (binary_expression "cVar3 != '+'" identifier != (char_literal "'+'" ' character ')) ))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (param_4 <= uVar5) {\n        return 0;\n      }" if (parenthesized_expression "(param_4 <= uVar5)" ( (binary_expression "param_4 <= uVar5" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (uint)unaff_retaddr[uVar5];" (assignment_expression "uVar4 = (uint)unaff_retaddr[uVar5]" identifier = (cast_expression "(uint)unaff_retaddr[uVar5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_retaddr[uVar5]" identifier [ identifier ]))) ;) }) while (parenthesized_expression "(unaff_retaddr[uVar5] != 0)" ( (binary_expression "unaff_retaddr[uVar5] != 0" (subscript_expression "unaff_retaddr[uVar5]" identifier [ identifier ]) != number_literal) )) ;) (return_statement "return 0;" return number_literal ;) })) (do_statement "do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);" do (compound_statement "{\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  }" { (expression_statement "cVar3 = (char)uVar4;" (assignment_expression "cVar3 = (char)uVar4" identifier = (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }" { (if_statement "if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }" if (parenthesized_expression "(unaff_retaddr[uVar5 + 1] == 0x2f)" ( (binary_expression "unaff_retaddr[uVar5 + 1] == 0x2f" (subscript_expression "unaff_retaddr[uVar5 + 1]" identifier [ (binary_expression "uVar5 + 1" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }" { (expression_statement "*(undefined1 *)(param_3 + uVar5) = 0;" (assignment_expression "*(undefined1 *)(param_3 + uVar5) = 0" (pointer_expression "*(undefined1 *)(param_3 + uVar5)" * (cast_expression "(undefined1 *)(param_3 + uVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + uVar5)" ( (binary_expression "param_3 + uVar5" identifier + identifier) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = FUN_00073320(0x3a);" (assignment_expression "iVar2 = FUN_00073320(0x3a)" identifier = (call_expression "FUN_00073320(0x3a)" identifier (argument_list "(0x3a)" ( number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = 0x3a;" (assignment_expression "uVar4 = 0x3a" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" else (compound_statement "{\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" { (expression_statement "iVar2 = FUN_00073320(uVar4);" (assignment_expression "iVar2 = FUN_00073320(uVar4)" identifier = (call_expression "FUN_00073320(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }" if (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" ( (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" ( (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" ( (binary_expression "1 < (byte)(cVar3 - 0x2dU)" number_literal < (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar3 - 0x2dU)" ( (binary_expression "cVar3 - 0x2dU" identifier - number_literal) )))) ))) )) && (parenthesized_expression "(cVar3 != '+')" ( (binary_expression "cVar3 != '+'" identifier != (char_literal "'+'" ' character ')) ))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "uVar6 = uVar5 + 1;" (assignment_expression "uVar6 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "pp_Var1 = __ctype_tolower_loc();" (assignment_expression "pp_Var1 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];" (assignment_expression "*(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4]" (pointer_expression "*(char *)(param_3 + uVar5)" * (cast_expression "(char *)(param_3 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + uVar5)" ( (binary_expression "param_3 + uVar5" identifier + identifier) )))) = (cast_expression "(char)(*pp_Var1)[uVar4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(*pp_Var1)[uVar4]" (parenthesized_expression "(*pp_Var1)" ( (pointer_expression "*pp_Var1" * identifier) )) [ identifier ]))) ;) (if_statement "if (param_4 <= uVar6) {\n      return 0;\n    }" if (parenthesized_expression "(param_4 <= uVar6)" ( (binary_expression "param_4 <= uVar6" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (uint)unaff_retaddr[uVar6];" (assignment_expression "uVar4 = (uint)unaff_retaddr[uVar6]" identifier = (cast_expression "(uint)unaff_retaddr[uVar6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_retaddr[uVar6]" identifier [ identifier ]))) ;) (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_retaddr[uVar6] != 0)" ( (binary_expression "unaff_retaddr[uVar6] != 0" (subscript_expression "unaff_retaddr[uVar6]" identifier [ identifier ]) != number_literal) )) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\n_Bool Curl_is_absolute_url(char *url,char *buf,size_t buflen)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint c;\n  uint uVar4;\n  uint uVar5;\n  \n  if ((buflen == 0) || (c = (uint)(byte)*url, *url == 0)) {\n    return false;\n  }\n  uVar4 = 0;\n  if (buf == (char *)0x0) {\n    uVar4 = 0;\n    do {\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    } while (url[uVar4] != 0);\n    return false;\n  }\n  do {\n    cVar3 = (char)c;\n    if (cVar3 == ':') {\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }\n    else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }\n    uVar5 = uVar4 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    buf[uVar4] = (char)(*pp_Var1)[c];\n    if (buflen <= uVar5) {\n      return false;\n    }\n    c = (uint)(byte)url[uVar5];\n    uVar4 = uVar5;\n  } while (url[uVar5] != 0);\n  return false;\n}\n\n" comment comment (function_definition "_Bool Curl_is_absolute_url(char *url,char *buf,size_t buflen)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint c;\n  uint uVar4;\n  uint uVar5;\n  \n  if ((buflen == 0) || (c = (uint)(byte)*url, *url == 0)) {\n    return false;\n  }\n  uVar4 = 0;\n  if (buf == (char *)0x0) {\n    uVar4 = 0;\n    do {\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    } while (url[uVar4] != 0);\n    return false;\n  }\n  do {\n    cVar3 = (char)c;\n    if (cVar3 == ':') {\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }\n    else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }\n    uVar5 = uVar4 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    buf[uVar4] = (char)(*pp_Var1)[c];\n    if (buflen <= uVar5) {\n      return false;\n    }\n    c = (uint)(byte)url[uVar5];\n    uVar4 = uVar5;\n  } while (url[uVar5] != 0);\n  return false;\n}" type_identifier (function_declarator "Curl_is_absolute_url(char *url,char *buf,size_t buflen)" identifier (parameter_list "(char *url,char *buf,size_t buflen)" ( (parameter_declaration "char *url" primitive_type (pointer_declarator "*url" * identifier)) , (parameter_declaration "char *buf" primitive_type (pointer_declarator "*buf" * identifier)) , (parameter_declaration "size_t buflen" primitive_type identifier) ))) (compound_statement "{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint c;\n  uint uVar4;\n  uint uVar5;\n  \n  if ((buflen == 0) || (c = (uint)(byte)*url, *url == 0)) {\n    return false;\n  }\n  uVar4 = 0;\n  if (buf == (char *)0x0) {\n    uVar4 = 0;\n    do {\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    } while (url[uVar4] != 0);\n    return false;\n  }\n  do {\n    cVar3 = (char)c;\n    if (cVar3 == ':') {\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }\n    else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }\n    uVar5 = uVar4 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    buf[uVar4] = (char)(*pp_Var1)[c];\n    if (buflen <= uVar5) {\n      return false;\n    }\n    c = (uint)(byte)url[uVar5];\n    uVar4 = uVar5;\n  } while (url[uVar5] != 0);\n  return false;\n}" { (declaration "__int32_t **pp_Var1;" type_identifier (pointer_declarator "**pp_Var1" * (pointer_declarator "*pp_Var1" * identifier)) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint c;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (if_statement "if ((buflen == 0) || (c = (uint)(byte)*url, *url == 0)) {\n    return false;\n  }" if (parenthesized_expression "((buflen == 0) || (c = (uint)(byte)*url, *url == 0))" ( (binary_expression "(buflen == 0) || (c = (uint)(byte)*url, *url == 0)" (parenthesized_expression "(buflen == 0)" ( (binary_expression "buflen == 0" identifier == number_literal) )) || (parenthesized_expression "(c = (uint)(byte)*url, *url == 0)" ( (comma_expression "c = (uint)(byte)*url, *url == 0" (assignment_expression "c = (uint)(byte)*url" identifier = (binary_expression "(uint)(byte)*url" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) , (binary_expression "*url == 0" (pointer_expression "*url" * identifier) == number_literal)) ))) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (buf == (char *)0x0) {\n    uVar4 = 0;\n    do {\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    } while (url[uVar4] != 0);\n    return false;\n  }" if (parenthesized_expression "(buf == (char *)0x0)" ( (binary_expression "buf == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = 0;\n    do {\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    } while (url[uVar4] != 0);\n    return false;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    } while (url[uVar4] != 0);" do (compound_statement "{\n      cVar3 = (char)c;\n      if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }\n      uVar4 = uVar4 + 1;\n      if (buflen <= uVar4) {\n        return false;\n      }\n      c = (uint)(byte)url[uVar4];\n    }" { (expression_statement "cVar3 = (char)c;" (assignment_expression "cVar3 = (char)c" identifier = (cast_expression "(char)c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == ':') {\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }\n      else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n        if (url[uVar4 + 1] == '/') {\n          return true;\n        }\n        iVar2 = Curl_isalnum(0x3a);\n        if (iVar2 == 0) {\n          return false;\n        }\n      }" { (if_statement "if (url[uVar4 + 1] == '/') {\n          return true;\n        }" if (parenthesized_expression "(url[uVar4 + 1] == '/')" ( (binary_expression "url[uVar4 + 1] == '/'" (subscript_expression "url[uVar4 + 1]" identifier [ (binary_expression "uVar4 + 1" identifier + number_literal) ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          return true;\n        }" { (return_statement "return true;" return true ;) })) (expression_statement "iVar2 = Curl_isalnum(0x3a);" (assignment_expression "iVar2 = Curl_isalnum(0x3a)" identifier = (call_expression "Curl_isalnum(0x3a)" identifier (argument_list "(0x3a)" ( number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n          return false;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }" else (compound_statement "{\n        iVar2 = Curl_isalnum(c);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }\n      }" { (expression_statement "iVar2 = Curl_isalnum(c);" (assignment_expression "iVar2 = Curl_isalnum(c)" identifier = (call_expression "Curl_isalnum(c)" identifier (argument_list "(c)" ( identifier )))) ;) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return false;\n        }" if (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" ( (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" ( (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" ( (binary_expression "1 < (byte)(cVar3 - 0x2dU)" number_literal < (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar3 - 0x2dU)" ( (binary_expression "cVar3 - 0x2dU" identifier - number_literal) )))) ))) )) && (parenthesized_expression "(cVar3 != '+')" ( (binary_expression "cVar3 != '+'" identifier != (char_literal "'+'" ' character ')) ))) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (if_statement "if (buflen <= uVar4) {\n        return false;\n      }" if (parenthesized_expression "(buflen <= uVar4)" ( (binary_expression "buflen <= uVar4" identifier <= identifier) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "c = (uint)(byte)url[uVar4];" (assignment_expression "c = (uint)(byte)url[uVar4]" identifier = (cast_expression "(uint)(byte)url[uVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)url[uVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "url[uVar4]" identifier [ identifier ])))) ;) }) while (parenthesized_expression "(url[uVar4] != 0)" ( (binary_expression "url[uVar4] != 0" (subscript_expression "url[uVar4]" identifier [ identifier ]) != number_literal) )) ;) (return_statement "return false;" return false ;) })) (do_statement "do {\n    cVar3 = (char)c;\n    if (cVar3 == ':') {\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }\n    else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }\n    uVar5 = uVar4 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    buf[uVar4] = (char)(*pp_Var1)[c];\n    if (buflen <= uVar5) {\n      return false;\n    }\n    c = (uint)(byte)url[uVar5];\n    uVar4 = uVar5;\n  } while (url[uVar5] != 0);" do (compound_statement "{\n    cVar3 = (char)c;\n    if (cVar3 == ':') {\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }\n    else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }\n    uVar5 = uVar4 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    buf[uVar4] = (char)(*pp_Var1)[c];\n    if (buflen <= uVar5) {\n      return false;\n    }\n    c = (uint)(byte)url[uVar5];\n    uVar4 = uVar5;\n  }" { (expression_statement "cVar3 = (char)c;" (assignment_expression "cVar3 = (char)c" identifier = (cast_expression "(char)c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == ':') {\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }\n    else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n      if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }\n      iVar2 = Curl_isalnum(0x3a);\n      if (iVar2 == 0) {\n        return false;\n      }\n      c = 0x3a;\n    }" { (if_statement "if (url[uVar4 + 1] == '/') {\n        buf[uVar4] = '\0';\n        return true;\n      }" if (parenthesized_expression "(url[uVar4 + 1] == '/')" ( (binary_expression "url[uVar4 + 1] == '/'" (subscript_expression "url[uVar4 + 1]" identifier [ (binary_expression "uVar4 + 1" identifier + number_literal) ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        buf[uVar4] = '\0';\n        return true;\n      }" { (expression_statement "buf[uVar4] = '\0';" (assignment_expression "buf[uVar4] = '\0'" (subscript_expression "buf[uVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return true;" return true ;) })) (expression_statement "iVar2 = Curl_isalnum(0x3a);" (assignment_expression "iVar2 = Curl_isalnum(0x3a)" identifier = (call_expression "Curl_isalnum(0x3a)" identifier (argument_list "(0x3a)" ( number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "c = 0x3a;" (assignment_expression "c = 0x3a" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }" else (compound_statement "{\n      iVar2 = Curl_isalnum(c);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }\n    }" { (expression_statement "iVar2 = Curl_isalnum(c);" (assignment_expression "iVar2 = Curl_isalnum(c)" identifier = (call_expression "Curl_isalnum(c)" identifier (argument_list "(c)" ( identifier )))) ;) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return false;\n      }" if (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" ( (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" ( (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" ( (binary_expression "1 < (byte)(cVar3 - 0x2dU)" number_literal < (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar3 - 0x2dU)" ( (binary_expression "cVar3 - 0x2dU" identifier - number_literal) )))) ))) )) && (parenthesized_expression "(cVar3 != '+')" ( (binary_expression "cVar3 != '+'" identifier != (char_literal "'+'" ' character ')) ))) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "uVar5 = uVar4 + 1;" (assignment_expression "uVar5 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (expression_statement "pp_Var1 = __ctype_tolower_loc();" (assignment_expression "pp_Var1 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "buf[uVar4] = (char)(*pp_Var1)[c];" (assignment_expression "buf[uVar4] = (char)(*pp_Var1)[c]" (subscript_expression "buf[uVar4]" identifier [ identifier ]) = (cast_expression "(char)(*pp_Var1)[c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(*pp_Var1)[c]" (parenthesized_expression "(*pp_Var1)" ( (pointer_expression "*pp_Var1" * identifier) )) [ identifier ]))) ;) (if_statement "if (buflen <= uVar5) {\n      return false;\n    }" if (parenthesized_expression "(buflen <= uVar5)" ( (binary_expression "buflen <= uVar5" identifier <= identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "c = (uint)(byte)url[uVar5];" (assignment_expression "c = (uint)(byte)url[uVar5]" identifier = (cast_expression "(uint)(byte)url[uVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)url[uVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "url[uVar5]" identifier [ identifier ])))) ;) (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" identifier = identifier) ;) }) while (parenthesized_expression "(url[uVar5] != 0)" ( (binary_expression "url[uVar5] != 0" (subscript_expression "url[uVar5]" identifier [ identifier ]) != number_literal) )) ;) (return_statement "return false;" return false ;) })))
(translation_unit "undefined4 __regparm2 FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm2 FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}" { (declaration "__int32_t **pp_Var1;" type_identifier (pointer_declarator "**pp_Var1" * (pointer_declarator "*pp_Var1" * identifier)) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *unaff_retaddr;" type_identifier (pointer_declarator "*unaff_retaddr" * identifier) ;) (expression_statement "entry(param_2,0x75189);" (call_expression "entry(param_2,0x75189)" identifier (argument_list "(param_2,0x75189)" ( identifier , number_literal ))) ;) (if_statement "if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }" if (parenthesized_expression "((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0))" ( (binary_expression "(param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)" ( (comma_expression "uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0" (assignment_expression "uVar4 = (uint)*unaff_retaddr" identifier = (binary_expression "(uint)*unaff_retaddr" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "*unaff_retaddr == 0" (pointer_expression "*unaff_retaddr" * identifier) == number_literal)) ))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);" do (compound_statement "{\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    }" { (expression_statement "cVar3 = (char)uVar4;" (assignment_expression "cVar3 = (char)uVar4" identifier = (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }" { (if_statement "if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }" if (parenthesized_expression "(unaff_retaddr[uVar5 + 1] == 0x2f)" ( (binary_expression "unaff_retaddr[uVar5 + 1] == 0x2f" (subscript_expression "unaff_retaddr[uVar5 + 1]" identifier [ (binary_expression "uVar5 + 1" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = FUN_00073320(0x3a);" (assignment_expression "iVar2 = FUN_00073320(0x3a)" identifier = (call_expression "FUN_00073320(0x3a)" identifier (argument_list "(0x3a)" ( number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" { (expression_statement "iVar2 = FUN_00073320(uVar4);" (assignment_expression "iVar2 = FUN_00073320(uVar4)" identifier = (call_expression "FUN_00073320(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }" if (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" ( (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" ( (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" ( (binary_expression "1 < (byte)(cVar3 - 0x2dU)" number_literal < (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar3 - 0x2dU)" ( (binary_expression "cVar3 - 0x2dU" identifier - number_literal) )))) ))) )) && (parenthesized_expression "(cVar3 != '+')" ( (binary_expression "cVar3 != '+'" identifier != (char_literal "'+'" ' character ')) ))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (param_4 <= uVar5) {\n        return 0;\n      }" if (parenthesized_expression "(param_4 <= uVar5)" ( (binary_expression "param_4 <= uVar5" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (uint)unaff_retaddr[uVar5];" (assignment_expression "uVar4 = (uint)unaff_retaddr[uVar5]" identifier = (cast_expression "(uint)unaff_retaddr[uVar5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_retaddr[uVar5]" identifier [ identifier ]))) ;) }) while (parenthesized_expression "(unaff_retaddr[uVar5] != 0)" ( (binary_expression "unaff_retaddr[uVar5] != 0" (subscript_expression "unaff_retaddr[uVar5]" identifier [ identifier ]) != number_literal) )) ;) (return_statement "return 0;" return number_literal ;) })) (do_statement "do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);" do (compound_statement "{\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  }" { (expression_statement "cVar3 = (char)uVar4;" (assignment_expression "cVar3 = (char)uVar4" identifier = (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }" { (if_statement "if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }" if (parenthesized_expression "(unaff_retaddr[uVar5 + 1] == 0x2f)" ( (binary_expression "unaff_retaddr[uVar5 + 1] == 0x2f" (subscript_expression "unaff_retaddr[uVar5 + 1]" identifier [ (binary_expression "uVar5 + 1" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }" { (expression_statement "*(undefined1 *)(param_3 + uVar5) = 0;" (assignment_expression "*(undefined1 *)(param_3 + uVar5) = 0" (pointer_expression "*(undefined1 *)(param_3 + uVar5)" * (cast_expression "(undefined1 *)(param_3 + uVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + uVar5)" ( (binary_expression "param_3 + uVar5" identifier + identifier) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = FUN_00073320(0x3a);" (assignment_expression "iVar2 = FUN_00073320(0x3a)" identifier = (call_expression "FUN_00073320(0x3a)" identifier (argument_list "(0x3a)" ( number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = 0x3a;" (assignment_expression "uVar4 = 0x3a" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" else (compound_statement "{\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" { (expression_statement "iVar2 = FUN_00073320(uVar4);" (assignment_expression "iVar2 = FUN_00073320(uVar4)" identifier = (call_expression "FUN_00073320(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }" if (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" ( (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" ( (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" ( (binary_expression "1 < (byte)(cVar3 - 0x2dU)" number_literal < (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar3 - 0x2dU)" ( (binary_expression "cVar3 - 0x2dU" identifier - number_literal) )))) ))) )) && (parenthesized_expression "(cVar3 != '+')" ( (binary_expression "cVar3 != '+'" identifier != (char_literal "'+'" ' character ')) ))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "uVar6 = uVar5 + 1;" (assignment_expression "uVar6 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "pp_Var1 = __ctype_tolower_loc();" (assignment_expression "pp_Var1 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];" (assignment_expression "*(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4]" (pointer_expression "*(char *)(param_3 + uVar5)" * (cast_expression "(char *)(param_3 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + uVar5)" ( (binary_expression "param_3 + uVar5" identifier + identifier) )))) = (cast_expression "(char)(*pp_Var1)[uVar4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(*pp_Var1)[uVar4]" (parenthesized_expression "(*pp_Var1)" ( (pointer_expression "*pp_Var1" * identifier) )) [ identifier ]))) ;) (if_statement "if (param_4 <= uVar6) {\n      return 0;\n    }" if (parenthesized_expression "(param_4 <= uVar6)" ( (binary_expression "param_4 <= uVar6" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (uint)unaff_retaddr[uVar6];" (assignment_expression "uVar4 = (uint)unaff_retaddr[uVar6]" identifier = (cast_expression "(uint)unaff_retaddr[uVar6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_retaddr[uVar6]" identifier [ identifier ]))) ;) (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_retaddr[uVar6] != 0)" ( (binary_expression "unaff_retaddr[uVar6] != 0" (subscript_expression "unaff_retaddr[uVar6]" identifier [ identifier ]) != number_literal) )) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) ;) (return_statement return LIT ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm2 FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}" (type_identifier "undefined4") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_00075180(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" (identifier "FUN_00075180") (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  __int32_t **pp_Var1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  byte *unaff_retaddr;\n  \n  entry(param_2,0x75189);\n  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }\n  uVar5 = 0;\n  if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }\n  do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);\n  return 0;\n}" ({ "{") (declaration "__int32_t **pp_Var1;" (type_identifier "__int32_t") (pointer_declarator "**pp_Var1" (* "*") (pointer_declarator "*pp_Var1" (* "*") (identifier "pp_Var1"))) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "byte *unaff_retaddr;" (type_identifier "byte") (pointer_declarator "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (; ";")) (expression_statement "entry(param_2,0x75189);" (call_expression "entry(param_2,0x75189)" (identifier "entry") (argument_list "(param_2,0x75189)" (( "(") (identifier "param_2") (, ",") (number_literal "0x75189") () ")"))) (; ";")) (if_statement "if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {\n    return 0;\n  }" (if "if") (parenthesized_expression "((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0))" (( "(") (binary_expression "(param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)" (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)" (( "(") (comma_expression "uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0" (assignment_expression "uVar4 = (uint)*unaff_retaddr" (identifier "uVar4") (= "=") (binary_expression "(uint)*unaff_retaddr" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "unaff_retaddr"))) (, ",") (binary_expression "*unaff_retaddr == 0" (pointer_expression "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 == 0) {\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = 0;\n    do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);\n    return 0;\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    } while (unaff_retaddr[uVar5] != 0);" (do "do") (compound_statement "{\n      cVar3 = (char)uVar4;\n      if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      if (param_4 <= uVar5) {\n        return 0;\n      }\n      uVar4 = (uint)unaff_retaddr[uVar5];\n    }" ({ "{") (expression_statement "cVar3 = (char)uVar4;" (assignment_expression "cVar3 = (char)uVar4" (identifier "cVar3") (= "=") (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4"))) (; ";")) (if_statement "if (cVar3 == ':') {\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }\n      else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(cVar3 == ':')" (( "(") (binary_expression "cVar3 == ':'" (identifier "cVar3") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n        if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }\n        iVar2 = FUN_00073320(0x3a);\n        if (iVar2 == 0) {\n          return 0;\n        }\n      }" ({ "{") (if_statement "if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(unaff_retaddr[uVar5 + 1] == 0x2f)" (( "(") (binary_expression "unaff_retaddr[uVar5 + 1] == 0x2f" (subscript_expression "unaff_retaddr[uVar5 + 1]" (identifier "unaff_retaddr") ([ "[") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1")) (] "]")) (== "==") (number_literal "0x2f")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_00073320(0x3a);" (assignment_expression "iVar2 = FUN_00073320(0x3a)" (identifier "iVar2") (= "=") (call_expression "FUN_00073320(0x3a)" (identifier "FUN_00073320") (argument_list "(0x3a)" (( "(") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" (else "else") (compound_statement "{\n        iVar2 = FUN_00073320(uVar4);\n        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }\n      }" ({ "{") (expression_statement "iVar2 = FUN_00073320(uVar4);" (assignment_expression "iVar2 = FUN_00073320(uVar4)" (identifier "iVar2") (= "=") (call_expression "FUN_00073320(uVar4)" (identifier "FUN_00073320") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" (( "(") (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" (( "(") (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" (( "(") (binary_expression "1 < (byte)(cVar3 - 0x2dU)" (number_literal "1") (< "<") (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar3 - 0x2dU)" (( "(") (binary_expression "cVar3 - 0x2dU" (identifier "cVar3") (- "-") (number_literal "0x2dU")) () ")")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar3 != '+')" (( "(") (binary_expression "cVar3 != '+'" (identifier "cVar3") (!= "!=") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_4 <= uVar5) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_4 <= uVar5)" (( "(") (binary_expression "param_4 <= uVar5" (identifier "param_4") (<= "<=") (identifier "uVar5")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = (uint)unaff_retaddr[uVar5];" (assignment_expression "uVar4 = (uint)unaff_retaddr[uVar5]" (identifier "uVar4") (= "=") (cast_expression "(uint)unaff_retaddr[uVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_retaddr[uVar5]" (identifier "unaff_retaddr") ([ "[") (identifier "uVar5") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_retaddr[uVar5] != 0)" (( "(") (binary_expression "unaff_retaddr[uVar5] != 0" (subscript_expression "unaff_retaddr[uVar5]" (identifier "unaff_retaddr") ([ "[") (identifier "uVar5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (do_statement "do {\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  } while (unaff_retaddr[uVar6] != 0);" (do "do") (compound_statement "{\n    cVar3 = (char)uVar4;\n    if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }\n    uVar6 = uVar5 + 1;\n    pp_Var1 = __ctype_tolower_loc();\n    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];\n    if (param_4 <= uVar6) {\n      return 0;\n    }\n    uVar4 = (uint)unaff_retaddr[uVar6];\n    uVar5 = uVar6;\n  }" ({ "{") (expression_statement "cVar3 = (char)uVar4;" (assignment_expression "cVar3 = (char)uVar4" (identifier "cVar3") (= "=") (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4"))) (; ";")) (if_statement "if (cVar3 == ':') {\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }\n    else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(cVar3 == ':')" (( "(") (binary_expression "cVar3 == ':'" (identifier "cVar3") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n      if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }\n      iVar2 = FUN_00073320(0x3a);\n      if (iVar2 == 0) {\n        return 0;\n      }\n      uVar4 = 0x3a;\n    }" ({ "{") (if_statement "if (unaff_retaddr[uVar5 + 1] == 0x2f) {\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }" (if "if") (parenthesized_expression "(unaff_retaddr[uVar5 + 1] == 0x2f)" (( "(") (binary_expression "unaff_retaddr[uVar5 + 1] == 0x2f" (subscript_expression "unaff_retaddr[uVar5 + 1]" (identifier "unaff_retaddr") ([ "[") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1")) (] "]")) (== "==") (number_literal "0x2f")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_3 + uVar5) = 0;\n        return 1;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_3 + uVar5) = 0;" (assignment_expression "*(undefined1 *)(param_3 + uVar5) = 0" (pointer_expression "*(undefined1 *)(param_3 + uVar5)" (* "*") (cast_expression "(undefined1 *)(param_3 + uVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + uVar5)" (( "(") (binary_expression "param_3 + uVar5" (identifier "param_3") (+ "+") (identifier "uVar5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_00073320(0x3a);" (assignment_expression "iVar2 = FUN_00073320(0x3a)" (identifier "iVar2") (= "=") (call_expression "FUN_00073320(0x3a)" (identifier "FUN_00073320") (argument_list "(0x3a)" (( "(") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = 0x3a;" (assignment_expression "uVar4 = 0x3a" (identifier "uVar4") (= "=") (number_literal "0x3a")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" (else "else") (compound_statement "{\n      iVar2 = FUN_00073320(uVar4);\n      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "iVar2 = FUN_00073320(uVar4);" (assignment_expression "iVar2 = FUN_00073320(uVar4)" (identifier "iVar2") (= "=") (call_expression "FUN_00073320(uVar4)" (identifier "FUN_00073320") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+'))" (( "(") (binary_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')" (parenthesized_expression "((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU)))" (( "(") (binary_expression "(iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(1 < (byte)(cVar3 - 0x2dU))" (( "(") (binary_expression "1 < (byte)(cVar3 - 0x2dU)" (number_literal "1") (< "<") (call_expression "(byte)(cVar3 - 0x2dU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar3 - 0x2dU)" (( "(") (binary_expression "cVar3 - 0x2dU" (identifier "cVar3") (- "-") (number_literal "0x2dU")) () ")")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar3 != '+')" (( "(") (binary_expression "cVar3 != '+'" (identifier "cVar3") (!= "!=") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar6 = uVar5 + 1;" (assignment_expression "uVar6 = uVar5 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pp_Var1 = __ctype_tolower_loc();" (assignment_expression "pp_Var1 = __ctype_tolower_loc()" (identifier "pp_Var1") (= "=") (call_expression "__ctype_tolower_loc()" (identifier "__ctype_tolower_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];" (assignment_expression "*(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4]" (pointer_expression "*(char *)(param_3 + uVar5)" (* "*") (cast_expression "(char *)(param_3 + uVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + uVar5)" (( "(") (binary_expression "param_3 + uVar5" (identifier "param_3") (+ "+") (identifier "uVar5")) () ")")))) (= "=") (cast_expression "(char)(*pp_Var1)[uVar4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "(*pp_Var1)[uVar4]" (parenthesized_expression "(*pp_Var1)" (( "(") (pointer_expression "*pp_Var1" (* "*") (identifier "pp_Var1")) () ")")) ([ "[") (identifier "uVar4") (] "]")))) (; ";")) (if_statement "if (param_4 <= uVar6) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_4 <= uVar6)" (( "(") (binary_expression "param_4 <= uVar6" (identifier "param_4") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = (uint)unaff_retaddr[uVar6];" (assignment_expression "uVar4 = (uint)unaff_retaddr[uVar6]" (identifier "uVar4") (= "=") (cast_expression "(uint)unaff_retaddr[uVar6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_retaddr[uVar6]" (identifier "unaff_retaddr") ([ "[") (identifier "uVar6") (] "]")))) (; ";")) (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" (identifier "uVar5") (= "=") (identifier "uVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_retaddr[uVar6] != 0)" (( "(") (binary_expression "unaff_retaddr[uVar6] != 0" (subscript_expression "unaff_retaddr[uVar6]" (identifier "unaff_retaddr") ([ "[") (identifier "uVar6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

type_1 function_1(char *var_2,char *var_3,size_t var_1)

{
  type_2 **pp_Var1;
  int var_7;
  char var_4;
  type_3 c;
  type_3 var_5;
  type_3 var_9;
  
  if ((var_1 == 0) || (c = (type_3)(type_4)*var_2, *var_2 == 0)) {
    return false;
  }
  var_5 = 0;
  if (var_3 == (char *)0x0) {
    var_5 = 0;
    do {
      var_4 = (char)c;
      if (var_4 == ':') {
        if (var_2[var_5 + 1] == '/') {
          return true;
        }
        var_7 = var_6(0x3a);
        if (var_7 == 0) {
          return false;
        }
      }
      else {
        var_7 = var_6(c);
        if (((var_7 == 0) && (1 < (type_4)(var_4 - 0x2dU))) && (var_4 != '+')) {
          return false;
        }
      }
      var_5 = var_5 + 1;
      if (var_1 <= var_5) {
        return false;
      }
      c = (type_3)(type_4)var_2[var_5];
    } while (var_2[var_5] != 0);
    return false;
  }
  do {
    var_4 = (char)c;
    if (var_4 == ':') {
      if (var_2[var_5 + 1] == '/') {
        var_3[var_5] = '\0';
        return true;
      }
      var_7 = var_6(0x3a);
      if (var_7 == 0) {
        return false;
      }
      c = 0x3a;
    }
    else {
      var_7 = var_6(c);
      if (((var_7 == 0) && (1 < (type_4)(var_4 - 0x2dU))) && (var_4 != '+')) {
        return false;
      }
    }
    var_9 = var_5 + 1;
    pp_Var1 = var_8();
    var_3[var_5] = (char)(*pp_Var1)[c];
    if (var_1 <= var_9) {
      return false;
    }
    c = (type_3)(type_4)var_2[var_9];
    var_5 = var_9;
  } while (var_2[var_9] != 0);
  return false;
}


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

undefined4 __regparm2 MASKED(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)

{
  __int32_t **pp_Var1;
  int iVar2;
  char cVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  byte *unaff_retaddr;
  
  entry(param_2,0x75189);
  if ((param_4 == 0) || (uVar4 = (uint)*unaff_retaddr, *unaff_retaddr == 0)) {
    return 0;
  }
  uVar5 = 0;
  if (param_3 == 0) {
    uVar5 = 0;
    do {
      cVar3 = (char)uVar4;
      if (cVar3 == ':') {
        if (unaff_retaddr[uVar5 + 1] == 0x2f) {
          return 1;
        }
        iVar2 = FUN_00073320(0x3a);
        if (iVar2 == 0) {
          return 0;
        }
      }
      else {
        iVar2 = FUN_00073320(uVar4);
        if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {
          return 0;
        }
      }
      uVar5 = uVar5 + 1;
      if (param_4 <= uVar5) {
        return 0;
      }
      uVar4 = (uint)unaff_retaddr[uVar5];
    } while (unaff_retaddr[uVar5] != 0);
    return 0;
  }
  do {
    cVar3 = (char)uVar4;
    if (cVar3 == ':') {
      if (unaff_retaddr[uVar5 + 1] == 0x2f) {
        *(undefined1 *)(param_3 + uVar5) = 0;
        return 1;
      }
      iVar2 = FUN_00073320(0x3a);
      if (iVar2 == 0) {
        return 0;
      }
      uVar4 = 0x3a;
    }
    else {
      iVar2 = FUN_00073320(uVar4);
      if (((iVar2 == 0) && (1 < (byte)(cVar3 - 0x2dU))) && (cVar3 != '+')) {
        return 0;
      }
    }
    uVar6 = uVar5 + 1;
    pp_Var1 = __ctype_tolower_loc();
    *(char *)(param_3 + uVar5) = (char)(*pp_Var1)[uVar4];
    if (param_4 <= uVar6) {
      return 0;
    }
    uVar4 = (uint)unaff_retaddr[uVar6];
    uVar5 = uVar6;
  } while (unaff_retaddr[uVar6] != 0);
  return 0;
}

