
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

CURLcode Curl_output_ntlm_wb(connectdata *conn,_Bool proxy)

{
  curlntlm cVar1;
  CURLcode CVar2;
  undefined3 in_register_00000014;
  int iVar3;
  char *pcVar4;
  undefined *puVar5;
  undefined *puVar6;
  Curl_easy *pCVar7;
  auth *paVar8;
  ntlmdata *pnVar9;
  dynamically_allocated_data *pdVar10;
  code *pcVar11;
  
  iVar3 = CONCAT31(in_register_00000014,proxy);
  pCVar7 = conn->data;
  if (iVar3 == 0) {
    pcVar4 = conn->user;
    paVar8 = &(pCVar7->state).authhost;
    pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;
    (pCVar7->state).authhost.done = false;
    pnVar9 = &conn->ntlm;
  }
  else {
    pcVar4 = (conn->http_proxy).user;
    paVar8 = &(pCVar7->state).authproxy;
    pdVar10 = &conn->allocptr;
    (pCVar7->state).authproxy.done = false;
    pnVar9 = &conn->proxyntlm;
  }
  if (pcVar4 == (char *)0x0) {
    cVar1 = pnVar9->state;
    pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);
  }
  else {
    cVar1 = pnVar9->state;
  }
  if (cVar1 == NTLMSTATE_TYPE2) {
    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)
                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),
                                conn->challenge_header);
    puVar5 = PTR_Curl_cfree_000a6144;
    if (pcVar4 != (char *)0x0) {
      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);
      (**(code **)puVar5)(pcVar4);
      if (CVar2 != CURLE_OK) {
        return CVar2;
      }
      (**(code **)puVar5)(pdVar10->proxyuserpwd);
      if (iVar3 == 0) {
        puVar5 = PTR_UINT_000a6194 + 0x3538;
      }
      else {
        puVar5 = PTR_UINT_000a6194 + -0x7784;
      }
      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)
                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);
      pdVar10->proxyuserpwd = pcVar4;
      pnVar9->state = NTLMSTATE_TYPE3;
      *(_Bool *)((int)paVar8 + 0xc) = true;
      Curl_ntlm_wb_cleanup(conn);
      if (pdVar10->proxyuserpwd != (char *)0x0) {
        return CURLE_OK;
      }
    }
  }
  else {
    if (cVar1 == NTLMSTATE_TYPE3) {
      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);
      pdVar10->proxyuserpwd = (char *)0x0;
      *(_Bool *)((int)paVar8 + 0xc) = true;
      return CURLE_OK;
    }
    CVar2 = ntlm_wb_init(conn,pcVar4);
    if (CVar2 != CURLE_OK) {
      return CVar2;
    }
    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);
    puVar5 = PTR_Curl_cfree_000a6144;
    if (CVar2 != CURLE_OK) {
      return CVar2;
    }
    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);
    if (iVar3 == 0) {
      puVar6 = PTR_UINT_000a6194 + 0x3538;
    }
    else {
      puVar6 = PTR_UINT_000a6194 + -0x7784;
    }
    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)
                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);
    pcVar11 = *(code **)puVar5;
    pdVar10->proxyuserpwd = pcVar4;
    (*pcVar11)(conn->response_header);
    if (pdVar10->proxyuserpwd != (char *)0x0) {
      conn->response_header = (char *)0x0;
      return CURLE_OK;
    }
  }
  return CURLE_OUT_OF_MEMORY;
}



/* WARNING: Type propagation algorithm not settling */

int FUN_00063de0(int *param_1,int param_2)

{
  int iVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  int *piVar7;
  code *pcVar8;
  
  iVar4 = *param_1;
  if (param_2 == 0) {
    puVar2 = (undefined *)param_1[0x5c];
    iVar5 = iVar4 + 0xd78;
    piVar7 = param_1 + 0xac;
    *(undefined1 *)(iVar4 + 0xd84) = 0;
    piVar6 = param_1 + 0xd2;
  }
  else {
    puVar2 = (undefined *)param_1[0x3d];
    iVar5 = iVar4 + 0xd88;
    piVar7 = param_1 + 0xa9;
    *(undefined1 *)(iVar4 + 0xd94) = 0;
    piVar6 = param_1 + 0xd8;
  }
  if (puVar2 == (undefined *)0x0) {
    iVar4 = *piVar6;
    puVar2 = PTR_UINT_000a6194 + 0x3538;
  }
  else {
    iVar4 = *piVar6;
  }
  if (iVar4 == 2) {
    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);
    puVar2 = PTR_PTR_free_000a6144;
    if (iVar4 != 0) {
      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);
      (**(code **)puVar2)(iVar4);
      if (iVar1 != 0) {
        return iVar1;
      }
      (**(code **)puVar2)(*piVar7);
      if (param_2 == 0) {
        puVar2 = PTR_UINT_000a6194 + 0x3538;
      }
      else {
        puVar2 = PTR_UINT_000a6194 + -0x7784;
      }
      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])
      ;
      *piVar7 = iVar4;
      *piVar6 = 3;
      *(undefined1 *)(iVar5 + 0xc) = 1;
      FUN_00063c68(param_1);
      if (*piVar7 != 0) {
        return 0;
      }
    }
  }
  else {
    if (iVar4 == 3) {
      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);
      *piVar7 = 0;
      *(undefined1 *)(iVar5 + 0xc) = 1;
      return 0;
    }
    iVar4 = FUN_000633e0(param_1);
    if (iVar4 != 0) {
      return iVar4;
    }
    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);
    puVar2 = PTR_PTR_free_000a6144;
    if (iVar4 != 0) {
      return iVar4;
    }
    (**(code **)PTR_PTR_free_000a6144)(*piVar7);
    if (param_2 == 0) {
      puVar3 = PTR_UINT_000a6194 + 0x3538;
    }
    else {
      puVar3 = PTR_UINT_000a6194 + -0x7784;
    }
    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);
    pcVar8 = *(code **)puVar2;
    *piVar7 = iVar4;
    (*pcVar8)(param_1[0xe1]);
    if (*piVar7 != 0) {
      param_1[0xe1] = 0;
      return 0;
    }
  }
  return 0x1b;
}


lui gp,0x5
addiu gp,gp,-0x5cd0
addu gp,gp,t9
addiu sp,sp,-0x38
sw gp,0x10(sp)
sw s5,0x2c(sp)
or s5,a1,zero
sw s1,0x1c(sp)
sw s0,0x18(sp)
or s0,a0,zero
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
beq a1,zero,0x00063ea0
_lw s1,0x0(a0)
lw a1,0xf4(a0)
addiu s1,s1,0xd88
addiu s4,a0,0x2a4
sb zero,0xc(s1)
beq a1,zero,0x00063eb8
_addiu s3,a0,0x360
lw v0,0x0(s3)
li v1,0x2
beq v0,v1,0x00063ed0
_lw a0,-0x7f7c(gp)
li v1,0x3
beq v0,v1,0x00063f88
_lw v0,-0x7fcc(gp)
lw t9,-0x79cc(gp)
addiu t9,t9,0x33e0
bal 0x000633e0
_or a0,s0,zero
lw gp,0x10(sp)
beq v0,zero,0x00063fd0
_or s2,v0,zero
lw ra,0x34(sp)
or v0,s2,zero
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
lw a1,0x170(a0)
addiu s1,s1,0xd78
addiu s4,a0,0x2b0
sb zero,0xc(s1)
bne a1,zero,0x00063e3c
_addiu s3,a0,0x348
lw a1,-0x7f7c(gp)
li v1,0x2
lw v0,0x0(s3)
bne v0,v1,0x00063e4c
_addiu a1,a1,0x3538
lw a0,-0x7f7c(gp)
lw t9,-0x73b0(gp)
lw a1,0x380(s0)
jalr t9
_addiu a0,a0,0x1c70
lw gp,0x10(sp)
beq v0,zero,0x00063f80
_or s2,v0,zero
lw t9,-0x79cc(gp)
or a0,s0,zero
lw s6,-0x7fcc(gp)
or a1,v0,zero
addiu t9,t9,0x3984
bal 0x00063984
_lw a2,0x0(s3)
or a0,s2,zero
lw t9,0x0(s6)
jalr t9
_or s2,v0,zero
bne s2,zero,0x00063e78
_lw ra,0x34(sp)
lw t9,0x0(s6)
jalr t9
_lw a0,0x0(s4)
bne s5,zero,0x00064050
_lw gp,0x10(sp)
lw a1,-0x7f7c(gp)
addiu a1,a1,0x3538
lw a0,-0x7f7c(gp)
lw t9,-0x73b0(gp)
lw a2,0x384(s0)
jalr t9
_addiu a0,a0,0x1c58
or a0,s0,zero
lw gp,0x10(sp)
sw v0,0x0(s4)
li v0,0x3
sw v0,0x0(s3)
li v0,0x1
lw t9,-0x7d00(gp)
bal 0x00063c68
_sb v0,0xc(s1)
lw v0,0x0(s4)
bne v0,zero,0x00063e78
_lw ra,0x34(sp)
b 0x00063e74
_li s2,0x1b
or s2,zero,zero
lw t9,0x0(v0)
jalr t9
_lw a0,0x0(s4)
li v0,0x1
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s3,0x24(sp)
lw s0,0x18(sp)
sw zero,0x0(s4)
sb v0,0xc(s1)
or v0,s2,zero
lw s4,0x28(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
jr ra
_addiu sp,sp,0x38
lw a1,-0x7f7c(gp)
or a0,s0,zero
lw t9,-0x79cc(gp)
lw a2,0x0(s3)
addiu t9,t9,0x3984
bal 0x00063984
_addiu a1,a1,0x1c54
lw gp,0x10(sp)
bne v0,zero,0x00063e74
_or s2,v0,zero
lw s1,-0x7fcc(gp)
lw t9,0x0(s1)
jalr t9
_lw a0,0x0(s4)
bne s5,zero,0x0006405c
_lw gp,0x10(sp)
lw a1,-0x7f7c(gp)
addiu a1,a1,0x3538
lw a0,-0x7f7c(gp)
lw t9,-0x73b0(gp)
lw a2,0x384(s0)
jalr t9
_addiu a0,a0,0x1c58
lw t9,0x0(s1)
sw v0,0x0(s4)
jalr t9
_lw a0,0x384(s0)
lw v0,0x0(s4)
beq v0,zero,0x00063f80
_nop
b 0x00063e74
_sw zero,0x384(s0)
lw a1,-0x7f7c(gp)
b 0x00063f3c
_addiu a1,a1,-0x7784
lw a1,-0x7f7c(gp)
b 0x00064018
_addiu a1,a1,-0x7784
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint FUN_00063de0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}\n\n" comment (function_definition "int FUN_00063de0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}" primitive_type (function_declarator "FUN_00063de0(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }" { (expression_statement "puVar2 = (undefined *)param_1[0x5c];" (assignment_expression "puVar2 = (undefined *)param_1[0x5c]" identifier = (cast_expression "(undefined *)param_1[0x5c]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x5c]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = iVar4 + 0xd78;" (assignment_expression "iVar5 = iVar4 + 0xd78" identifier = (binary_expression "iVar4 + 0xd78" identifier + number_literal)) ;) (expression_statement "piVar7 = param_1 + 0xac;" (assignment_expression "piVar7 = param_1 + 0xac" identifier = (binary_expression "param_1 + 0xac" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar4 + 0xd84) = 0;" (assignment_expression "*(undefined1 *)(iVar4 + 0xd84) = 0" (pointer_expression "*(undefined1 *)(iVar4 + 0xd84)" * (cast_expression "(undefined1 *)(iVar4 + 0xd84)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd84)" ( (binary_expression "iVar4 + 0xd84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6 = param_1 + 0xd2;" (assignment_expression "piVar6 = param_1 + 0xd2" identifier = (binary_expression "param_1 + 0xd2" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" else (compound_statement "{\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" { (expression_statement "puVar2 = (undefined *)param_1[0x3d];" (assignment_expression "puVar2 = (undefined *)param_1[0x3d]" identifier = (cast_expression "(undefined *)param_1[0x3d]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3d]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = iVar4 + 0xd88;" (assignment_expression "iVar5 = iVar4 + 0xd88" identifier = (binary_expression "iVar4 + 0xd88" identifier + number_literal)) ;) (expression_statement "piVar7 = param_1 + 0xa9;" (assignment_expression "piVar7 = param_1 + 0xa9" identifier = (binary_expression "param_1 + 0xa9" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar4 + 0xd94) = 0;" (assignment_expression "*(undefined1 *)(iVar4 + 0xd94) = 0" (pointer_expression "*(undefined1 *)(iVar4 + 0xd94)" * (cast_expression "(undefined1 *)(iVar4 + 0xd94)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd94)" ( (binary_expression "iVar4 + 0xd94" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6 = param_1 + 0xd8;" (assignment_expression "piVar6 = param_1 + 0xd8" identifier = (binary_expression "param_1 + 0xd8" identifier + number_literal)) ;) }))) (if_statement "if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }" if (parenthesized_expression "(puVar2 == (undefined *)0x0)" ( (binary_expression "puVar2 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "puVar2 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n    iVar4 = *piVar6;\n  }" else (compound_statement "{\n    iVar4 = *piVar6;\n  }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) }))) (if_statement "if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" identifier = (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" ( (binary_expression "PTR_UINT_000a6194 + 0x1c70" identifier + number_literal) , (subscript_expression "param_1[0xe0]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar2 = PTR_PTR_free_000a6144;" (assignment_expression "puVar2 = PTR_PTR_free_000a6144" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }" { (expression_statement "iVar1 = FUN_00063984(param_1,iVar4,*piVar6);" (assignment_expression "iVar1 = FUN_00063984(param_1,iVar4,*piVar6)" identifier = (call_expression "FUN_00063984(param_1,iVar4,*piVar6)" identifier (argument_list "(param_1,iVar4,*piVar6)" ( identifier , identifier , (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "(**(code **)puVar2)(iVar4);" (call_expression "(**(code **)puVar2)(iVar4)" (parenthesized_expression "(**(code **)puVar2)" ( (pointer_expression "**(code **)puVar2" * (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar4)" ( identifier ))) ;) (if_statement "if (iVar1 != 0) {\n        return iVar1;\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        return iVar1;\n      }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "(**(code **)puVar2)(*piVar7);" (call_expression "(**(code **)puVar2)(*piVar7)" (parenthesized_expression "(**(code **)puVar2)" ( (pointer_expression "**(code **)puVar2" * (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) ))) ;) (if_statement "if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }" { (expression_statement "puVar2 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" else (compound_statement "{\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" { (expression_statement "puVar2 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + -0x7784" identifier = (binary_expression "PTR_UINT_000a6194 + -0x7784" identifier + number_literal)) ;) }))) (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" identifier = (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" ( (binary_expression "PTR_UINT_000a6194 + 0x1c58" identifier + number_literal) , identifier , (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) )))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "*piVar6 = 3;" (assignment_expression "*piVar6 = 3" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar5 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar5 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar5 + 0xc)" * (cast_expression "(undefined1 *)(iVar5 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00063c68(param_1);" (call_expression "FUN_00063c68(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (*piVar7 != 0) {\n        return 0;\n      }" if (parenthesized_expression "(*piVar7 != 0)" ( (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" * identifier) != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" else (compound_statement "{\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" { (if_statement "if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }" if (parenthesized_expression "(iVar4 == 3)" ( (binary_expression "iVar4 == 3" identifier == number_literal) )) (compound_statement "{\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }" { (expression_statement "(**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);" (call_expression "(**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2)" (parenthesized_expression "(**(code **)PTR_PTR_free_000a6144)" ( (pointer_expression "**(code **)PTR_PTR_free_000a6144" * (pointer_expression "*(code **)PTR_PTR_free_000a6144" * (cast_expression "(code **)PTR_PTR_free_000a6144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*piVar7,puVar2)" ( (pointer_expression "*piVar7" * identifier) , identifier ))) ;) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar5 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar5 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar5 + 0xc)" * (cast_expression "(undefined1 *)(iVar5 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = FUN_000633e0(param_1);" (assignment_expression "iVar4 = FUN_000633e0(param_1)" identifier = (call_expression "FUN_000633e0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      return iVar4;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return iVar4;\n    }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);" (assignment_expression "iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" identifier = (call_expression "FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" identifier (argument_list "(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" ( identifier , (binary_expression "PTR_UINT_000a6194 + 0x1c54" identifier + number_literal) , (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "puVar2 = PTR_PTR_free_000a6144;" (assignment_expression "puVar2 = PTR_PTR_free_000a6144" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n      return iVar4;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return iVar4;\n    }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "(**(code **)PTR_PTR_free_000a6144)(*piVar7);" (call_expression "(**(code **)PTR_PTR_free_000a6144)(*piVar7)" (parenthesized_expression "(**(code **)PTR_PTR_free_000a6144)" ( (pointer_expression "**(code **)PTR_PTR_free_000a6144" * (pointer_expression "*(code **)PTR_PTR_free_000a6144" * (cast_expression "(code **)PTR_PTR_free_000a6144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) ))) ;) (if_statement "if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }" { (expression_statement "puVar3 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar3 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" else (compound_statement "{\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" { (expression_statement "puVar3 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar3 = PTR_UINT_000a6194 + -0x7784" identifier = (binary_expression "PTR_UINT_000a6194 + -0x7784" identifier + number_literal)) ;) }))) (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" identifier = (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" ( (binary_expression "PTR_UINT_000a6194 + 0x1c58" identifier + number_literal) , identifier , (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar8 = *(code **)puVar2;" (assignment_expression "pcVar8 = *(code **)puVar2" identifier = (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "(*pcVar8)(param_1[0xe1]);" (call_expression "(*pcVar8)(param_1[0xe1])" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(param_1[0xe1])" ( (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) ))) ;) (if_statement "if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }" if (parenthesized_expression "(*piVar7 != 0)" ( (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" * identifier) != number_literal) )) (compound_statement "{\n      param_1[0xe1] = 0;\n      return 0;\n    }" { (expression_statement "param_1[0xe1] = 0;" (assignment_expression "param_1[0xe1] = 0" (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (return_statement "return 0x1b;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode Curl_output_ntlm_wb(connectdata *conn,_Bool proxy)\n\n{\n  curlntlm cVar1;\n  CURLcode CVar2;\n  undefined3 in_register_00000014;\n  int iVar3;\n  char *pcVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  Curl_easy *pCVar7;\n  auth *paVar8;\n  ntlmdata *pnVar9;\n  dynamically_allocated_data *pdVar10;\n  code *pcVar11;\n  \n  iVar3 = CONCAT31(in_register_00000014,proxy);\n  pCVar7 = conn->data;\n  if (iVar3 == 0) {\n    pcVar4 = conn->user;\n    paVar8 = &(pCVar7->state).authhost;\n    pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;\n    (pCVar7->state).authhost.done = false;\n    pnVar9 = &conn->ntlm;\n  }\n  else {\n    pcVar4 = (conn->http_proxy).user;\n    paVar8 = &(pCVar7->state).authproxy;\n    pdVar10 = &conn->allocptr;\n    (pCVar7->state).authproxy.done = false;\n    pnVar9 = &conn->proxyntlm;\n  }\n  if (pcVar4 == (char *)0x0) {\n    cVar1 = pnVar9->state;\n    pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);\n  }\n  else {\n    cVar1 = pnVar9->state;\n  }\n  if (cVar1 == NTLMSTATE_TYPE2) {\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (pcVar4 != (char *)0x0) {\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }\n  }\n  else {\n    if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }\n    CVar2 = ntlm_wb_init(conn,pcVar4);\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n    if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);\n    pcVar11 = *(code **)puVar5;\n    pdVar10->proxyuserpwd = pcVar4;\n    (*pcVar11)(conn->response_header);\n    if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }\n  }\n  return CURLE_OUT_OF_MEMORY;\n}\n\n" comment comment (function_definition "CURLcode Curl_output_ntlm_wb(connectdata *conn,_Bool proxy)\n\n{\n  curlntlm cVar1;\n  CURLcode CVar2;\n  undefined3 in_register_00000014;\n  int iVar3;\n  char *pcVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  Curl_easy *pCVar7;\n  auth *paVar8;\n  ntlmdata *pnVar9;\n  dynamically_allocated_data *pdVar10;\n  code *pcVar11;\n  \n  iVar3 = CONCAT31(in_register_00000014,proxy);\n  pCVar7 = conn->data;\n  if (iVar3 == 0) {\n    pcVar4 = conn->user;\n    paVar8 = &(pCVar7->state).authhost;\n    pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;\n    (pCVar7->state).authhost.done = false;\n    pnVar9 = &conn->ntlm;\n  }\n  else {\n    pcVar4 = (conn->http_proxy).user;\n    paVar8 = &(pCVar7->state).authproxy;\n    pdVar10 = &conn->allocptr;\n    (pCVar7->state).authproxy.done = false;\n    pnVar9 = &conn->proxyntlm;\n  }\n  if (pcVar4 == (char *)0x0) {\n    cVar1 = pnVar9->state;\n    pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);\n  }\n  else {\n    cVar1 = pnVar9->state;\n  }\n  if (cVar1 == NTLMSTATE_TYPE2) {\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (pcVar4 != (char *)0x0) {\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }\n  }\n  else {\n    if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }\n    CVar2 = ntlm_wb_init(conn,pcVar4);\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n    if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);\n    pcVar11 = *(code **)puVar5;\n    pdVar10->proxyuserpwd = pcVar4;\n    (*pcVar11)(conn->response_header);\n    if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }\n  }\n  return CURLE_OUT_OF_MEMORY;\n}" type_identifier (function_declarator "Curl_output_ntlm_wb(connectdata *conn,_Bool proxy)" identifier (parameter_list "(connectdata *conn,_Bool proxy)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) , (parameter_declaration "_Bool proxy" type_identifier identifier) ))) (compound_statement "{\n  curlntlm cVar1;\n  CURLcode CVar2;\n  undefined3 in_register_00000014;\n  int iVar3;\n  char *pcVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  Curl_easy *pCVar7;\n  auth *paVar8;\n  ntlmdata *pnVar9;\n  dynamically_allocated_data *pdVar10;\n  code *pcVar11;\n  \n  iVar3 = CONCAT31(in_register_00000014,proxy);\n  pCVar7 = conn->data;\n  if (iVar3 == 0) {\n    pcVar4 = conn->user;\n    paVar8 = &(pCVar7->state).authhost;\n    pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;\n    (pCVar7->state).authhost.done = false;\n    pnVar9 = &conn->ntlm;\n  }\n  else {\n    pcVar4 = (conn->http_proxy).user;\n    paVar8 = &(pCVar7->state).authproxy;\n    pdVar10 = &conn->allocptr;\n    (pCVar7->state).authproxy.done = false;\n    pnVar9 = &conn->proxyntlm;\n  }\n  if (pcVar4 == (char *)0x0) {\n    cVar1 = pnVar9->state;\n    pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);\n  }\n  else {\n    cVar1 = pnVar9->state;\n  }\n  if (cVar1 == NTLMSTATE_TYPE2) {\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (pcVar4 != (char *)0x0) {\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }\n  }\n  else {\n    if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }\n    CVar2 = ntlm_wb_init(conn,pcVar4);\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n    if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);\n    pcVar11 = *(code **)puVar5;\n    pdVar10->proxyuserpwd = pcVar4;\n    (*pcVar11)(conn->response_header);\n    if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }\n  }\n  return CURLE_OUT_OF_MEMORY;\n}" { (declaration "curlntlm cVar1;" type_identifier identifier ;) (declaration "CURLcode CVar2;" type_identifier identifier ;) (declaration "undefined3 in_register_00000014;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "Curl_easy *pCVar7;" type_identifier (pointer_declarator "*pCVar7" * identifier) ;) (declaration "auth *paVar8;" type_identifier (pointer_declarator "*paVar8" * identifier) ;) (declaration "ntlmdata *pnVar9;" type_identifier (pointer_declarator "*pnVar9" * identifier) ;) (declaration "dynamically_allocated_data *pdVar10;" type_identifier (pointer_declarator "*pdVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (expression_statement "iVar3 = CONCAT31(in_register_00000014,proxy);" (assignment_expression "iVar3 = CONCAT31(in_register_00000014,proxy)" identifier = (call_expression "CONCAT31(in_register_00000014,proxy)" identifier (argument_list "(in_register_00000014,proxy)" ( identifier , identifier )))) ;) (expression_statement "pCVar7 = conn->data;" (assignment_expression "pCVar7 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (if_statement "if (iVar3 == 0) {\n    pcVar4 = conn->user;\n    paVar8 = &(pCVar7->state).authhost;\n    pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;\n    (pCVar7->state).authhost.done = false;\n    pnVar9 = &conn->ntlm;\n  }\n  else {\n    pcVar4 = (conn->http_proxy).user;\n    paVar8 = &(pCVar7->state).authproxy;\n    pdVar10 = &conn->allocptr;\n    (pCVar7->state).authproxy.done = false;\n    pnVar9 = &conn->proxyntlm;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = conn->user;\n    paVar8 = &(pCVar7->state).authhost;\n    pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;\n    (pCVar7->state).authhost.done = false;\n    pnVar9 = &conn->ntlm;\n  }" { (expression_statement "pcVar4 = conn->user;" (assignment_expression "pcVar4 = conn->user" identifier = (field_expression "conn->user" identifier -> field_identifier)) ;) (expression_statement "paVar8 = &(pCVar7->state).authhost;" (assignment_expression "paVar8 = &(pCVar7->state).authhost" identifier = (pointer_expression "&(pCVar7->state).authhost" & (field_expression "(pCVar7->state).authhost" (parenthesized_expression "(pCVar7->state)" ( (field_expression "pCVar7->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd;" (assignment_expression "pdVar10 = (dynamically_allocated_data *)&(conn->allocptr).userpwd" identifier = (cast_expression "(dynamically_allocated_data *)&(conn->allocptr).userpwd" ( (type_descriptor "dynamically_allocated_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(conn->allocptr).userpwd" & (field_expression "(conn->allocptr).userpwd" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "(pCVar7->state).authhost.done = false;" (assignment_expression "(pCVar7->state).authhost.done = false" (field_expression "(pCVar7->state).authhost.done" (field_expression "(pCVar7->state).authhost" (parenthesized_expression "(pCVar7->state)" ( (field_expression "pCVar7->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "pnVar9 = &conn->ntlm;" (assignment_expression "pnVar9 = &conn->ntlm" identifier = (pointer_expression "&conn->ntlm" & (field_expression "conn->ntlm" identifier -> field_identifier))) ;) }) (else_clause "else {\n    pcVar4 = (conn->http_proxy).user;\n    paVar8 = &(pCVar7->state).authproxy;\n    pdVar10 = &conn->allocptr;\n    (pCVar7->state).authproxy.done = false;\n    pnVar9 = &conn->proxyntlm;\n  }" else (compound_statement "{\n    pcVar4 = (conn->http_proxy).user;\n    paVar8 = &(pCVar7->state).authproxy;\n    pdVar10 = &conn->allocptr;\n    (pCVar7->state).authproxy.done = false;\n    pnVar9 = &conn->proxyntlm;\n  }" { (expression_statement "pcVar4 = (conn->http_proxy).user;" (assignment_expression "pcVar4 = (conn->http_proxy).user" identifier = (field_expression "(conn->http_proxy).user" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar8 = &(pCVar7->state).authproxy;" (assignment_expression "paVar8 = &(pCVar7->state).authproxy" identifier = (pointer_expression "&(pCVar7->state).authproxy" & (field_expression "(pCVar7->state).authproxy" (parenthesized_expression "(pCVar7->state)" ( (field_expression "pCVar7->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pdVar10 = &conn->allocptr;" (assignment_expression "pdVar10 = &conn->allocptr" identifier = (pointer_expression "&conn->allocptr" & (field_expression "conn->allocptr" identifier -> field_identifier))) ;) (expression_statement "(pCVar7->state).authproxy.done = false;" (assignment_expression "(pCVar7->state).authproxy.done = false" (field_expression "(pCVar7->state).authproxy.done" (field_expression "(pCVar7->state).authproxy" (parenthesized_expression "(pCVar7->state)" ( (field_expression "pCVar7->state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "pnVar9 = &conn->proxyntlm;" (assignment_expression "pnVar9 = &conn->proxyntlm" identifier = (pointer_expression "&conn->proxyntlm" & (field_expression "conn->proxyntlm" identifier -> field_identifier))) ;) }))) (if_statement "if (pcVar4 == (char *)0x0) {\n    cVar1 = pnVar9->state;\n    pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);\n  }\n  else {\n    cVar1 = pnVar9->state;\n  }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar1 = pnVar9->state;\n    pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);\n  }" { (expression_statement "cVar1 = pnVar9->state;" (assignment_expression "cVar1 = pnVar9->state" identifier = (field_expression "pnVar9->state" identifier -> field_identifier)) ;) (expression_statement "pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538);" (assignment_expression "pcVar4 = (char *)((int)PTR_UINT_000a6194 + 0x3538)" identifier = (cast_expression "(char *)((int)PTR_UINT_000a6194 + 0x3538)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)PTR_UINT_000a6194 + 0x3538)" ( (binary_expression "(int)PTR_UINT_000a6194 + 0x3538" (cast_expression "(int)PTR_UINT_000a6194" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n    cVar1 = pnVar9->state;\n  }" else (compound_statement "{\n    cVar1 = pnVar9->state;\n  }" { (expression_statement "cVar1 = pnVar9->state;" (assignment_expression "cVar1 = pnVar9->state" identifier = (field_expression "pnVar9->state" identifier -> field_identifier)) ;) }))) (if_statement "if (cVar1 == NTLMSTATE_TYPE2) {\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (pcVar4 != (char *)0x0) {\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }\n  }\n  else {\n    if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }\n    CVar2 = ntlm_wb_init(conn,pcVar4);\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n    if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);\n    pcVar11 = *(code **)puVar5;\n    pdVar10->proxyuserpwd = pcVar4;\n    (*pcVar11)(conn->response_header);\n    if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }\n  }" if (parenthesized_expression "(cVar1 == NTLMSTATE_TYPE2)" ( (binary_expression "cVar1 == NTLMSTATE_TYPE2" identifier == identifier) )) (compound_statement "{\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (pcVar4 != (char *)0x0) {\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }\n  }" { (expression_statement "pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header);" (assignment_expression "pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header)" identifier = (cast_expression "(char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)\n                               ((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header)" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined *)((int)PTR_UINT_000a6194 + 0x1c70),\n                                conn->challenge_header)" ( (cast_expression "(undefined *)((int)PTR_UINT_000a6194 + 0x1c70)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)PTR_UINT_000a6194 + 0x1c70)" ( (binary_expression "(int)PTR_UINT_000a6194 + 0x1c70" (cast_expression "(int)PTR_UINT_000a6194" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (field_expression "conn->challenge_header" identifier -> field_identifier) ))))) ;) (expression_statement "puVar5 = PTR_Curl_cfree_000a6144;" (assignment_expression "puVar5 = PTR_Curl_cfree_000a6144" identifier = identifier) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);\n      (**(code **)puVar5)(pcVar4);\n      if (CVar2 != CURLE_OK) {\n        return CVar2;\n      }\n      (**(code **)puVar5)(pdVar10->proxyuserpwd);\n      if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }\n      pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);\n      pdVar10->proxyuserpwd = pcVar4;\n      pnVar9->state = NTLMSTATE_TYPE3;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      Curl_ntlm_wb_cleanup(conn);\n      if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }\n    }" { (expression_statement "CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state);" (assignment_expression "CVar2 = ntlm_wb_response(conn,pcVar4,pnVar9->state)" identifier = (call_expression "ntlm_wb_response(conn,pcVar4,pnVar9->state)" identifier (argument_list "(conn,pcVar4,pnVar9->state)" ( identifier , identifier , (field_expression "pnVar9->state" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)puVar5)(pcVar4);" (call_expression "(**(code **)puVar5)(pcVar4)" (parenthesized_expression "(**(code **)puVar5)" ( (pointer_expression "**(code **)puVar5" * (pointer_expression "*(code **)puVar5" * (cast_expression "(code **)puVar5" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar4)" ( identifier ))) ;) (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 ;) })) (expression_statement "(**(code **)puVar5)(pdVar10->proxyuserpwd);" (call_expression "(**(code **)puVar5)(pdVar10->proxyuserpwd)" (parenthesized_expression "(**(code **)puVar5)" ( (pointer_expression "**(code **)puVar5" * (pointer_expression "*(code **)puVar5" * (cast_expression "(code **)puVar5" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pdVar10->proxyuserpwd)" ( (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) ))) ;) (if_statement "if (iVar3 == 0) {\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar5 = PTR_UINT_000a6194 + 0x3538;\n      }" { (expression_statement "puVar5 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar5 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }" else (compound_statement "{\n        puVar5 = PTR_UINT_000a6194 + -0x7784;\n      }" { (expression_statement "puVar5 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar5 = PTR_UINT_000a6194 + -0x7784" identifier = (binary_expression "PTR_UINT_000a6194 + -0x7784" identifier + number_literal)) ;) }))) (expression_statement "pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header);" (assignment_expression "pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header)" identifier = (cast_expression "(char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)\n                                 (PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header)" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar5,conn->response_header)" ( (binary_expression "PTR_UINT_000a6194 + 0x1c58" identifier + number_literal) , identifier , (field_expression "conn->response_header" identifier -> field_identifier) ))))) ;) (expression_statement "pdVar10->proxyuserpwd = pcVar4;" (assignment_expression "pdVar10->proxyuserpwd = pcVar4" (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) = identifier) ;) (expression_statement "pnVar9->state = NTLMSTATE_TYPE3;" (assignment_expression "pnVar9->state = NTLMSTATE_TYPE3" (field_expression "pnVar9->state" identifier -> field_identifier) = identifier) ;) (expression_statement "*(_Bool *)((int)paVar8 + 0xc) = true;" (assignment_expression "*(_Bool *)((int)paVar8 + 0xc) = true" (pointer_expression "*(_Bool *)((int)paVar8 + 0xc)" * (cast_expression "(_Bool *)((int)paVar8 + 0xc)" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar8 + 0xc)" ( (binary_expression "(int)paVar8 + 0xc" (cast_expression "(int)paVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = true) ;) (expression_statement "Curl_ntlm_wb_cleanup(conn);" (call_expression "Curl_ntlm_wb_cleanup(conn)" identifier (argument_list "(conn)" ( identifier ))) ;) (if_statement "if (pdVar10->proxyuserpwd != (char *)0x0) {\n        return CURLE_OK;\n      }" if (parenthesized_expression "(pdVar10->proxyuserpwd != (char *)0x0)" ( (binary_expression "pdVar10->proxyuserpwd != (char *)0x0" (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return CURLE_OK;\n      }" { (return_statement "return CURLE_OK;" return identifier ;) })) })) }) (else_clause "else {\n    if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }\n    CVar2 = ntlm_wb_init(conn,pcVar4);\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n    if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);\n    pcVar11 = *(code **)puVar5;\n    pdVar10->proxyuserpwd = pcVar4;\n    (*pcVar11)(conn->response_header);\n    if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }\n  }" else (compound_statement "{\n    if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }\n    CVar2 = ntlm_wb_init(conn,pcVar4);\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);\n    puVar5 = PTR_Curl_cfree_000a6144;\n    if (CVar2 != CURLE_OK) {\n      return CVar2;\n    }\n    (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n    if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }\n    pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);\n    pcVar11 = *(code **)puVar5;\n    pdVar10->proxyuserpwd = pcVar4;\n    (*pcVar11)(conn->response_header);\n    if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }\n  }" { (if_statement "if (cVar1 == NTLMSTATE_TYPE3) {\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }" if (parenthesized_expression "(cVar1 == NTLMSTATE_TYPE3)" ( (binary_expression "cVar1 == NTLMSTATE_TYPE3" identifier == identifier) )) (compound_statement "{\n      (**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);\n      pdVar10->proxyuserpwd = (char *)0x0;\n      *(_Bool *)((int)paVar8 + 0xc) = true;\n      return CURLE_OK;\n    }" { (expression_statement "(**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);" (call_expression "(**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd)" (parenthesized_expression "(**(code **)PTR_Curl_cfree_000a6144)" ( (pointer_expression "**(code **)PTR_Curl_cfree_000a6144" * (pointer_expression "*(code **)PTR_Curl_cfree_000a6144" * (cast_expression "(code **)PTR_Curl_cfree_000a6144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pdVar10->proxyuserpwd)" ( (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) ))) ;) (expression_statement "pdVar10->proxyuserpwd = (char *)0x0;" (assignment_expression "pdVar10->proxyuserpwd = (char *)0x0" (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(_Bool *)((int)paVar8 + 0xc) = true;" (assignment_expression "*(_Bool *)((int)paVar8 + 0xc) = true" (pointer_expression "*(_Bool *)((int)paVar8 + 0xc)" * (cast_expression "(_Bool *)((int)paVar8 + 0xc)" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar8 + 0xc)" ( (binary_expression "(int)paVar8 + 0xc" (cast_expression "(int)paVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = true) ;) (return_statement "return CURLE_OK;" return identifier ;) })) (expression_statement "CVar2 = ntlm_wb_init(conn,pcVar4);" (assignment_expression "CVar2 = ntlm_wb_init(conn,pcVar4)" identifier = (call_expression "ntlm_wb_init(conn,pcVar4)" identifier (argument_list "(conn,pcVar4)" ( identifier , identifier )))) ;) (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 ;) })) (expression_statement "CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state);" (assignment_expression "CVar2 = ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state)" identifier = (call_expression "ntlm_wb_response(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state)" identifier (argument_list "(conn,PTR_UINT_000a6194 + 0x1c54,pnVar9->state)" ( identifier , (binary_expression "PTR_UINT_000a6194 + 0x1c54" identifier + number_literal) , (field_expression "pnVar9->state" identifier -> field_identifier) )))) ;) (expression_statement "puVar5 = PTR_Curl_cfree_000a6144;" (assignment_expression "puVar5 = PTR_Curl_cfree_000a6144" identifier = identifier) ;) (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 ;) })) (expression_statement "(**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);" (call_expression "(**(code **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd)" (parenthesized_expression "(**(code **)PTR_Curl_cfree_000a6144)" ( (pointer_expression "**(code **)PTR_Curl_cfree_000a6144" * (pointer_expression "*(code **)PTR_Curl_cfree_000a6144" * (cast_expression "(code **)PTR_Curl_cfree_000a6144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pdVar10->proxyuserpwd)" ( (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) ))) ;) (if_statement "if (iVar3 == 0) {\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar6 = PTR_UINT_000a6194 + 0x3538;\n    }" { (expression_statement "puVar6 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar6 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }" else (compound_statement "{\n      puVar6 = PTR_UINT_000a6194 + -0x7784;\n    }" { (expression_statement "puVar6 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar6 = PTR_UINT_000a6194 + -0x7784" identifier = (binary_expression "PTR_UINT_000a6194 + -0x7784" identifier + number_literal)) ;) }))) (expression_statement "pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header);" (assignment_expression "pcVar4 = (char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header)" identifier = (cast_expression "(char *)(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)\n                               (PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header)" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar6,conn->response_header)" ( (binary_expression "PTR_UINT_000a6194 + 0x1c58" identifier + number_literal) , identifier , (field_expression "conn->response_header" identifier -> field_identifier) ))))) ;) (expression_statement "pcVar11 = *(code **)puVar5;" (assignment_expression "pcVar11 = *(code **)puVar5" identifier = (pointer_expression "*(code **)puVar5" * (cast_expression "(code **)puVar5" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pdVar10->proxyuserpwd = pcVar4;" (assignment_expression "pdVar10->proxyuserpwd = pcVar4" (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar11)(conn->response_header);" (call_expression "(*pcVar11)(conn->response_header)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(conn->response_header)" ( (field_expression "conn->response_header" identifier -> field_identifier) ))) ;) (if_statement "if (pdVar10->proxyuserpwd != (char *)0x0) {\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }" if (parenthesized_expression "(pdVar10->proxyuserpwd != (char *)0x0)" ( (binary_expression "pdVar10->proxyuserpwd != (char *)0x0" (field_expression "pdVar10->proxyuserpwd" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      conn->response_header = (char *)0x0;\n      return CURLE_OK;\n    }" { (expression_statement "conn->response_header = (char *)0x0;" (assignment_expression "conn->response_header = (char *)0x0" (field_expression "conn->response_header" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return CURLE_OK;" return identifier ;) })) }))) (return_statement "return CURLE_OUT_OF_MEMORY;" return identifier ;) })))
(translation_unit "int FUN_00063de0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}\n\n" (function_definition "int FUN_00063de0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}" primitive_type (function_declarator "FUN_00063de0(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }" { (expression_statement "puVar2 = (undefined *)param_1[0x5c];" (assignment_expression "puVar2 = (undefined *)param_1[0x5c]" identifier = (cast_expression "(undefined *)param_1[0x5c]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x5c]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = iVar4 + 0xd78;" (assignment_expression "iVar5 = iVar4 + 0xd78" identifier = (binary_expression "iVar4 + 0xd78" identifier + number_literal)) ;) (expression_statement "piVar7 = param_1 + 0xac;" (assignment_expression "piVar7 = param_1 + 0xac" identifier = (binary_expression "param_1 + 0xac" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar4 + 0xd84) = 0;" (assignment_expression "*(undefined1 *)(iVar4 + 0xd84) = 0" (pointer_expression "*(undefined1 *)(iVar4 + 0xd84)" * (cast_expression "(undefined1 *)(iVar4 + 0xd84)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd84)" ( (binary_expression "iVar4 + 0xd84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6 = param_1 + 0xd2;" (assignment_expression "piVar6 = param_1 + 0xd2" identifier = (binary_expression "param_1 + 0xd2" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" else (compound_statement "{\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" { (expression_statement "puVar2 = (undefined *)param_1[0x3d];" (assignment_expression "puVar2 = (undefined *)param_1[0x3d]" identifier = (cast_expression "(undefined *)param_1[0x3d]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3d]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = iVar4 + 0xd88;" (assignment_expression "iVar5 = iVar4 + 0xd88" identifier = (binary_expression "iVar4 + 0xd88" identifier + number_literal)) ;) (expression_statement "piVar7 = param_1 + 0xa9;" (assignment_expression "piVar7 = param_1 + 0xa9" identifier = (binary_expression "param_1 + 0xa9" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar4 + 0xd94) = 0;" (assignment_expression "*(undefined1 *)(iVar4 + 0xd94) = 0" (pointer_expression "*(undefined1 *)(iVar4 + 0xd94)" * (cast_expression "(undefined1 *)(iVar4 + 0xd94)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd94)" ( (binary_expression "iVar4 + 0xd94" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6 = param_1 + 0xd8;" (assignment_expression "piVar6 = param_1 + 0xd8" identifier = (binary_expression "param_1 + 0xd8" identifier + number_literal)) ;) }))) (if_statement "if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }" if (parenthesized_expression "(puVar2 == (undefined *)0x0)" ( (binary_expression "puVar2 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "puVar2 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n    iVar4 = *piVar6;\n  }" else (compound_statement "{\n    iVar4 = *piVar6;\n  }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) }))) (if_statement "if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" identifier = (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" ( (binary_expression "PTR_UINT_000a6194 + 0x1c70" identifier + number_literal) , (subscript_expression "param_1[0xe0]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar2 = PTR_PTR_free_000a6144;" (assignment_expression "puVar2 = PTR_PTR_free_000a6144" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }" { (expression_statement "iVar1 = FUN_00063984(param_1,iVar4,*piVar6);" (assignment_expression "iVar1 = FUN_00063984(param_1,iVar4,*piVar6)" identifier = (call_expression "FUN_00063984(param_1,iVar4,*piVar6)" identifier (argument_list "(param_1,iVar4,*piVar6)" ( identifier , identifier , (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "(**(code **)puVar2)(iVar4);" (call_expression "(**(code **)puVar2)(iVar4)" (parenthesized_expression "(**(code **)puVar2)" ( (pointer_expression "**(code **)puVar2" * (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar4)" ( identifier ))) ;) (if_statement "if (iVar1 != 0) {\n        return iVar1;\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        return iVar1;\n      }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "(**(code **)puVar2)(*piVar7);" (call_expression "(**(code **)puVar2)(*piVar7)" (parenthesized_expression "(**(code **)puVar2)" ( (pointer_expression "**(code **)puVar2" * (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) ))) ;) (if_statement "if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }" { (expression_statement "puVar2 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" else (compound_statement "{\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" { (expression_statement "puVar2 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + -0x7784" identifier = (binary_expression "PTR_UINT_000a6194 + -0x7784" identifier + number_literal)) ;) }))) (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" identifier = (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" ( (binary_expression "PTR_UINT_000a6194 + 0x1c58" identifier + number_literal) , identifier , (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) )))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "*piVar6 = 3;" (assignment_expression "*piVar6 = 3" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar5 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar5 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar5 + 0xc)" * (cast_expression "(undefined1 *)(iVar5 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00063c68(param_1);" (call_expression "FUN_00063c68(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (*piVar7 != 0) {\n        return 0;\n      }" if (parenthesized_expression "(*piVar7 != 0)" ( (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" * identifier) != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" else (compound_statement "{\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" { (if_statement "if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }" if (parenthesized_expression "(iVar4 == 3)" ( (binary_expression "iVar4 == 3" identifier == number_literal) )) (compound_statement "{\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }" { (expression_statement "(**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);" (call_expression "(**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2)" (parenthesized_expression "(**(code **)PTR_PTR_free_000a6144)" ( (pointer_expression "**(code **)PTR_PTR_free_000a6144" * (pointer_expression "*(code **)PTR_PTR_free_000a6144" * (cast_expression "(code **)PTR_PTR_free_000a6144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*piVar7,puVar2)" ( (pointer_expression "*piVar7" * identifier) , identifier ))) ;) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar5 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar5 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar5 + 0xc)" * (cast_expression "(undefined1 *)(iVar5 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = FUN_000633e0(param_1);" (assignment_expression "iVar4 = FUN_000633e0(param_1)" identifier = (call_expression "FUN_000633e0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      return iVar4;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return iVar4;\n    }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);" (assignment_expression "iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" identifier = (call_expression "FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" identifier (argument_list "(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" ( identifier , (binary_expression "PTR_UINT_000a6194 + 0x1c54" identifier + number_literal) , (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "puVar2 = PTR_PTR_free_000a6144;" (assignment_expression "puVar2 = PTR_PTR_free_000a6144" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n      return iVar4;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return iVar4;\n    }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "(**(code **)PTR_PTR_free_000a6144)(*piVar7);" (call_expression "(**(code **)PTR_PTR_free_000a6144)(*piVar7)" (parenthesized_expression "(**(code **)PTR_PTR_free_000a6144)" ( (pointer_expression "**(code **)PTR_PTR_free_000a6144" * (pointer_expression "*(code **)PTR_PTR_free_000a6144" * (cast_expression "(code **)PTR_PTR_free_000a6144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) ))) ;) (if_statement "if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }" { (expression_statement "puVar3 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar3 = PTR_UINT_000a6194 + 0x3538" identifier = (binary_expression "PTR_UINT_000a6194 + 0x3538" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" else (compound_statement "{\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" { (expression_statement "puVar3 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar3 = PTR_UINT_000a6194 + -0x7784" identifier = (binary_expression "PTR_UINT_000a6194 + -0x7784" identifier + number_literal)) ;) }))) (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" identifier = (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" ( (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" * (cast_expression "(code *)PTR_curl_maprintf_000a6d60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" ( (binary_expression "PTR_UINT_000a6194 + 0x1c58" identifier + number_literal) , identifier , (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar8 = *(code **)puVar2;" (assignment_expression "pcVar8 = *(code **)puVar2" identifier = (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "(*pcVar8)(param_1[0xe1]);" (call_expression "(*pcVar8)(param_1[0xe1])" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(param_1[0xe1])" ( (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) ))) ;) (if_statement "if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }" if (parenthesized_expression "(*piVar7 != 0)" ( (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" * identifier) != number_literal) )) (compound_statement "{\n      param_1[0xe1] = 0;\n      return 0;\n    }" { (expression_statement "param_1[0xe1] = 0;" (assignment_expression "param_1[0xe1] = 0" (subscript_expression "param_1[0xe1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (return_statement "return 0x1b;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return LIT ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return LIT ;) })) }))) (return_statement return LIT ;) })))
(function_definition "int FUN_00063de0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}" (primitive_type "int") (function_declarator "FUN_00063de0(int *param_1,int param_2)" (identifier "FUN_00063de0") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  code *pcVar8;\n  \n  iVar4 = *param_1;\n  if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }\n  if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }\n  if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }\n  return 0x1b;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" (identifier "iVar4") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (param_2 == 0) {\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }\n  else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar2 = (undefined *)param_1[0x5c];\n    iVar5 = iVar4 + 0xd78;\n    piVar7 = param_1 + 0xac;\n    *(undefined1 *)(iVar4 + 0xd84) = 0;\n    piVar6 = param_1 + 0xd2;\n  }" ({ "{") (expression_statement "puVar2 = (undefined *)param_1[0x5c];" (assignment_expression "puVar2 = (undefined *)param_1[0x5c]" (identifier "puVar2") (= "=") (cast_expression "(undefined *)param_1[0x5c]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x5c]" (identifier "param_1") ([ "[") (number_literal "0x5c") (] "]")))) (; ";")) (expression_statement "iVar5 = iVar4 + 0xd78;" (assignment_expression "iVar5 = iVar4 + 0xd78" (identifier "iVar5") (= "=") (binary_expression "iVar4 + 0xd78" (identifier "iVar4") (+ "+") (number_literal "0xd78"))) (; ";")) (expression_statement "piVar7 = param_1 + 0xac;" (assignment_expression "piVar7 = param_1 + 0xac" (identifier "piVar7") (= "=") (binary_expression "param_1 + 0xac" (identifier "param_1") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "*(undefined1 *)(iVar4 + 0xd84) = 0;" (assignment_expression "*(undefined1 *)(iVar4 + 0xd84) = 0" (pointer_expression "*(undefined1 *)(iVar4 + 0xd84)" (* "*") (cast_expression "(undefined1 *)(iVar4 + 0xd84)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xd84)" (( "(") (binary_expression "iVar4 + 0xd84" (identifier "iVar4") (+ "+") (number_literal "0xd84")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = param_1 + 0xd2;" (assignment_expression "piVar6 = param_1 + 0xd2" (identifier "piVar6") (= "=") (binary_expression "param_1 + 0xd2" (identifier "param_1") (+ "+") (number_literal "0xd2"))) (; ";")) (} "}")) (else_clause "else {\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" (else "else") (compound_statement "{\n    puVar2 = (undefined *)param_1[0x3d];\n    iVar5 = iVar4 + 0xd88;\n    piVar7 = param_1 + 0xa9;\n    *(undefined1 *)(iVar4 + 0xd94) = 0;\n    piVar6 = param_1 + 0xd8;\n  }" ({ "{") (expression_statement "puVar2 = (undefined *)param_1[0x3d];" (assignment_expression "puVar2 = (undefined *)param_1[0x3d]" (identifier "puVar2") (= "=") (cast_expression "(undefined *)param_1[0x3d]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]")))) (; ";")) (expression_statement "iVar5 = iVar4 + 0xd88;" (assignment_expression "iVar5 = iVar4 + 0xd88" (identifier "iVar5") (= "=") (binary_expression "iVar4 + 0xd88" (identifier "iVar4") (+ "+") (number_literal "0xd88"))) (; ";")) (expression_statement "piVar7 = param_1 + 0xa9;" (assignment_expression "piVar7 = param_1 + 0xa9" (identifier "piVar7") (= "=") (binary_expression "param_1 + 0xa9" (identifier "param_1") (+ "+") (number_literal "0xa9"))) (; ";")) (expression_statement "*(undefined1 *)(iVar4 + 0xd94) = 0;" (assignment_expression "*(undefined1 *)(iVar4 + 0xd94) = 0" (pointer_expression "*(undefined1 *)(iVar4 + 0xd94)" (* "*") (cast_expression "(undefined1 *)(iVar4 + 0xd94)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xd94)" (( "(") (binary_expression "iVar4 + 0xd94" (identifier "iVar4") (+ "+") (number_literal "0xd94")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = param_1 + 0xd8;" (assignment_expression "piVar6 = param_1 + 0xd8" (identifier "piVar6") (= "=") (binary_expression "param_1 + 0xd8" (identifier "param_1") (+ "+") (number_literal "0xd8"))) (; ";")) (} "}")))) (if_statement "if (puVar2 == (undefined *)0x0) {\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }\n  else {\n    iVar4 = *piVar6;\n  }" (if "if") (parenthesized_expression "(puVar2 == (undefined *)0x0)" (( "(") (binary_expression "puVar2 == (undefined *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar4 = *piVar6;\n    puVar2 = PTR_UINT_000a6194 + 0x3538;\n  }" ({ "{") (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" (identifier "iVar4") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "puVar2 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + 0x3538" (identifier "puVar2") (= "=") (binary_expression "PTR_UINT_000a6194 + 0x3538" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x3538"))) (; ";")) (} "}")) (else_clause "else {\n    iVar4 = *piVar6;\n  }" (else "else") (compound_statement "{\n    iVar4 = *piVar6;\n  }" ({ "{") (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" (identifier "iVar4") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}")))) (if_statement "if (iVar4 == 2) {\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }\n  else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar4 == 2)" (( "(") (binary_expression "iVar4 == 2" (identifier "iVar4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" (( "(") (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" (* "*") (cast_expression "(code *)PTR_curl_maprintf_000a6d60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_curl_maprintf_000a6d60"))) () ")")) (argument_list "(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0])" (( "(") (binary_expression "PTR_UINT_000a6194 + 0x1c70" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x1c70")) (, ",") (subscript_expression "param_1[0xe0]" (identifier "param_1") ([ "[") (number_literal "0xe0") (] "]")) () ")")))) (; ";")) (expression_statement "puVar2 = PTR_PTR_free_000a6144;" (assignment_expression "puVar2 = PTR_PTR_free_000a6144" (identifier "puVar2") (= "=") (identifier "PTR_PTR_free_000a6144")) (; ";")) (if_statement "if (iVar4 != 0) {\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);\n      (**(code **)puVar2)(iVar4);\n      if (iVar1 != 0) {\n        return iVar1;\n      }\n      (**(code **)puVar2)(*piVar7);\n      if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }\n      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;\n      *piVar7 = iVar4;\n      *piVar6 = 3;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      FUN_00063c68(param_1);\n      if (*piVar7 != 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "iVar1 = FUN_00063984(param_1,iVar4,*piVar6);" (assignment_expression "iVar1 = FUN_00063984(param_1,iVar4,*piVar6)" (identifier "iVar1") (= "=") (call_expression "FUN_00063984(param_1,iVar4,*piVar6)" (identifier "FUN_00063984") (argument_list "(param_1,iVar4,*piVar6)" (( "(") (identifier "param_1") (, ",") (identifier "iVar4") (, ",") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) () ")")))) (; ";")) (expression_statement "(**(code **)puVar2)(iVar4);" (call_expression "(**(code **)puVar2)(iVar4)" (parenthesized_expression "(**(code **)puVar2)" (( "(") (pointer_expression "**(code **)puVar2" (* "*") (pointer_expression "*(code **)puVar2" (* "*") (cast_expression "(code **)puVar2" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (if_statement "if (iVar1 != 0) {\n        return iVar1;\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return iVar1;\n      }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "(**(code **)puVar2)(*piVar7);" (call_expression "(**(code **)puVar2)(*piVar7)" (parenthesized_expression "(**(code **)puVar2)" (( "(") (pointer_expression "**(code **)puVar2" (* "*") (pointer_expression "*(code **)puVar2" (* "*") (cast_expression "(code **)puVar2" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) () ")")) (argument_list "(*piVar7)" (( "(") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) () ")"))) (; ";")) (if_statement "if (param_2 == 0) {\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }\n      else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar2 = PTR_UINT_000a6194 + 0x3538;\n      }" ({ "{") (expression_statement "puVar2 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + 0x3538" (identifier "puVar2") (= "=") (binary_expression "PTR_UINT_000a6194 + 0x3538" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x3538"))) (; ";")) (} "}")) (else_clause "else {\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" (else "else") (compound_statement "{\n        puVar2 = PTR_UINT_000a6194 + -0x7784;\n      }" ({ "{") (expression_statement "puVar2 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar2 = PTR_UINT_000a6194 + -0x7784" (identifier "puVar2") (= "=") (binary_expression "PTR_UINT_000a6194 + -0x7784" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "-0x7784"))) (; ";")) (} "}")))) (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])\n      ;" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" (( "(") (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" (* "*") (cast_expression "(code *)PTR_curl_maprintf_000a6d60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_curl_maprintf_000a6d60"))) () ")")) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])" (( "(") (binary_expression "PTR_UINT_000a6194 + 0x1c58" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x1c58")) (, ",") (identifier "puVar2") (, ",") (subscript_expression "param_1[0xe1]" (identifier "param_1") ([ "[") (number_literal "0xe1") (] "]")) () ")")))) (; ";")) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*piVar6 = 3;" (assignment_expression "*piVar6 = 3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined1 *)(iVar5 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar5 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar5 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar5 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00063c68(param_1);" (call_expression "FUN_00063c68(param_1)" (identifier "FUN_00063c68") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*piVar7 != 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(*piVar7 != 0)" (( "(") (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" (else "else") (compound_statement "{\n    if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }\n    iVar4 = FUN_000633e0(param_1);\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);\n    puVar2 = PTR_PTR_free_000a6144;\n    if (iVar4 != 0) {\n      return iVar4;\n    }\n    (**(code **)PTR_PTR_free_000a6144)(*piVar7);\n    if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }\n    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);\n    pcVar8 = *(code **)puVar2;\n    *piVar7 = iVar4;\n    (*pcVar8)(param_1[0xe1]);\n    if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }\n  }" ({ "{") (if_statement "if (iVar4 == 3) {\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar4 == 3)" (( "(") (binary_expression "iVar4 == 3" (identifier "iVar4") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);\n      *piVar7 = 0;\n      *(undefined1 *)(iVar5 + 0xc) = 1;\n      return 0;\n    }" ({ "{") (expression_statement "(**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);" (call_expression "(**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2)" (parenthesized_expression "(**(code **)PTR_PTR_free_000a6144)" (( "(") (pointer_expression "**(code **)PTR_PTR_free_000a6144" (* "*") (pointer_expression "*(code **)PTR_PTR_free_000a6144" (* "*") (cast_expression "(code **)PTR_PTR_free_000a6144" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_PTR_free_000a6144")))) () ")")) (argument_list "(*piVar7,puVar2)" (( "(") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (, ",") (identifier "puVar2") () ")"))) (; ";")) (expression_statement "*piVar7 = 0;" (assignment_expression "*piVar7 = 0" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar5 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar5 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar5 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar5 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar4 = FUN_000633e0(param_1);" (assignment_expression "iVar4 = FUN_000633e0(param_1)" (identifier "iVar4") (= "=") (call_expression "FUN_000633e0(param_1)" (identifier "FUN_000633e0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      return iVar4;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return iVar4;\n    }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);" (assignment_expression "iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" (identifier "iVar4") (= "=") (call_expression "FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" (identifier "FUN_00063984") (argument_list "(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_000a6194 + 0x1c54" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x1c54")) (, ",") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) () ")")))) (; ";")) (expression_statement "puVar2 = PTR_PTR_free_000a6144;" (assignment_expression "puVar2 = PTR_PTR_free_000a6144" (identifier "puVar2") (= "=") (identifier "PTR_PTR_free_000a6144")) (; ";")) (if_statement "if (iVar4 != 0) {\n      return iVar4;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return iVar4;\n    }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "(**(code **)PTR_PTR_free_000a6144)(*piVar7);" (call_expression "(**(code **)PTR_PTR_free_000a6144)(*piVar7)" (parenthesized_expression "(**(code **)PTR_PTR_free_000a6144)" (( "(") (pointer_expression "**(code **)PTR_PTR_free_000a6144" (* "*") (pointer_expression "*(code **)PTR_PTR_free_000a6144" (* "*") (cast_expression "(code **)PTR_PTR_free_000a6144" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_PTR_free_000a6144")))) () ")")) (argument_list "(*piVar7)" (( "(") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) () ")"))) (; ";")) (if_statement "if (param_2 == 0) {\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }\n    else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar3 = PTR_UINT_000a6194 + 0x3538;\n    }" ({ "{") (expression_statement "puVar3 = PTR_UINT_000a6194 + 0x3538;" (assignment_expression "puVar3 = PTR_UINT_000a6194 + 0x3538" (identifier "puVar3") (= "=") (binary_expression "PTR_UINT_000a6194 + 0x3538" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x3538"))) (; ";")) (} "}")) (else_clause "else {\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" (else "else") (compound_statement "{\n      puVar3 = PTR_UINT_000a6194 + -0x7784;\n    }" ({ "{") (expression_statement "puVar3 = PTR_UINT_000a6194 + -0x7784;" (assignment_expression "puVar3 = PTR_UINT_000a6194 + -0x7784" (identifier "puVar3") (= "=") (binary_expression "PTR_UINT_000a6194 + -0x7784" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "-0x7784"))) (; ";")) (} "}")))) (expression_statement "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);" (assignment_expression "iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" (parenthesized_expression "(*(code *)PTR_curl_maprintf_000a6d60)" (( "(") (pointer_expression "*(code *)PTR_curl_maprintf_000a6d60" (* "*") (cast_expression "(code *)PTR_curl_maprintf_000a6d60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_curl_maprintf_000a6d60"))) () ")")) (argument_list "(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1])" (( "(") (binary_expression "PTR_UINT_000a6194 + 0x1c58" (identifier "PTR_UINT_000a6194") (+ "+") (number_literal "0x1c58")) (, ",") (identifier "puVar3") (, ",") (subscript_expression "param_1[0xe1]" (identifier "param_1") ([ "[") (number_literal "0xe1") (] "]")) () ")")))) (; ";")) (expression_statement "pcVar8 = *(code **)puVar2;" (assignment_expression "pcVar8 = *(code **)puVar2" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)puVar2" (* "*") (cast_expression "(code **)puVar2" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "(*pcVar8)(param_1[0xe1]);" (call_expression "(*pcVar8)(param_1[0xe1])" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(param_1[0xe1])" (( "(") (subscript_expression "param_1[0xe1]" (identifier "param_1") ([ "[") (number_literal "0xe1") (] "]")) () ")"))) (; ";")) (if_statement "if (*piVar7 != 0) {\n      param_1[0xe1] = 0;\n      return 0;\n    }" (if "if") (parenthesized_expression "(*piVar7 != 0)" (( "(") (binary_expression "*piVar7 != 0" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[0xe1] = 0;\n      return 0;\n    }" ({ "{") (expression_statement "param_1[0xe1] = 0;" (assignment_expression "param_1[0xe1] = 0" (subscript_expression "param_1[0xe1]" (identifier "param_1") ([ "[") (number_literal "0xe1") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (return_statement "return 0x1b;" (return "return") (number_literal "0x1b") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *conn,type_3 proxy)

{
  type_4 var_4;
  type_1 var_7;
  type_5 in_register_00000014;
  int var_2;
  char *var_3;
  type_6 *puVar5;
  type_6 *puVar6;
  type_7 *pCVar7;
  type_8 *paVar8;
  type_9 *pnVar9;
  type_10 *pdVar10;
  type_11 *pcVar11;
  
  var_2 = var_1(in_register_00000014,proxy);
  pCVar7 = conn->data;
  if (var_2 == 0) {
    var_3 = conn->user;
    paVar8 = &(pCVar7->state).authhost;
    pdVar10 = (type_10 *)&(conn->allocptr).userpwd;
    (pCVar7->state).authhost.done = false;
    pnVar9 = &conn->ntlm;
  }
  else {
    var_3 = (conn->http_proxy).user;
    paVar8 = &(pCVar7->state).authproxy;
    pdVar10 = &conn->allocptr;
    (pCVar7->state).authproxy.done = false;
    pnVar9 = &conn->proxyntlm;
  }
  if (var_3 == (char *)0x0) {
    var_4 = pnVar9->state;
    var_3 = (char *)((int)var_9 + 0x3538);
  }
  else {
    var_4 = pnVar9->state;
  }
  if (var_4 == var_5) {
    var_3 = (char *)(*(type_11 *)PTR_curl_maprintf_000a6d60)
                               ((type_6 *)((int)var_9 + 0x1c70),
                                conn->challenge_header);
    puVar5 = PTR_Curl_cfree_000a6144;
    if (var_3 != (char *)0x0) {
      var_7 = var_6(conn,var_3,pnVar9->state);
      (**(type_11 **)puVar5)(var_3);
      if (var_7 != var_8) {
        return var_7;
      }
      (**(type_11 **)puVar5)(pdVar10->proxyuserpwd);
      if (var_2 == 0) {
        puVar5 = var_9 + 0x3538;
      }
      else {
        puVar5 = var_9 + -0x7784;
      }
      var_3 = (char *)(*(type_11 *)PTR_curl_maprintf_000a6d60)
                                 (var_9 + 0x1c58,puVar5,conn->response_header);
      pdVar10->proxyuserpwd = var_3;
      pnVar9->state = var_11;
      *(type_3 *)((int)paVar8 + 0xc) = true;
      var_10(conn);
      if (pdVar10->proxyuserpwd != (char *)0x0) {
        return var_8;
      }
    }
  }
  else {
    if (var_4 == var_11) {
      (**(type_11 **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);
      pdVar10->proxyuserpwd = (char *)0x0;
      *(type_3 *)((int)paVar8 + 0xc) = true;
      return var_8;
    }
    var_7 = var_12(conn,var_3);
    if (var_7 != var_8) {
      return var_7;
    }
    var_7 = var_6(conn,var_9 + 0x1c54,pnVar9->state);
    puVar5 = PTR_Curl_cfree_000a6144;
    if (var_7 != var_8) {
      return var_7;
    }
    (**(type_11 **)PTR_Curl_cfree_000a6144)(pdVar10->proxyuserpwd);
    if (var_2 == 0) {
      puVar6 = var_9 + 0x3538;
    }
    else {
      puVar6 = var_9 + -0x7784;
    }
    var_3 = (char *)(*(type_11 *)PTR_curl_maprintf_000a6d60)
                               (var_9 + 0x1c58,puVar6,conn->response_header);
    pcVar11 = *(type_11 **)puVar5;
    pdVar10->proxyuserpwd = var_3;
    (*pcVar11)(conn->response_header);
    if (pdVar10->proxyuserpwd != (char *)0x0) {
      conn->response_header = (char *)0x0;
      return var_8;
    }
  }
  return CURLE_OUT_OF_MEMORY;
}


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

/* WARNING: Type propagation algorithm not settling */

int MASKED(int *param_1,int param_2)

{
  int iVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  int *piVar7;
  code *pcVar8;
  
  iVar4 = *param_1;
  if (param_2 == 0) {
    puVar2 = (undefined *)param_1[0x5c];
    iVar5 = iVar4 + 0xd78;
    piVar7 = param_1 + 0xac;
    *(undefined1 *)(iVar4 + 0xd84) = 0;
    piVar6 = param_1 + 0xd2;
  }
  else {
    puVar2 = (undefined *)param_1[0x3d];
    iVar5 = iVar4 + 0xd88;
    piVar7 = param_1 + 0xa9;
    *(undefined1 *)(iVar4 + 0xd94) = 0;
    piVar6 = param_1 + 0xd8;
  }
  if (puVar2 == (undefined *)0x0) {
    iVar4 = *piVar6;
    puVar2 = PTR_UINT_000a6194 + 0x3538;
  }
  else {
    iVar4 = *piVar6;
  }
  if (iVar4 == 2) {
    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c70,param_1[0xe0]);
    puVar2 = PTR_PTR_free_000a6144;
    if (iVar4 != 0) {
      iVar1 = FUN_00063984(param_1,iVar4,*piVar6);
      (**(code **)puVar2)(iVar4);
      if (iVar1 != 0) {
        return iVar1;
      }
      (**(code **)puVar2)(*piVar7);
      if (param_2 == 0) {
        puVar2 = PTR_UINT_000a6194 + 0x3538;
      }
      else {
        puVar2 = PTR_UINT_000a6194 + -0x7784;
      }
      iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar2,param_1[0xe1])
      ;
      *piVar7 = iVar4;
      *piVar6 = 3;
      *(undefined1 *)(iVar5 + 0xc) = 1;
      FUN_00063c68(param_1);
      if (*piVar7 != 0) {
        return 0;
      }
    }
  }
  else {
    if (iVar4 == 3) {
      (**(code **)PTR_PTR_free_000a6144)(*piVar7,puVar2);
      *piVar7 = 0;
      *(undefined1 *)(iVar5 + 0xc) = 1;
      return 0;
    }
    iVar4 = FUN_000633e0(param_1);
    if (iVar4 != 0) {
      return iVar4;
    }
    iVar4 = FUN_00063984(param_1,PTR_UINT_000a6194 + 0x1c54,*piVar6);
    puVar2 = PTR_PTR_free_000a6144;
    if (iVar4 != 0) {
      return iVar4;
    }
    (**(code **)PTR_PTR_free_000a6144)(*piVar7);
    if (param_2 == 0) {
      puVar3 = PTR_UINT_000a6194 + 0x3538;
    }
    else {
      puVar3 = PTR_UINT_000a6194 + -0x7784;
    }
    iVar4 = (*(code *)PTR_curl_maprintf_000a6d60)(PTR_UINT_000a6194 + 0x1c58,puVar3,param_1[0xe1]);
    pcVar8 = *(code **)puVar2;
    *piVar7 = iVar4;
    (*pcVar8)(param_1[0xe1]);
    if (*piVar7 != 0) {
      param_1[0xe1] = 0;
      return 0;
    }
  }
  return 0x1b;
}

