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

CURLcode Curl_http_output_auth(connectdata *conn,char *request,char *path,_Bool proxytunnel)

{
  _Bool _Var1;
  CURLcode CVar2;
  int iVar3;
  ulong uVar4;
  char *first;
  undefined3 in_register_0000001c;
  Curl_easy *pCVar5;
  
  _Var1 = (conn->bits).httpproxy;
  pCVar5 = conn->data;
  if ((((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&
      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)) {
    CVar2 = CURLE_OK;
    (pCVar5->state).authhost.done = true;
    (pCVar5->state).authproxy.done = true;
  }
  else {
    uVar4 = (pCVar5->state).authhost.want;
    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {
      (pCVar5->state).authhost.picked = uVar4;
    }
    uVar4 = (pCVar5->state).authproxy.want;
    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {
      (pCVar5->state).authproxy.picked = uVar4;
    }
    if ((_Var1 == false) ||
       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {
      (pCVar5->state).authproxy.done = true;
    }
    else {
      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);
      if (CVar2 != CURLE_OK) {
        return CVar2;
      }
    }
    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||
        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||
       (((pCVar5->set).allow_auth_to_other_hosts != false ||
        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {
      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);
    }
    else {
      (pCVar5->state).authhost.done = true;
      CVar2 = CURLE_OK;
    }
  }
  return CVar2;
}



int FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)

{
  char cVar1;
  int iVar2;
  int iVar3;
  
  cVar1 = *(char *)((int)param_1 + 0x256);
  iVar3 = *param_1;
  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&
      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {
    iVar2 = 0;
    *(undefined1 *)(iVar3 + 0xd84) = 1;
    *(undefined1 *)(iVar3 + 0xd94) = 1;
  }
  else {
    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {
      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);
    }
    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {
      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);
    }
    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {
      *(undefined1 *)(iVar3 + 0xd94) = 1;
    }
    else {
      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);
      if (iVar2 != 0) {
        return iVar2;
      }
    }
    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||
        (*(int *)(iVar3 + 0xcac) == 0)) ||
       ((*(char *)(iVar3 + 0x94c) != '\0' ||
        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {
      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);
    }
    else {
      *(undefined1 *)(iVar3 + 0xd84) = 1;
      iVar2 = 0;
    }
  }
  return iVar2;
}


lui gp,0x9
addiu gp,gp,-0x28cc
addu gp,gp,t9
addiu sp,sp,-0x38
lbu v0,0x256(a0)
sw s1,0x24(sp)
sw gp,0x18(sp)
sw s4,0x30(sp)
sw ra,0x34(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s0,0x20(sp)
lw s1,0x0(a0)
beq v0,zero,0x00020acc
_addiu s4,s1,0xd78
lbu v1,0x259(a0)
beq v1,zero,0x00020acc
_nop
lw v1,0xd78(s1)
beq v1,zero,0x00020a40
_nop
lw t0,0xd7c(s1)
bne t0,zero,0x00020a40
_nop
sw v1,0xd7c(s1)
lw v1,0xd88(s1)
beq v1,zero,0x00020a60
_or s3,a2,zero
lw t0,0xd8c(s1)
bne t0,zero,0x00020a64
_or s2,a1,zero
sw v1,0xd8c(s1)
or s3,a2,zero
or s2,a1,zero
bne v0,zero,0x00020af4
_or s0,a0,zero
li v0,0x1
sb v0,0xd94(s1)
lbu v0,0xca8(s1)
beq v0,zero,0x00020a90
_lw t9,-0x7f70(gp)
lbu v0,0x267(s0)
beq v0,zero,0x00020b30
_nop
lw t9,-0x7f70(gp)
or a3,s3,zero
sw zero,0x10(sp)
or a2,s2,zero
or a1,s4,zero
addiu t9,t9,0x3c
bal 0x0002003c
_or a0,s0,zero
lw ra,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x38
lbu v1,0x258(a0)
bne v1,zero,0x00020a24
_nop
lw v1,0x17c(a0)
bne v1,zero,0x00020a24
_li v1,0x1
or v0,zero,zero
sb v1,0xd84(s1)
b 0x00020aac
_sb v1,0xd94(s1)
lbu v0,0x261(a0)
bne v0,a3,0x00020a70
_li v0,0x1
lw t9,-0x7f70(gp)
li v0,0x1
addiu a1,s1,0xd88
or a3,a2,zero
sw v0,0x10(sp)
addiu t9,t9,0x3c
bal 0x0002003c
_or a2,s2,zero
beq v0,zero,0x00020a74
_lw gp,0x18(sp)
b 0x00020ab0
_lw ra,0x34(sp)
lw a0,0xcac(s1)
beq a0,zero,0x00020a90
_lw t9,-0x7f70(gp)
lbu v0,0x94c(s1)
bne v0,zero,0x00020a94
_or a3,s3,zero
lw t9,-0x7ec0(gp)
bal 0x0003bffc
_lw a1,0x9c(s0)
bne v0,zero,0x00020a8c
_lw gp,0x18(sp)
li v1,0x1
b 0x00020aac
_sb v1,0xd84(s1)
(translation_unit "int FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "cVar1 = *(char *)((int)param_1 + 0x256);" (assignment_expression "cVar1 = *(char *)((int)param_1 + 0x256)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x256)" * (cast_expression "(char *)((int)param_1 + 0x256)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x256)" ( (binary_expression "(int)param_1 + 0x256" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" if (parenthesized_expression "((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0))" ( (binary_expression "(((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)" (parenthesized_expression "(((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0'))" ( (binary_expression "((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')" (parenthesized_expression "((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0'))" ( (binary_expression "(cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)param_1 + 0x259) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x259) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x259)" * (cast_expression "(char *)((int)param_1 + 0x259)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x259)" ( (binary_expression "(int)param_1 + 0x259" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(param_1 + 0x96) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x96) == '\0'" (pointer_expression "*(char *)(param_1 + 0x96)" * (cast_expression "(char *)(param_1 + 0x96)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x96)" ( (binary_expression "param_1 + 0x96" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[0x5f] == 0)" ( (binary_expression "param_1[0x5f] == 0" (subscript_expression "param_1[0x5f]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar3 + 0xd84) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd84) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd84)" * (cast_expression "(undefined1 *)(iVar3 + 0xd84)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd84)" ( (binary_expression "iVar3 + 0xd84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar3 + 0xd94) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd94) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd94)" * (cast_expression "(undefined1 *)(iVar3 + 0xd94)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd94)" ( (binary_expression "iVar3 + 0xd94" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" else (compound_statement "{\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" { (if_statement "if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0))" ( (binary_expression "(*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0xd78) != 0)" ( (binary_expression "*(int *)(iVar3 + 0xd78) != 0" (pointer_expression "*(int *)(iVar3 + 0xd78)" * (cast_expression "(int *)(iVar3 + 0xd78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd78)" ( (binary_expression "iVar3 + 0xd78" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar3 + 0xd7c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xd7c) == 0" (pointer_expression "*(int *)(iVar3 + 0xd7c)" * (cast_expression "(int *)(iVar3 + 0xd7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd7c)" ( (binary_expression "iVar3 + 0xd7c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }" { (expression_statement "*(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);" (assignment_expression "*(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78)" (pointer_expression "*(int *)(iVar3 + 0xd7c)" * (cast_expression "(int *)(iVar3 + 0xd7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd7c)" ( (binary_expression "iVar3 + 0xd7c" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar3 + 0xd78)" * (cast_expression "(int *)(iVar3 + 0xd78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd78)" ( (binary_expression "iVar3 + 0xd78" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0))" ( (binary_expression "(*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0xd88) != 0)" ( (binary_expression "*(int *)(iVar3 + 0xd88) != 0" (pointer_expression "*(int *)(iVar3 + 0xd88)" * (cast_expression "(int *)(iVar3 + 0xd88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd88)" ( (binary_expression "iVar3 + 0xd88" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar3 + 0xd8c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xd8c) == 0" (pointer_expression "*(int *)(iVar3 + 0xd8c)" * (cast_expression "(int *)(iVar3 + 0xd8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd8c)" ( (binary_expression "iVar3 + 0xd8c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }" { (expression_statement "*(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);" (assignment_expression "*(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88)" (pointer_expression "*(int *)(iVar3 + 0xd8c)" * (cast_expression "(int *)(iVar3 + 0xd8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd8c)" ( (binary_expression "iVar3 + 0xd8c" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar3 + 0xd88)" * (cast_expression "(int *)(iVar3 + 0xd88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd88)" ( (binary_expression "iVar3 + 0xd88" identifier + number_literal) ))))) ;) })) (if_statement "if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" if (parenthesized_expression "((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4))" ( (binary_expression "(cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(byte *)((int)param_1 + 0x261) != param_4)" ( (binary_expression "*(byte *)((int)param_1 + 0x261) != param_4" (pointer_expression "*(byte *)((int)param_1 + 0x261)" * (cast_expression "(byte *)((int)param_1 + 0x261)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x261)" ( (binary_expression "(int)param_1 + 0x261" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }" { (expression_statement "*(undefined1 *)(iVar3 + 0xd94) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd94) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd94)" * (cast_expression "(undefined1 *)(iVar3 + 0xd94)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd94)" ( (binary_expression "iVar3 + 0xd94" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" else (compound_statement "{\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" { (expression_statement "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);" (assignment_expression "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1)" identifier = (call_expression "FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1)" identifier (argument_list "(param_1,iVar3 + 0xd88,param_2,param_3,1)" ( identifier , (binary_expression "iVar3 + 0xd88" identifier + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n        return iVar2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return iVar2;\n      }" { (return_statement "return iVar2;" return identifier ;) })) }))) (if_statement "if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" if (parenthesized_expression "((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0))))" ( (binary_expression "(((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))" (parenthesized_expression "(((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0))" ( (binary_expression "((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)" (parenthesized_expression "((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0'))" ( (binary_expression "(*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')" (parenthesized_expression "(*(char *)(iVar3 + 0xca8) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0xca8) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xca8)" * (cast_expression "(char *)(iVar3 + 0xca8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xca8)" ( (binary_expression "iVar3 + 0xca8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)param_1 + 0x267) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x267) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x267)" * (cast_expression "(char *)((int)param_1 + 0x267)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x267)" ( (binary_expression "(int)param_1 + 0x267" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(*(int *)(iVar3 + 0xcac) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xcac) == 0" (pointer_expression "*(int *)(iVar3 + 0xcac)" * (cast_expression "(int *)(iVar3 + 0xcac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xcac)" ( (binary_expression "iVar3 + 0xcac" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))" ( (parenthesized_expression "(*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0))" ( (binary_expression "*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)" (binary_expression "*(char *)(iVar3 + 0x94c) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x94c)" * (cast_expression "(char *)(iVar3 + 0x94c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x94c)" ( (binary_expression "iVar3 + 0x94c" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0" (assignment_expression "iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27])" identifier = (call_expression "FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27])" identifier (argument_list "(*(int *)(iVar3 + 0xcac),param_1[0x27])" ( (pointer_expression "*(int *)(iVar3 + 0xcac)" * (cast_expression "(int *)(iVar3 + 0xcac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xcac)" ( (binary_expression "iVar3 + 0xcac" identifier + number_literal) )))) , (subscript_expression "param_1[0x27]" identifier [ number_literal ]) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }" { (expression_statement "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);" (assignment_expression "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0)" identifier = (call_expression "FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0)" identifier (argument_list "(param_1,iVar3 + 0xd78,param_2,param_3,0)" ( identifier , (binary_expression "iVar3 + 0xd78" identifier + number_literal) , identifier , identifier , number_literal )))) ;) }) (else_clause "else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" else (compound_statement "{\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" { (expression_statement "*(undefined1 *)(iVar3 + 0xd84) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd84) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd84)" * (cast_expression "(undefined1 *)(iVar3 + 0xd84)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd84)" ( (binary_expression "iVar3 + 0xd84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode Curl_http_output_auth(connectdata *conn,char *request,char *path,_Bool proxytunnel)\n\n{\n  _Bool _Var1;\n  CURLcode CVar2;\n  int iVar3;\n  ulong uVar4;\n  char *first;\n  undefined3 in_register_0000001c;\n  Curl_easy *pCVar5;\n  \n  _Var1 = (conn->bits).httpproxy;\n  pCVar5 = conn->data;\n  if ((((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)) {\n    CVar2 = CURLE_OK;\n    (pCVar5->state).authhost.done = true;\n    (pCVar5->state).authproxy.done = true;\n  }\n  else {\n    uVar4 = (pCVar5->state).authhost.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }\n    uVar4 = (pCVar5->state).authproxy.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }\n    if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }\n    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }\n  }\n  return CVar2;\n}\n\n" comment (function_definition "CURLcode Curl_http_output_auth(connectdata *conn,char *request,char *path,_Bool proxytunnel)\n\n{\n  _Bool _Var1;\n  CURLcode CVar2;\n  int iVar3;\n  ulong uVar4;\n  char *first;\n  undefined3 in_register_0000001c;\n  Curl_easy *pCVar5;\n  \n  _Var1 = (conn->bits).httpproxy;\n  pCVar5 = conn->data;\n  if ((((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)) {\n    CVar2 = CURLE_OK;\n    (pCVar5->state).authhost.done = true;\n    (pCVar5->state).authproxy.done = true;\n  }\n  else {\n    uVar4 = (pCVar5->state).authhost.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }\n    uVar4 = (pCVar5->state).authproxy.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }\n    if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }\n    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }\n  }\n  return CVar2;\n}" type_identifier (function_declarator "Curl_http_output_auth(connectdata *conn,char *request,char *path,_Bool proxytunnel)" identifier (parameter_list "(connectdata *conn,char *request,char *path,_Bool proxytunnel)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) , (parameter_declaration "char *request" primitive_type (pointer_declarator "*request" * identifier)) , (parameter_declaration "char *path" primitive_type (pointer_declarator "*path" * identifier)) , (parameter_declaration "_Bool proxytunnel" type_identifier identifier) ))) (compound_statement "{\n  _Bool _Var1;\n  CURLcode CVar2;\n  int iVar3;\n  ulong uVar4;\n  char *first;\n  undefined3 in_register_0000001c;\n  Curl_easy *pCVar5;\n  \n  _Var1 = (conn->bits).httpproxy;\n  pCVar5 = conn->data;\n  if ((((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)) {\n    CVar2 = CURLE_OK;\n    (pCVar5->state).authhost.done = true;\n    (pCVar5->state).authproxy.done = true;\n  }\n  else {\n    uVar4 = (pCVar5->state).authhost.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }\n    uVar4 = (pCVar5->state).authproxy.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }\n    if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }\n    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }\n  }\n  return CVar2;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "CURLcode CVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "char *first;" primitive_type (pointer_declarator "*first" * identifier) ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "Curl_easy *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (expression_statement "_Var1 = (conn->bits).httpproxy;" (assignment_expression "_Var1 = (conn->bits).httpproxy" identifier = (field_expression "(conn->bits).httpproxy" (parenthesized_expression "(conn->bits)" ( (field_expression "conn->bits" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pCVar5 = conn->data;" (assignment_expression "pCVar5 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (if_statement "if ((((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)) {\n    CVar2 = CURLE_OK;\n    (pCVar5->state).authhost.done = true;\n    (pCVar5->state).authproxy.done = true;\n  }\n  else {\n    uVar4 = (pCVar5->state).authhost.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }\n    uVar4 = (pCVar5->state).authproxy.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }\n    if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }\n    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }\n  }" if (parenthesized_expression "((((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0))" ( (binary_expression "(((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)" (parenthesized_expression "(((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false))" ( (binary_expression "((_Var1 == false) || ((conn->bits).proxy_user_passwd == false)) &&\n      ((conn->bits).user_passwd == false)" (parenthesized_expression "((_Var1 == false) || ((conn->bits).proxy_user_passwd == false))" ( (binary_expression "(_Var1 == false) || ((conn->bits).proxy_user_passwd == false)" (parenthesized_expression "(_Var1 == false)" ( (binary_expression "_Var1 == false" identifier == false) )) || (parenthesized_expression "((conn->bits).proxy_user_passwd == false)" ( (binary_expression "(conn->bits).proxy_user_passwd == false" (field_expression "(conn->bits).proxy_user_passwd" (parenthesized_expression "(conn->bits)" ( (field_expression "conn->bits" identifier -> field_identifier) )) . field_identifier) == false) ))) )) && (parenthesized_expression "((conn->bits).user_passwd == false)" ( (binary_expression "(conn->bits).user_passwd == false" (field_expression "(conn->bits).user_passwd" (parenthesized_expression "(conn->bits)" ( (field_expression "conn->bits" identifier -> field_identifier) )) . field_identifier) == false) ))) )) && (parenthesized_expression "(conn->oauth_bearer == (char *)0x0)" ( (binary_expression "conn->oauth_bearer == (char *)0x0" (field_expression "conn->oauth_bearer" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    CVar2 = CURLE_OK;\n    (pCVar5->state).authhost.done = true;\n    (pCVar5->state).authproxy.done = true;\n  }" { (expression_statement "CVar2 = CURLE_OK;" (assignment_expression "CVar2 = CURLE_OK" identifier = identifier) ;) (expression_statement "(pCVar5->state).authhost.done = true;" (assignment_expression "(pCVar5->state).authhost.done = true" (field_expression "(pCVar5->state).authhost.done" (field_expression "(pCVar5->state).authhost" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;) (expression_statement "(pCVar5->state).authproxy.done = true;" (assignment_expression "(pCVar5->state).authproxy.done = true" (field_expression "(pCVar5->state).authproxy.done" (field_expression "(pCVar5->state).authproxy" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;) }) (else_clause "else {\n    uVar4 = (pCVar5->state).authhost.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }\n    uVar4 = (pCVar5->state).authproxy.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }\n    if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }\n    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }\n  }" else (compound_statement "{\n    uVar4 = (pCVar5->state).authhost.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }\n    uVar4 = (pCVar5->state).authproxy.want;\n    if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }\n    if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }\n    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }\n  }" { (expression_statement "uVar4 = (pCVar5->state).authhost.want;" (assignment_expression "uVar4 = (pCVar5->state).authhost.want" identifier = (field_expression "(pCVar5->state).authhost.want" (field_expression "(pCVar5->state).authhost" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)) {\n      (pCVar5->state).authhost.picked = uVar4;\n    }" if (parenthesized_expression "((uVar4 != 0) && ((pCVar5->state).authhost.picked == 0))" ( (binary_expression "(uVar4 != 0) && ((pCVar5->state).authhost.picked == 0)" (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "((pCVar5->state).authhost.picked == 0)" ( (binary_expression "(pCVar5->state).authhost.picked == 0" (field_expression "(pCVar5->state).authhost.picked" (field_expression "(pCVar5->state).authhost" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\n      (pCVar5->state).authhost.picked = uVar4;\n    }" { (expression_statement "(pCVar5->state).authhost.picked = uVar4;" (assignment_expression "(pCVar5->state).authhost.picked = uVar4" (field_expression "(pCVar5->state).authhost.picked" (field_expression "(pCVar5->state).authhost" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) })) (expression_statement "uVar4 = (pCVar5->state).authproxy.want;" (assignment_expression "uVar4 = (pCVar5->state).authproxy.want" identifier = (field_expression "(pCVar5->state).authproxy.want" (field_expression "(pCVar5->state).authproxy" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)) {\n      (pCVar5->state).authproxy.picked = uVar4;\n    }" if (parenthesized_expression "((uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0))" ( (binary_expression "(uVar4 != 0) && ((pCVar5->state).authproxy.picked == 0)" (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "((pCVar5->state).authproxy.picked == 0)" ( (binary_expression "(pCVar5->state).authproxy.picked == 0" (field_expression "(pCVar5->state).authproxy.picked" (field_expression "(pCVar5->state).authproxy" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\n      (pCVar5->state).authproxy.picked = uVar4;\n    }" { (expression_statement "(pCVar5->state).authproxy.picked = uVar4;" (assignment_expression "(pCVar5->state).authproxy.picked = uVar4" (field_expression "(pCVar5->state).authproxy.picked" (field_expression "(pCVar5->state).authproxy" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) })) (if_statement "if ((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))) {\n      (pCVar5->state).authproxy.done = true;\n    }\n    else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }" if (parenthesized_expression "((_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel)))" ( (binary_expression "(_Var1 == false) ||\n       ((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))" (parenthesized_expression "(_Var1 == false)" ( (binary_expression "_Var1 == false" identifier == false) )) || (parenthesized_expression "((uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel))" ( (binary_expression "(uint)(conn->bits).tunnel_proxy != CONCAT31(in_register_0000001c,proxytunnel)" (field_expression "(uint)(conn->bits).tunnel_proxy" (call_expression "(uint)(conn->bits)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(conn->bits)" ( (field_expression "conn->bits" identifier -> field_identifier) ))) . field_identifier) != (call_expression "CONCAT31(in_register_0000001c,proxytunnel)" identifier (argument_list "(in_register_0000001c,proxytunnel)" ( identifier , identifier )))) ))) )) (compound_statement "{\n      (pCVar5->state).authproxy.done = true;\n    }" { (expression_statement "(pCVar5->state).authproxy.done = true;" (assignment_expression "(pCVar5->state).authproxy.done = true" (field_expression "(pCVar5->state).authproxy.done" (field_expression "(pCVar5->state).authproxy" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;) }) (else_clause "else {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }" else (compound_statement "{\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n    }" { (expression_statement "CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true);" (assignment_expression "CVar2 = output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true)" identifier = (call_expression "output_auth_headers(conn,&(pCVar5->state).authproxy,request,path,true)" identifier (argument_list "(conn,&(pCVar5->state).authproxy,request,path,true)" ( identifier , (pointer_expression "&(pCVar5->state).authproxy" & (field_expression "(pCVar5->state).authproxy" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier)) , identifier , identifier , true )))) ;) (if_statement "if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }" if (parenthesized_expression "(CVar2 != CURLE_OK)" ( (binary_expression "CVar2 != CURLE_OK" identifier != identifier) )) (compound_statement "{\n        return CVar2;\n      }" { (return_statement "return CVar2;" return identifier ;) })) }))) (if_statement "if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))) {\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }\n    else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }" if (parenthesized_expression "(((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0))))" ( (binary_expression "((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)) ||\n       (((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))" (parenthesized_expression "((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0))" ( (binary_expression "(((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||\n        (first = (pCVar5->state).first_host, first == (char *)0x0)" (parenthesized_expression "(((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false))" ( (binary_expression "((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)" (parenthesized_expression "((pCVar5->state).this_is_a_follow == false)" ( (binary_expression "(pCVar5->state).this_is_a_follow == false" (field_expression "(pCVar5->state).this_is_a_follow" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "((conn->bits).netrc != false)" ( (binary_expression "(conn->bits).netrc != false" (field_expression "(conn->bits).netrc" (parenthesized_expression "(conn->bits)" ( (field_expression "conn->bits" identifier -> field_identifier) )) . field_identifier) != false) ))) )) || (parenthesized_expression "(first = (pCVar5->state).first_host, first == (char *)0x0)" ( (comma_expression "first = (pCVar5->state).first_host, first == (char *)0x0" (assignment_expression "first = (pCVar5->state).first_host" identifier = (field_expression "(pCVar5->state).first_host" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "first == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)))" ( (parenthesized_expression "((pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0))" ( (binary_expression "(pCVar5->set).allow_auth_to_other_hosts != false ||\n        (iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)" (binary_expression "(pCVar5->set).allow_auth_to_other_hosts != false" (field_expression "(pCVar5->set).allow_auth_to_other_hosts" (parenthesized_expression "(pCVar5->set)" ( (field_expression "pCVar5->set" identifier -> field_identifier) )) . field_identifier) != false) || (parenthesized_expression "(iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0)" ( (comma_expression "iVar3 = Curl_strcasecompare(first,(conn->host).name), iVar3 != 0" (assignment_expression "iVar3 = Curl_strcasecompare(first,(conn->host).name)" identifier = (call_expression "Curl_strcasecompare(first,(conn->host).name)" identifier (argument_list "(first,(conn->host).name)" ( identifier , (field_expression "(conn->host).name" (parenthesized_expression "(conn->host)" ( (field_expression "conn->host" identifier -> field_identifier) )) . field_identifier) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n      CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);\n    }" { (expression_statement "CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false);" (assignment_expression "CVar2 = output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false)" identifier = (call_expression "output_auth_headers(conn,&(pCVar5->state).authhost,request,path,false)" identifier (argument_list "(conn,&(pCVar5->state).authhost,request,path,false)" ( identifier , (pointer_expression "&(pCVar5->state).authhost" & (field_expression "(pCVar5->state).authhost" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier)) , identifier , identifier , false )))) ;) }) (else_clause "else {\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }" else (compound_statement "{\n      (pCVar5->state).authhost.done = true;\n      CVar2 = CURLE_OK;\n    }" { (expression_statement "(pCVar5->state).authhost.done = true;" (assignment_expression "(pCVar5->state).authhost.done = true" (field_expression "(pCVar5->state).authhost.done" (field_expression "(pCVar5->state).authhost" (parenthesized_expression "(pCVar5->state)" ( (field_expression "pCVar5->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;) (expression_statement "CVar2 = CURLE_OK;" (assignment_expression "CVar2 = CURLE_OK" identifier = identifier) ;) }))) }))) (return_statement "return CVar2;" return identifier ;) })))
(translation_unit "int FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "cVar1 = *(char *)((int)param_1 + 0x256);" (assignment_expression "cVar1 = *(char *)((int)param_1 + 0x256)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x256)" * (cast_expression "(char *)((int)param_1 + 0x256)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x256)" ( (binary_expression "(int)param_1 + 0x256" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" if (parenthesized_expression "((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0))" ( (binary_expression "(((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)" (parenthesized_expression "(((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0'))" ( (binary_expression "((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')" (parenthesized_expression "((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0'))" ( (binary_expression "(cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)param_1 + 0x259) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x259) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x259)" * (cast_expression "(char *)((int)param_1 + 0x259)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x259)" ( (binary_expression "(int)param_1 + 0x259" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(param_1 + 0x96) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x96) == '\0'" (pointer_expression "*(char *)(param_1 + 0x96)" * (cast_expression "(char *)(param_1 + 0x96)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x96)" ( (binary_expression "param_1 + 0x96" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[0x5f] == 0)" ( (binary_expression "param_1[0x5f] == 0" (subscript_expression "param_1[0x5f]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar3 + 0xd84) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd84) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd84)" * (cast_expression "(undefined1 *)(iVar3 + 0xd84)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd84)" ( (binary_expression "iVar3 + 0xd84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar3 + 0xd94) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd94) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd94)" * (cast_expression "(undefined1 *)(iVar3 + 0xd94)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd94)" ( (binary_expression "iVar3 + 0xd94" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" else (compound_statement "{\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" { (if_statement "if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0))" ( (binary_expression "(*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0xd78) != 0)" ( (binary_expression "*(int *)(iVar3 + 0xd78) != 0" (pointer_expression "*(int *)(iVar3 + 0xd78)" * (cast_expression "(int *)(iVar3 + 0xd78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd78)" ( (binary_expression "iVar3 + 0xd78" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar3 + 0xd7c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xd7c) == 0" (pointer_expression "*(int *)(iVar3 + 0xd7c)" * (cast_expression "(int *)(iVar3 + 0xd7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd7c)" ( (binary_expression "iVar3 + 0xd7c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }" { (expression_statement "*(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);" (assignment_expression "*(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78)" (pointer_expression "*(int *)(iVar3 + 0xd7c)" * (cast_expression "(int *)(iVar3 + 0xd7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd7c)" ( (binary_expression "iVar3 + 0xd7c" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar3 + 0xd78)" * (cast_expression "(int *)(iVar3 + 0xd78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd78)" ( (binary_expression "iVar3 + 0xd78" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0))" ( (binary_expression "(*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0xd88) != 0)" ( (binary_expression "*(int *)(iVar3 + 0xd88) != 0" (pointer_expression "*(int *)(iVar3 + 0xd88)" * (cast_expression "(int *)(iVar3 + 0xd88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd88)" ( (binary_expression "iVar3 + 0xd88" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar3 + 0xd8c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xd8c) == 0" (pointer_expression "*(int *)(iVar3 + 0xd8c)" * (cast_expression "(int *)(iVar3 + 0xd8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd8c)" ( (binary_expression "iVar3 + 0xd8c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }" { (expression_statement "*(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);" (assignment_expression "*(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88)" (pointer_expression "*(int *)(iVar3 + 0xd8c)" * (cast_expression "(int *)(iVar3 + 0xd8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd8c)" ( (binary_expression "iVar3 + 0xd8c" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar3 + 0xd88)" * (cast_expression "(int *)(iVar3 + 0xd88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd88)" ( (binary_expression "iVar3 + 0xd88" identifier + number_literal) ))))) ;) })) (if_statement "if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" if (parenthesized_expression "((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4))" ( (binary_expression "(cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(byte *)((int)param_1 + 0x261) != param_4)" ( (binary_expression "*(byte *)((int)param_1 + 0x261) != param_4" (pointer_expression "*(byte *)((int)param_1 + 0x261)" * (cast_expression "(byte *)((int)param_1 + 0x261)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x261)" ( (binary_expression "(int)param_1 + 0x261" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }" { (expression_statement "*(undefined1 *)(iVar3 + 0xd94) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd94) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd94)" * (cast_expression "(undefined1 *)(iVar3 + 0xd94)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd94)" ( (binary_expression "iVar3 + 0xd94" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" else (compound_statement "{\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" { (expression_statement "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);" (assignment_expression "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1)" identifier = (call_expression "FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1)" identifier (argument_list "(param_1,iVar3 + 0xd88,param_2,param_3,1)" ( identifier , (binary_expression "iVar3 + 0xd88" identifier + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n        return iVar2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return iVar2;\n      }" { (return_statement "return iVar2;" return identifier ;) })) }))) (if_statement "if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" if (parenthesized_expression "((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0))))" ( (binary_expression "(((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))" (parenthesized_expression "(((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0))" ( (binary_expression "((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)" (parenthesized_expression "((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0'))" ( (binary_expression "(*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')" (parenthesized_expression "(*(char *)(iVar3 + 0xca8) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0xca8) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xca8)" * (cast_expression "(char *)(iVar3 + 0xca8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xca8)" ( (binary_expression "iVar3 + 0xca8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)param_1 + 0x267) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x267) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x267)" * (cast_expression "(char *)((int)param_1 + 0x267)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x267)" ( (binary_expression "(int)param_1 + 0x267" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(*(int *)(iVar3 + 0xcac) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xcac) == 0" (pointer_expression "*(int *)(iVar3 + 0xcac)" * (cast_expression "(int *)(iVar3 + 0xcac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xcac)" ( (binary_expression "iVar3 + 0xcac" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))" ( (parenthesized_expression "(*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0))" ( (binary_expression "*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)" (binary_expression "*(char *)(iVar3 + 0x94c) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x94c)" * (cast_expression "(char *)(iVar3 + 0x94c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x94c)" ( (binary_expression "iVar3 + 0x94c" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0" (assignment_expression "iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27])" identifier = (call_expression "FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27])" identifier (argument_list "(*(int *)(iVar3 + 0xcac),param_1[0x27])" ( (pointer_expression "*(int *)(iVar3 + 0xcac)" * (cast_expression "(int *)(iVar3 + 0xcac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xcac)" ( (binary_expression "iVar3 + 0xcac" identifier + number_literal) )))) , (subscript_expression "param_1[0x27]" identifier [ number_literal ]) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }" { (expression_statement "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);" (assignment_expression "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0)" identifier = (call_expression "FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0)" identifier (argument_list "(param_1,iVar3 + 0xd78,param_2,param_3,0)" ( identifier , (binary_expression "iVar3 + 0xd78" identifier + number_literal) , identifier , identifier , number_literal )))) ;) }) (else_clause "else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" else (compound_statement "{\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" { (expression_statement "*(undefined1 *)(iVar3 + 0xd84) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd84) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd84)" * (cast_expression "(undefined1 *)(iVar3 + 0xd84)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd84)" ( (binary_expression "iVar3 + 0xd84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "FUN_000209dc(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)" (identifier "FUN_000209dc") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,uint param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  cVar1 = *(char *)((int)param_1 + 0x256);\n  iVar3 = *param_1;\n  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }\n  return iVar2;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "cVar1 = *(char *)((int)param_1 + 0x256);" (assignment_expression "cVar1 = *(char *)((int)param_1 + 0x256)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x256)" (* "*") (cast_expression "(char *)((int)param_1 + 0x256)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x256)" (( "(") (binary_expression "(int)param_1 + 0x256" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x256")) () ")"))))) (; ";")) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" (identifier "iVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }\n  else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" (if "if") (parenthesized_expression "((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0))" (( "(") (binary_expression "(((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)" (parenthesized_expression "(((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0'))" (( "(") (binary_expression "((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&\n      (*(char *)(param_1 + 0x96) == '\0')" (parenthesized_expression "((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0'))" (( "(") (binary_expression "(cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')" (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)param_1 + 0x259) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x259) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x259)" (* "*") (cast_expression "(char *)((int)param_1 + 0x259)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x259)" (( "(") (binary_expression "(int)param_1 + 0x259" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x259")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_1 + 0x96) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x96) == '\0'" (pointer_expression "*(char *)(param_1 + 0x96)" (* "*") (cast_expression "(char *)(param_1 + 0x96)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x96)" (( "(") (binary_expression "param_1 + 0x96" (identifier "param_1") (+ "+") (number_literal "0x96")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x5f] == 0)" (( "(") (binary_expression "param_1[0x5f] == 0" (subscript_expression "param_1[0x5f]" (identifier "param_1") ([ "[") (number_literal "0x5f") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar2 = 0;\n    *(undefined1 *)(iVar3 + 0xd84) = 1;\n    *(undefined1 *)(iVar3 + 0xd94) = 1;\n  }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar3 + 0xd84) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd84) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd84)" (* "*") (cast_expression "(undefined1 *)(iVar3 + 0xd84)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd84)" (( "(") (binary_expression "iVar3 + 0xd84" (identifier "iVar3") (+ "+") (number_literal "0xd84")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar3 + 0xd94) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd94) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd94)" (* "*") (cast_expression "(undefined1 *)(iVar3 + 0xd94)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd94)" (( "(") (binary_expression "iVar3 + 0xd94" (identifier "iVar3") (+ "+") (number_literal "0xd94")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" (else "else") (compound_statement "{\n    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }\n    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }\n    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }\n    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0))" (( "(") (binary_expression "(*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0xd78) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0xd78) != 0" (pointer_expression "*(int *)(iVar3 + 0xd78)" (* "*") (cast_expression "(int *)(iVar3 + 0xd78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd78)" (( "(") (binary_expression "iVar3 + 0xd78" (identifier "iVar3") (+ "+") (number_literal "0xd78")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar3 + 0xd7c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0xd7c) == 0" (pointer_expression "*(int *)(iVar3 + 0xd7c)" (* "*") (cast_expression "(int *)(iVar3 + 0xd7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd7c)" (( "(") (binary_expression "iVar3 + 0xd7c" (identifier "iVar3") (+ "+") (number_literal "0xd7c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);\n    }" ({ "{") (expression_statement "*(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);" (assignment_expression "*(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78)" (pointer_expression "*(int *)(iVar3 + 0xd7c)" (* "*") (cast_expression "(int *)(iVar3 + 0xd7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd7c)" (( "(") (binary_expression "iVar3 + 0xd7c" (identifier "iVar3") (+ "+") (number_literal "0xd7c")) () ")")))) (= "=") (pointer_expression "*(int *)(iVar3 + 0xd78)" (* "*") (cast_expression "(int *)(iVar3 + 0xd78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd78)" (( "(") (binary_expression "iVar3 + 0xd78" (identifier "iVar3") (+ "+") (number_literal "0xd78")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0))" (( "(") (binary_expression "(*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)" (parenthesized_expression "(*(int *)(iVar3 + 0xd88) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0xd88) != 0" (pointer_expression "*(int *)(iVar3 + 0xd88)" (* "*") (cast_expression "(int *)(iVar3 + 0xd88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd88)" (( "(") (binary_expression "iVar3 + 0xd88" (identifier "iVar3") (+ "+") (number_literal "0xd88")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar3 + 0xd8c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0xd8c) == 0" (pointer_expression "*(int *)(iVar3 + 0xd8c)" (* "*") (cast_expression "(int *)(iVar3 + 0xd8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd8c)" (( "(") (binary_expression "iVar3 + 0xd8c" (identifier "iVar3") (+ "+") (number_literal "0xd8c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);\n    }" ({ "{") (expression_statement "*(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);" (assignment_expression "*(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88)" (pointer_expression "*(int *)(iVar3 + 0xd8c)" (* "*") (cast_expression "(int *)(iVar3 + 0xd8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd8c)" (( "(") (binary_expression "iVar3 + 0xd8c" (identifier "iVar3") (+ "+") (number_literal "0xd8c")) () ")")))) (= "=") (pointer_expression "*(int *)(iVar3 + 0xd88)" (* "*") (cast_expression "(int *)(iVar3 + 0xd88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd88)" (( "(") (binary_expression "iVar3 + 0xd88" (identifier "iVar3") (+ "+") (number_literal "0xd88")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }\n    else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" (if "if") (parenthesized_expression "((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4))" (( "(") (binary_expression "(cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)" (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(byte *)((int)param_1 + 0x261) != param_4)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x261) != param_4" (pointer_expression "*(byte *)((int)param_1 + 0x261)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x261)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x261)" (( "(") (binary_expression "(int)param_1 + 0x261" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x261")) () ")")))) (!= "!=") (identifier "param_4")) () ")"))) () ")")) (compound_statement "{\n      *(undefined1 *)(iVar3 + 0xd94) = 1;\n    }" ({ "{") (expression_statement "*(undefined1 *)(iVar3 + 0xd94) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd94) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd94)" (* "*") (cast_expression "(undefined1 *)(iVar3 + 0xd94)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd94)" (( "(") (binary_expression "iVar3 + 0xd94" (identifier "iVar3") (+ "+") (number_literal "0xd94")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" (else "else") (compound_statement "{\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);\n      if (iVar2 != 0) {\n        return iVar2;\n      }\n    }" ({ "{") (expression_statement "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);" (assignment_expression "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1)" (identifier "iVar2") (= "=") (call_expression "FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1)" (identifier "FUN_0002003c") (argument_list "(param_1,iVar3 + 0xd88,param_2,param_3,1)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar3 + 0xd88" (identifier "iVar3") (+ "+") (number_literal "0xd88")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return iVar2;\n      }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }\n    else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" (if "if") (parenthesized_expression "((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0))))" (( "(") (binary_expression "(((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)) ||\n       ((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))" (parenthesized_expression "(((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0))" (( "(") (binary_expression "((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||\n        (*(int *)(iVar3 + 0xcac) == 0)" (parenthesized_expression "((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0'))" (( "(") (binary_expression "(*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')" (parenthesized_expression "(*(char *)(iVar3 + 0xca8) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 0xca8) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xca8)" (* "*") (cast_expression "(char *)(iVar3 + 0xca8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xca8)" (( "(") (binary_expression "iVar3 + 0xca8" (identifier "iVar3") (+ "+") (number_literal "0xca8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)param_1 + 0x267) != '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x267) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x267)" (* "*") (cast_expression "(char *)((int)param_1 + 0x267)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x267)" (( "(") (binary_expression "(int)param_1 + 0x267" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x267")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar3 + 0xcac) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0xcac) == 0" (pointer_expression "*(int *)(iVar3 + 0xcac)" (* "*") (cast_expression "(int *)(iVar3 + 0xcac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xcac)" (( "(") (binary_expression "iVar3 + 0xcac" (identifier "iVar3") (+ "+") (number_literal "0xcac")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))" (( "(") (parenthesized_expression "(*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0))" (( "(") (binary_expression "*(char *)(iVar3 + 0x94c) != '\0' ||\n        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)" (binary_expression "*(char *)(iVar3 + 0x94c) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x94c)" (* "*") (cast_expression "(char *)(iVar3 + 0x94c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x94c)" (( "(") (binary_expression "iVar3 + 0x94c" (identifier "iVar3") (+ "+") (number_literal "0x94c")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0" (assignment_expression "iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27])" (identifier "iVar2") (= "=") (call_expression "FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27])" (identifier "FUN_0003bffc") (argument_list "(*(int *)(iVar3 + 0xcac),param_1[0x27])" (( "(") (pointer_expression "*(int *)(iVar3 + 0xcac)" (* "*") (cast_expression "(int *)(iVar3 + 0xcac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xcac)" (( "(") (binary_expression "iVar3 + 0xcac" (identifier "iVar3") (+ "+") (number_literal "0xcac")) () ")")))) (, ",") (subscript_expression "param_1[0x27]" (identifier "param_1") ([ "[") (number_literal "0x27") (] "]")) () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);\n    }" ({ "{") (expression_statement "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);" (assignment_expression "iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0)" (identifier "FUN_0002003c") (argument_list "(param_1,iVar3 + 0xd78,param_2,param_3,0)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar3 + 0xd78" (identifier "iVar3") (+ "+") (number_literal "0xd78")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" (else "else") (compound_statement "{\n      *(undefined1 *)(iVar3 + 0xd84) = 1;\n      iVar2 = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(iVar3 + 0xd84) = 1;" (assignment_expression "*(undefined1 *)(iVar3 + 0xd84) = 1" (pointer_expression "*(undefined1 *)(iVar3 + 0xd84)" (* "*") (cast_expression "(undefined1 *)(iVar3 + 0xd84)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd84)" (( "(") (binary_expression "iVar3 + 0xd84" (identifier "iVar3") (+ "+") (number_literal "0xd84")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

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

type_1 function_1(type_2 *conn,char *request,char *path,type_3 proxytunnel)

{
  type_3 var_1;
  type_1 var_5;
  int var_9;
  type_4 var_2;
  char *var_7;
  type_5 in_register_0000001c;
  type_6 *pCVar5;
  
  var_1 = (conn->bits).httpproxy;
  pCVar5 = conn->data;
  if ((((var_1 == false) || ((conn->bits).proxy_user_passwd == false)) &&
      ((conn->bits).user_passwd == false)) && (conn->oauth_bearer == (char *)0x0)) {
    var_5 = var_6;
    (pCVar5->state).authhost.done = true;
    (pCVar5->state).authproxy.done = true;
  }
  else {
    var_2 = (pCVar5->state).authhost.want;
    if ((var_2 != 0) && ((pCVar5->state).authhost.picked == 0)) {
      (pCVar5->state).authhost.picked = var_2;
    }
    var_2 = (pCVar5->state).authproxy.want;
    if ((var_2 != 0) && ((pCVar5->state).authproxy.picked == 0)) {
      (pCVar5->state).authproxy.picked = var_2;
    }
    if ((var_1 == false) ||
       ((uint)(conn->bits).tunnel_proxy != var_3(in_register_0000001c,proxytunnel))) {
      (pCVar5->state).authproxy.done = true;
    }
    else {
      var_5 = var_4(conn,&(pCVar5->state).authproxy,request,path,true);
      if (var_5 != var_6) {
        return var_5;
      }
    }
    if (((((pCVar5->state).this_is_a_follow == false) || ((conn->bits).netrc != false)) ||
        (var_7 = (pCVar5->state).first_host, var_7 == (char *)0x0)) ||
       (((pCVar5->set).allow_auth_to_other_hosts != false ||
        (var_9 = var_8(var_7,(conn->host).name), var_9 != 0)))) {
      var_5 = var_4(conn,&(pCVar5->state).authhost,request,path,false);
    }
    else {
      (pCVar5->state).authhost.done = true;
      var_5 = var_6;
    }
  }
  return var_5;
}


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

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

{
  char cVar1;
  int iVar2;
  int iVar3;
  
  cVar1 = *(char *)((int)param_1 + 0x256);
  iVar3 = *param_1;
  if ((((cVar1 == '\0') || (*(char *)((int)param_1 + 0x259) == '\0')) &&
      (*(char *)(param_1 + 0x96) == '\0')) && (param_1[0x5f] == 0)) {
    iVar2 = 0;
    *(undefined1 *)(iVar3 + 0xd84) = 1;
    *(undefined1 *)(iVar3 + 0xd94) = 1;
  }
  else {
    if ((*(int *)(iVar3 + 0xd78) != 0) && (*(int *)(iVar3 + 0xd7c) == 0)) {
      *(int *)(iVar3 + 0xd7c) = *(int *)(iVar3 + 0xd78);
    }
    if ((*(int *)(iVar3 + 0xd88) != 0) && (*(int *)(iVar3 + 0xd8c) == 0)) {
      *(int *)(iVar3 + 0xd8c) = *(int *)(iVar3 + 0xd88);
    }
    if ((cVar1 == '\0') || (*(byte *)((int)param_1 + 0x261) != param_4)) {
      *(undefined1 *)(iVar3 + 0xd94) = 1;
    }
    else {
      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd88,param_2,param_3,1);
      if (iVar2 != 0) {
        return iVar2;
      }
    }
    if ((((*(char *)(iVar3 + 0xca8) == '\0') || (*(char *)((int)param_1 + 0x267) != '\0')) ||
        (*(int *)(iVar3 + 0xcac) == 0)) ||
       ((*(char *)(iVar3 + 0x94c) != '\0' ||
        (iVar2 = FUN_0003bffc(*(int *)(iVar3 + 0xcac),param_1[0x27]), iVar2 != 0)))) {
      iVar2 = FUN_0002003c(param_1,iVar3 + 0xd78,param_2,param_3,0);
    }
    else {
      *(undefined1 *)(iVar3 + 0xd84) = 1;
      iVar2 = 0;
    }
  }
  return iVar2;
}

