
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

CURLcode rtsp_do(connectdata *conn,_Bool *done)

{
  long *plVar1;
  Curl_easy *data;
  Curl_RtspReq CVar2;
  void *pvVar3;
  char cVar4;
  char *pcVar5;
  char *pcVar6;
  int iVar7;
  undefined4 extraout_ECX;
  char *pcVar8;
  CURLcode CVar9;
  int in_GS_OFFSET;
  char *local_68;
  char *local_64;
  uint local_60;
  char *local_58;
  char *local_54;
  char *local_50;
  char *local_4c;
  char *local_48;
  char *local_3c;
  char *local_34;
  curl_off_t *local_30;
  Curl_send_buffer *req_buffer;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x58ec9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  data = conn->data;
  CVar2 = (data->set).rtspreq;
  pvVar3 = (data->req).protop;
  *done = true;
  *(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq;
  *(undefined4 *)((int)pvVar3 + 0x1f8) = 0;
  (data->set).opt_no_body = true;
  switch(CVar2) {
  default:
    pcVar5 = "Got invalid RTSP request";
    goto LAB_00059451;
  case RTSPREQ_OPTIONS:
    local_68 = "OPTIONS";
    break;
  case RTSPREQ_DESCRIBE:
    (data->set).opt_no_body = false;
    local_68 = "DESCRIBE";
    break;
  case RTSPREQ_ANNOUNCE:
    local_4c = (data->set).str[0x32];
    if (local_4c == (char *)0x0) {
      local_68 = "ANNOUNCE";
      goto LAB_00058faa;
    }
    local_64 = (data->set).str[0x33];
    if (local_64 == (char *)0x0) {
      local_58 = Curl_checkheaders(conn,"Transport");
      local_64 = "*";
      local_68 = "ANNOUNCE";
      goto LAB_00059530;
    }
    local_58 = Curl_checkheaders(conn,"Transport");
    local_68 = "ANNOUNCE";
    local_54 = (char *)0x0;
    local_48 = (char *)0x0;
    goto LAB_0005904b;
  case RTSPREQ_SETUP:
    local_68 = "SETUP";
    break;
  case RTSPREQ_PLAY:
    local_68 = "PLAY";
    break;
  case RTSPREQ_PAUSE:
    local_68 = "PAUSE";
    break;
  case RTSPREQ_TEARDOWN:
    local_68 = "TEARDOWN";
    break;
  case RTSPREQ_GET_PARAMETER:
    (data->set).opt_no_body = false;
    local_68 = "GET_PARAMETER";
    goto LAB_000593f2;
  case RTSPREQ_SET_PARAMETER:
    local_68 = "SET_PARAMETER";
    goto LAB_000593f2;
  case RTSPREQ_RECORD:
    local_68 = "RECORD";
LAB_000593f2:
    local_4c = (data->set).str[0x32];
    if (local_4c != (char *)0x0) goto LAB_00058faa;
    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";
    goto LAB_00059451;
  case RTSPREQ_RECEIVE:
    (data->set).opt_no_body = false;
    CVar9 = CURLE_OK;
    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);
    goto LAB_00058f70;
  case RTSPREQ_LAST:
    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";
    goto LAB_00059451;
  }
  local_4c = (data->set).str[0x32];
LAB_00058faa:
  pcVar5 = (data->set).str[0x33];
  local_64 = "*";
  if (pcVar5 != (char *)0x0) {
    local_64 = pcVar5;
  }
  local_58 = Curl_checkheaders(conn,"Transport");
  if ((CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0)) {
    if ((data->set).str[0x34] != (char *)0x0) {
      (*Curl_cfree)((conn->allocptr).rtsp_transport);
      (conn->allocptr).rtsp_transport = (char *)0x0;
      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);
      (conn->allocptr).rtsp_transport = local_58;
      local_54 = (char *)0x0;
      local_48 = (char *)0x0;
      if (local_58 != (char *)0x0) goto LAB_0005904b;
LAB_000595e0:
      CVar9 = CURLE_OUT_OF_MEMORY;
      goto LAB_00058f70;
    }
    pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";
LAB_00059451:
    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;
    Curl_failf(data,pcVar5);
    goto LAB_00058f70;
  }
LAB_00059530:
  if (CVar2 == RTSPREQ_DESCRIBE) {
    pcVar5 = Curl_checkheaders(conn,"Accept");
    local_48 = (char *)0x0;
    if (pcVar5 == (char *)0x0) {
      local_48 = "Accept: application/sdp\r\n";
    }
    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");
    local_54 = (char *)0x0;
    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {
      (*Curl_cfree)((conn->allocptr).accept_encoding);
      (conn->allocptr).accept_encoding = (char *)0x0;
      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);
      (conn->allocptr).accept_encoding = local_54;
      if (local_54 == (char *)0x0) goto LAB_000595e0;
    }
  }
  else {
    local_54 = (char *)0x0;
    local_48 = (char *)0x0;
  }
LAB_0005904b:
  pcVar5 = Curl_checkheaders(conn,"User-Agent");
  if ((pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)) {
    pcVar5 = Curl_checkheaders(conn,"User-Agent");
    local_50 = (char *)0x0;
    if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {
      local_50 = (conn->allocptr).uagent;
    }
  }
  else {
    (*Curl_cfree)(pcVar5);
    (conn->allocptr).uagent = (char *)0x0;
    local_50 = (char *)0x0;
  }
  CVar9 = Curl_http_output_auth(conn,local_68,local_64,false);
  if (CVar9 != CURLE_OK) goto LAB_00058f70;
  pcVar5 = (conn->allocptr).proxyuserpwd;
  pcVar8 = (conn->allocptr).userpwd;
  (*Curl_cfree)((conn->allocptr).ref);
  pcVar6 = (data->change).referer;
  (conn->allocptr).ref = (char *)0x0;
  if ((pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)
     ) {
    (conn->allocptr).ref = (char *)0x0;
    local_3c = (char *)0x0;
  }
  else {
    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);
    (conn->allocptr).ref = local_3c;
  }
  if (((((data->state).use_range == false) ||
       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||
      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||
     ((data->state).range == (char *)0x0)) {
    local_34 = (char *)0x0;
  }
  else {
    (*Curl_cfree)((conn->allocptr).rangeline);
    (conn->allocptr).rangeline = (char *)0x0;
    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);
    (conn->allocptr).rangeline = local_34;
  }
  pcVar6 = Curl_checkheaders(conn,"CSeq");
  if (pcVar6 != (char *)0x0) {
    CVar9 = CURLE_RTSP_CSEQ_ERROR;
    Curl_failf(data,"CSeq cannot be set as a custom header.");
    goto LAB_00058f70;
  }
  pcVar6 = Curl_checkheaders(conn,"Session");
  if (pcVar6 != (char *)0x0) {
    pcVar5 = "Session ID cannot be set as a custom header.";
    goto LAB_00059451;
  }
  req_buffer = Curl_add_buffer_init();
  if (req_buffer == (Curl_send_buffer *)0x0) goto LAB_000595e0;
  CVar9 = Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,
                           *(undefined4 *)((int)pvVar3 + 500));
  if ((CVar9 != CURLE_OK) ||
     ((local_4c != (char *)0x0 &&
      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))))
  goto LAB_00058f70;
  pcVar6 = "";
  if (pcVar8 == (char *)0x0) {
    pcVar8 = pcVar6;
  }
  if (pcVar5 == (char *)0x0) {
    pcVar5 = pcVar6;
  }
  if (local_50 == (char *)0x0) {
    local_50 = pcVar6;
  }
  if (local_3c == (char *)0x0) {
    local_3c = pcVar6;
  }
  if (local_34 == (char *)0x0) {
    local_34 = pcVar6;
  }
  if (local_54 == (char *)0x0) {
    local_54 = pcVar6;
  }
  if (local_48 == (char *)0x0) {
    local_48 = pcVar6;
  }
  if (local_58 != (char *)0x0) {
    pcVar6 = local_58;
  }
  CVar9 = Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c
                           ,local_50,pcVar5,pcVar8);
  (*Curl_cfree)((conn->allocptr).userpwd);
  (conn->allocptr).userpwd = (char *)0x0;
  if (((CVar9 != CURLE_OK) ||
      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&
       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||
     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)) goto LAB_00058f70;
  if ((CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2)) {
    local_58 = (char *)(data->state).infilesize;
    local_54 = *(char **)((int)&(data->state).infilesize + 4);
    if ((data->set).upload == false) {
      local_64 = local_58;
      local_60 = (uint)local_54;
      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {
        pcVar5 = (char *)(data->set).postfields;
        local_64 = (char *)0x0;
        local_60 = 0;
        if (pcVar5 != (char *)0x0) {
          local_64 = (char *)strlen(pcVar5);
          local_60 = 0;
        }
      }
      local_58 = (char *)0x0;
      (data->set).httpreq = HTTPREQ_POST;
      local_54 = (char *)0x0;
      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -
                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);
    }
    else {
      (data->set).httpreq = HTTPREQ_PUT;
      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -
                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);
      local_64 = (char *)0x0;
      local_60 = 0;
    }
    if (-1 < cVar4) {
      if (CVar2 == RTSPREQ_GET_PARAMETER) {
        (data->set).httpreq = HTTPREQ_HEAD;
        (data->set).opt_no_body = true;
      }
      goto LAB_0005930c;
    }
    pcVar5 = Curl_checkheaders(conn,"Content-Length");
    if (pcVar5 == (char *)0x0) {
      pcVar5 = local_58;
      pcVar8 = local_54;
      if ((data->set).upload == false) {
        pcVar5 = local_64;
        pcVar8 = (char *)local_60;
      }
      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);
      if (CVar9 != CURLE_OK) goto LAB_00058f70;
    }
    if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {
      pcVar5 = Curl_checkheaders(conn,"Content-Type");
      if ((pcVar5 == (char *)0x0) &&
         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),
         CVar9 != CURLE_OK)) goto LAB_00058f70;
      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;
    }
    else {
LAB_00059825:
      pcVar5 = Curl_checkheaders(conn,"Content-Type");
      if ((pcVar5 == (char *)0x0) &&
         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,
                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;
    }
    (data->state).expect100header = false;
    (data->req).forbidchunk = true;
    CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);
    if (CVar9 != CURLE_OK) goto LAB_00058f70;
    if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {
      pcVar5 = (char *)(data->set).postfields;
      goto LAB_0005931f;
    }
  }
  else {
    local_58 = (char *)0x0;
    local_54 = (char *)0x0;
LAB_0005930c:
    pcVar5 = "\r\n";
    (data->req).forbidchunk = true;
    local_64 = (char *)0x2;
LAB_0005931f:
    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);
    if (CVar9 != CURLE_OK) goto LAB_00058f70;
  }
  CVar9 = Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0);
  if (CVar9 == CURLE_OK) {
    iVar7 = -1;
    local_30 = (curl_off_t *)0x0;
    if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {
      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);
      iVar7 = 0;
    }
    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);
    plVar1 = &(data->state).rtsp_next_client_CSeq;
    *plVar1 = *plVar1 + 1;
    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {
      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));
      iVar7 = Curl_pgrsUpdate(conn);
      if (iVar7 != 0) {
        CVar9 = CURLE_ABORTED_BY_CALLBACK;
      }
    }
  }
  else {
    Curl_failf(data,"Failed sending RTSP request");
  }
LAB_00058f70:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CVar9;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



undefined4 __regparm2 FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int unaff_EBX;
  int in_GS_OFFSET;
  int *unaff_retaddr;
  
  entry(param_2,0x58ec9);
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = *unaff_retaddr;
  uVar3 = *(uint *)(iVar2 + 0xaa0);
  iVar4 = *(int *)(iVar2 + 0x148);
  *param_3 = 1;
  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);
  *(undefined4 *)(iVar4 + 0x1f8) = 0;
  *(undefined1 *)(iVar2 + 0x934) = 1;
  if (uVar3 < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();
    return uVar5;
  }
  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return 0x2b;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0007c1a0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x57917
SUB ESP,0x6c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x5c],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [ESP + 0x84]
MOV EBP,dword ptr [ESI]
MOV EDX,dword ptr [EBP + 0xaa0]
MOV ECX,dword ptr [EBP + 0x148]
MOV byte ptr [EAX],0x1
MOV EAX,dword ptr [EBP + 0xec0]
MOV dword ptr [ESP + 0x8],EDX
MOV dword ptr [ECX + 0x1f4],EAX
MOV dword ptr [ECX + 0x1f8],0x0
MOV dword ptr [ESP + 0x20],ECX
MOV byte ptr [EBP + 0x934],0x1
CMP EDX,0xc
JA 0x000594f8
MOV EAX,dword ptr [EBX + EDX*0x4 + 0xfffd56c0]
ADD EAX,EBX
JMP EAX
MOV ESI,dword ptr [ESP + 0x5c]
XOR ESI,dword ptr GS:[0x14]
MOV EAX,EDI
JNZ 0x0005995b
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH EAX
MOV EDI,0x2b
PUSH EBP
CALL 0x00027240
ADD ESP,0x10
JMP 0x00058f70
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd55c0]
JMP 0x00059451
CALL 0x0007c1a0
(translation_unit "undefined4 __regparm2 FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}\n\n" (function_definition "undefined4 __regparm2 FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined1 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (expression_statement "entry(param_2,0x58ec9);" (call_expression "entry(param_2,0x58ec9)" identifier (argument_list "(param_2,0x58ec9)" ( identifier , number_literal ))) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *unaff_retaddr;" (assignment_expression "iVar2 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xaa0);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xaa0)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xaa0)" * (cast_expression "(uint *)(iVar2 + 0xaa0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xaa0)" ( (binary_expression "iVar2 + 0xaa0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 0x148);" (assignment_expression "iVar4 = *(int *)(iVar2 + 0x148)" identifier = (pointer_expression "*(int *)(iVar2 + 0x148)" * (cast_expression "(int *)(iVar2 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x148)" ( (binary_expression "iVar2 + 0x148" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);" (assignment_expression "*(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0)" (pointer_expression "*(undefined4 *)(iVar4 + 500)" * (cast_expression "(undefined4 *)(iVar4 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 500)" ( (binary_expression "iVar4 + 500" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar2 + 0xec0)" * (cast_expression "(undefined4 *)(iVar2 + 0xec0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xec0)" ( (binary_expression "iVar2 + 0xec0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x1f8)" * (cast_expression "(undefined4 *)(iVar4 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1f8)" ( (binary_expression "iVar4 + 0x1f8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar2 + 0x934) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0x934) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0x934)" * (cast_expression "(undefined1 *)(iVar2 + 0x934)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x934)" ( (binary_expression "iVar2 + 0x934" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar3 < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }" if (parenthesized_expression "(uVar3 < 0xd)" ( (binary_expression "uVar3 < 0xd" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }" { comment comment (expression_statement "uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();" (assignment_expression "uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" * (cast_expression "(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" ( (binary_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917" (binary_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX" (pointer_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4)" * (cast_expression "(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x2cfd7 + uVar3 * 4)" ( (binary_expression "unaff_EBX + 0x2cfd7 + uVar3 * 4" (binary_expression "unaff_EBX + 0x2cfd7" identifier + number_literal) + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar5;" return identifier ;) })) (expression_statement "FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);" (call_expression "FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX)" identifier (argument_list "(iVar2,&UNK_0002ced7 + unaff_EBX)" ( identifier , (binary_expression "&UNK_0002ced7 + unaff_EBX" (pointer_expression "&UNK_0002ced7" & identifier) + identifier) ))) ;) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0x2b;\n  }" { (return_statement "return 0x2b;" return number_literal ;) })) comment (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode rtsp_do(connectdata *conn,_Bool *done)\n\n{\n  long *plVar1;\n  Curl_easy *data;\n  Curl_RtspReq CVar2;\n  void *pvVar3;\n  char cVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  char *pcVar8;\n  CURLcode CVar9;\n  int in_GS_OFFSET;\n  char *local_68;\n  char *local_64;\n  uint local_60;\n  char *local_58;\n  char *local_54;\n  char *local_50;\n  char *local_4c;\n  char *local_48;\n  char *local_3c;\n  char *local_34;\n  curl_off_t *local_30;\n  Curl_send_buffer *req_buffer;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x58ec9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  data = conn->data;\n  CVar2 = (data->set).rtspreq;\n  pvVar3 = (data->req).protop;\n  *done = true;\n  *(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq;\n  *(undefined4 *)((int)pvVar3 + 0x1f8) = 0;\n  (data->set).opt_no_body = true;\n  switch(CVar2) {\n  default:\n    pcVar5 = "Got invalid RTSP request";\n    goto LAB_00059451;\n  case RTSPREQ_OPTIONS:\n    local_68 = "OPTIONS";\n    break;\n  case RTSPREQ_DESCRIBE:\n    (data->set).opt_no_body = false;\n    local_68 = "DESCRIBE";\n    break;\n  case RTSPREQ_ANNOUNCE:\n    local_4c = (data->set).str[0x32];\n    if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }\n    local_64 = (data->set).str[0x33];\n    if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }\n    local_58 = Curl_checkheaders(conn,"Transport");\n    local_68 = "ANNOUNCE";\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n    goto LAB_0005904b;\n  case RTSPREQ_SETUP:\n    local_68 = "SETUP";\n    break;\n  case RTSPREQ_PLAY:\n    local_68 = "PLAY";\n    break;\n  case RTSPREQ_PAUSE:\n    local_68 = "PAUSE";\n    break;\n  case RTSPREQ_TEARDOWN:\n    local_68 = "TEARDOWN";\n    break;\n  case RTSPREQ_GET_PARAMETER:\n    (data->set).opt_no_body = false;\n    local_68 = "GET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_SET_PARAMETER:\n    local_68 = "SET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_RECORD:\n    local_68 = "RECORD";\nLAB_000593f2:\n    local_4c = (data->set).str[0x32];\n    if (local_4c != (char *)0x0) goto LAB_00058faa;\n    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";\n    goto LAB_00059451;\n  case RTSPREQ_RECEIVE:\n    (data->set).opt_no_body = false;\n    CVar9 = CURLE_OK;\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);\n    goto LAB_00058f70;\n  case RTSPREQ_LAST:\n    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";\n    goto LAB_00059451;\n  }\n  local_4c = (data->set).str[0x32];\nLAB_00058faa:\n  pcVar5 = (data->set).str[0x33];\n  local_64 = "*";\n  if (pcVar5 != (char *)0x0) {\n    local_64 = pcVar5;\n  }\n  local_58 = Curl_checkheaders(conn,"Transport");\n  if ((CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0)) {\n    if ((data->set).str[0x34] != (char *)0x0) {\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }\n    pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";\nLAB_00059451:\n    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;\n    Curl_failf(data,pcVar5);\n    goto LAB_00058f70;\n  }\nLAB_00059530:\n  if (CVar2 == RTSPREQ_DESCRIBE) {\n    pcVar5 = Curl_checkheaders(conn,"Accept");\n    local_48 = (char *)0x0;\n    if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }\n    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");\n    local_54 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }\n  }\n  else {\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }\nLAB_0005904b:\n  pcVar5 = Curl_checkheaders(conn,"User-Agent");\n  if ((pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)) {\n    pcVar5 = Curl_checkheaders(conn,"User-Agent");\n    local_50 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {\n      local_50 = (conn->allocptr).uagent;\n    }\n  }\n  else {\n    (*Curl_cfree)(pcVar5);\n    (conn->allocptr).uagent = (char *)0x0;\n    local_50 = (char *)0x0;\n  }\n  CVar9 = Curl_http_output_auth(conn,local_68,local_64,false);\n  if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  pcVar5 = (conn->allocptr).proxyuserpwd;\n  pcVar8 = (conn->allocptr).userpwd;\n  (*Curl_cfree)((conn->allocptr).ref);\n  pcVar6 = (data->change).referer;\n  (conn->allocptr).ref = (char *)0x0;\n  if ((pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)\n     ) {\n    (conn->allocptr).ref = (char *)0x0;\n    local_3c = (char *)0x0;\n  }\n  else {\n    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);\n    (conn->allocptr).ref = local_3c;\n  }\n  if (((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||\n     ((data->state).range == (char *)0x0)) {\n    local_34 = (char *)0x0;\n  }\n  else {\n    (*Curl_cfree)((conn->allocptr).rangeline);\n    (conn->allocptr).rangeline = (char *)0x0;\n    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);\n    (conn->allocptr).rangeline = local_34;\n  }\n  pcVar6 = Curl_checkheaders(conn,"CSeq");\n  if (pcVar6 != (char *)0x0) {\n    CVar9 = CURLE_RTSP_CSEQ_ERROR;\n    Curl_failf(data,"CSeq cannot be set as a custom header.");\n    goto LAB_00058f70;\n  }\n  pcVar6 = Curl_checkheaders(conn,"Session");\n  if (pcVar6 != (char *)0x0) {\n    pcVar5 = "Session ID cannot be set as a custom header.";\n    goto LAB_00059451;\n  }\n  req_buffer = Curl_add_buffer_init();\n  if (req_buffer == (Curl_send_buffer *)0x0) goto LAB_000595e0;\n  CVar9 = Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500));\n  if ((CVar9 != CURLE_OK) ||\n     ((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))))\n  goto LAB_00058f70;\n  pcVar6 = "";\n  if (pcVar8 == (char *)0x0) {\n    pcVar8 = pcVar6;\n  }\n  if (pcVar5 == (char *)0x0) {\n    pcVar5 = pcVar6;\n  }\n  if (local_50 == (char *)0x0) {\n    local_50 = pcVar6;\n  }\n  if (local_3c == (char *)0x0) {\n    local_3c = pcVar6;\n  }\n  if (local_34 == (char *)0x0) {\n    local_34 = pcVar6;\n  }\n  if (local_54 == (char *)0x0) {\n    local_54 = pcVar6;\n  }\n  if (local_48 == (char *)0x0) {\n    local_48 = pcVar6;\n  }\n  if (local_58 != (char *)0x0) {\n    pcVar6 = local_58;\n  }\n  CVar9 = Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8);\n  (*Curl_cfree)((conn->allocptr).userpwd);\n  (conn->allocptr).userpwd = (char *)0x0;\n  if (((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||\n     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)) goto LAB_00058f70;\n  if ((CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2)) {\n    local_58 = (char *)(data->state).infilesize;\n    local_54 = *(char **)((int)&(data->state).infilesize + 4);\n    if ((data->set).upload == false) {\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }\n    else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }\n    if (-1 < cVar4) {\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }\n    pcVar5 = Curl_checkheaders(conn,"Content-Length");\n    if (pcVar5 == (char *)0x0) {\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }\n    if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }\n    else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }\n    (data->state).expect100header = false;\n    (data->req).forbidchunk = true;\n    CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }\n  }\n  else {\n    local_58 = (char *)0x0;\n    local_54 = (char *)0x0;\nLAB_0005930c:\n    pcVar5 = "\r\n";\n    (data->req).forbidchunk = true;\n    local_64 = (char *)0x2;\nLAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  }\n  CVar9 = Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0);\n  if (CVar9 == CURLE_OK) {\n    iVar7 = -1;\n    local_30 = (curl_off_t *)0x0;\n    if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);\n    plVar1 = &(data->state).rtsp_next_client_CSeq;\n    *plVar1 = *plVar1 + 1;\n    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }\n  }\n  else {\n    Curl_failf(data,"Failed sending RTSP request");\n  }\nLAB_00058f70:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment comment (function_definition "CURLcode rtsp_do(connectdata *conn,_Bool *done)\n\n{\n  long *plVar1;\n  Curl_easy *data;\n  Curl_RtspReq CVar2;\n  void *pvVar3;\n  char cVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  char *pcVar8;\n  CURLcode CVar9;\n  int in_GS_OFFSET;\n  char *local_68;\n  char *local_64;\n  uint local_60;\n  char *local_58;\n  char *local_54;\n  char *local_50;\n  char *local_4c;\n  char *local_48;\n  char *local_3c;\n  char *local_34;\n  curl_off_t *local_30;\n  Curl_send_buffer *req_buffer;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x58ec9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  data = conn->data;\n  CVar2 = (data->set).rtspreq;\n  pvVar3 = (data->req).protop;\n  *done = true;\n  *(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq;\n  *(undefined4 *)((int)pvVar3 + 0x1f8) = 0;\n  (data->set).opt_no_body = true;\n  switch(CVar2) {\n  default:\n    pcVar5 = "Got invalid RTSP request";\n    goto LAB_00059451;\n  case RTSPREQ_OPTIONS:\n    local_68 = "OPTIONS";\n    break;\n  case RTSPREQ_DESCRIBE:\n    (data->set).opt_no_body = false;\n    local_68 = "DESCRIBE";\n    break;\n  case RTSPREQ_ANNOUNCE:\n    local_4c = (data->set).str[0x32];\n    if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }\n    local_64 = (data->set).str[0x33];\n    if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }\n    local_58 = Curl_checkheaders(conn,"Transport");\n    local_68 = "ANNOUNCE";\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n    goto LAB_0005904b;\n  case RTSPREQ_SETUP:\n    local_68 = "SETUP";\n    break;\n  case RTSPREQ_PLAY:\n    local_68 = "PLAY";\n    break;\n  case RTSPREQ_PAUSE:\n    local_68 = "PAUSE";\n    break;\n  case RTSPREQ_TEARDOWN:\n    local_68 = "TEARDOWN";\n    break;\n  case RTSPREQ_GET_PARAMETER:\n    (data->set).opt_no_body = false;\n    local_68 = "GET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_SET_PARAMETER:\n    local_68 = "SET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_RECORD:\n    local_68 = "RECORD";\nLAB_000593f2:\n    local_4c = (data->set).str[0x32];\n    if (local_4c != (char *)0x0) goto LAB_00058faa;\n    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";\n    goto LAB_00059451;\n  case RTSPREQ_RECEIVE:\n    (data->set).opt_no_body = false;\n    CVar9 = CURLE_OK;\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);\n    goto LAB_00058f70;\n  case RTSPREQ_LAST:\n    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";\n    goto LAB_00059451;\n  }\n  local_4c = (data->set).str[0x32];\nLAB_00058faa:\n  pcVar5 = (data->set).str[0x33];\n  local_64 = "*";\n  if (pcVar5 != (char *)0x0) {\n    local_64 = pcVar5;\n  }\n  local_58 = Curl_checkheaders(conn,"Transport");\n  if ((CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0)) {\n    if ((data->set).str[0x34] != (char *)0x0) {\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }\n    pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";\nLAB_00059451:\n    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;\n    Curl_failf(data,pcVar5);\n    goto LAB_00058f70;\n  }\nLAB_00059530:\n  if (CVar2 == RTSPREQ_DESCRIBE) {\n    pcVar5 = Curl_checkheaders(conn,"Accept");\n    local_48 = (char *)0x0;\n    if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }\n    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");\n    local_54 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }\n  }\n  else {\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }\nLAB_0005904b:\n  pcVar5 = Curl_checkheaders(conn,"User-Agent");\n  if ((pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)) {\n    pcVar5 = Curl_checkheaders(conn,"User-Agent");\n    local_50 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {\n      local_50 = (conn->allocptr).uagent;\n    }\n  }\n  else {\n    (*Curl_cfree)(pcVar5);\n    (conn->allocptr).uagent = (char *)0x0;\n    local_50 = (char *)0x0;\n  }\n  CVar9 = Curl_http_output_auth(conn,local_68,local_64,false);\n  if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  pcVar5 = (conn->allocptr).proxyuserpwd;\n  pcVar8 = (conn->allocptr).userpwd;\n  (*Curl_cfree)((conn->allocptr).ref);\n  pcVar6 = (data->change).referer;\n  (conn->allocptr).ref = (char *)0x0;\n  if ((pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)\n     ) {\n    (conn->allocptr).ref = (char *)0x0;\n    local_3c = (char *)0x0;\n  }\n  else {\n    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);\n    (conn->allocptr).ref = local_3c;\n  }\n  if (((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||\n     ((data->state).range == (char *)0x0)) {\n    local_34 = (char *)0x0;\n  }\n  else {\n    (*Curl_cfree)((conn->allocptr).rangeline);\n    (conn->allocptr).rangeline = (char *)0x0;\n    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);\n    (conn->allocptr).rangeline = local_34;\n  }\n  pcVar6 = Curl_checkheaders(conn,"CSeq");\n  if (pcVar6 != (char *)0x0) {\n    CVar9 = CURLE_RTSP_CSEQ_ERROR;\n    Curl_failf(data,"CSeq cannot be set as a custom header.");\n    goto LAB_00058f70;\n  }\n  pcVar6 = Curl_checkheaders(conn,"Session");\n  if (pcVar6 != (char *)0x0) {\n    pcVar5 = "Session ID cannot be set as a custom header.";\n    goto LAB_00059451;\n  }\n  req_buffer = Curl_add_buffer_init();\n  if (req_buffer == (Curl_send_buffer *)0x0) goto LAB_000595e0;\n  CVar9 = Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500));\n  if ((CVar9 != CURLE_OK) ||\n     ((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))))\n  goto LAB_00058f70;\n  pcVar6 = "";\n  if (pcVar8 == (char *)0x0) {\n    pcVar8 = pcVar6;\n  }\n  if (pcVar5 == (char *)0x0) {\n    pcVar5 = pcVar6;\n  }\n  if (local_50 == (char *)0x0) {\n    local_50 = pcVar6;\n  }\n  if (local_3c == (char *)0x0) {\n    local_3c = pcVar6;\n  }\n  if (local_34 == (char *)0x0) {\n    local_34 = pcVar6;\n  }\n  if (local_54 == (char *)0x0) {\n    local_54 = pcVar6;\n  }\n  if (local_48 == (char *)0x0) {\n    local_48 = pcVar6;\n  }\n  if (local_58 != (char *)0x0) {\n    pcVar6 = local_58;\n  }\n  CVar9 = Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8);\n  (*Curl_cfree)((conn->allocptr).userpwd);\n  (conn->allocptr).userpwd = (char *)0x0;\n  if (((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||\n     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)) goto LAB_00058f70;\n  if ((CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2)) {\n    local_58 = (char *)(data->state).infilesize;\n    local_54 = *(char **)((int)&(data->state).infilesize + 4);\n    if ((data->set).upload == false) {\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }\n    else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }\n    if (-1 < cVar4) {\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }\n    pcVar5 = Curl_checkheaders(conn,"Content-Length");\n    if (pcVar5 == (char *)0x0) {\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }\n    if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }\n    else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }\n    (data->state).expect100header = false;\n    (data->req).forbidchunk = true;\n    CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }\n  }\n  else {\n    local_58 = (char *)0x0;\n    local_54 = (char *)0x0;\nLAB_0005930c:\n    pcVar5 = "\r\n";\n    (data->req).forbidchunk = true;\n    local_64 = (char *)0x2;\nLAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  }\n  CVar9 = Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0);\n  if (CVar9 == CURLE_OK) {\n    iVar7 = -1;\n    local_30 = (curl_off_t *)0x0;\n    if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);\n    plVar1 = &(data->state).rtsp_next_client_CSeq;\n    *plVar1 = *plVar1 + 1;\n    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }\n  }\n  else {\n    Curl_failf(data,"Failed sending RTSP request");\n  }\nLAB_00058f70:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (function_declarator "rtsp_do(connectdata *conn,_Bool *done)" identifier (parameter_list "(connectdata *conn,_Bool *done)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) , (parameter_declaration "_Bool *done" type_identifier (pointer_declarator "*done" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  Curl_easy *data;\n  Curl_RtspReq CVar2;\n  void *pvVar3;\n  char cVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  char *pcVar8;\n  CURLcode CVar9;\n  int in_GS_OFFSET;\n  char *local_68;\n  char *local_64;\n  uint local_60;\n  char *local_58;\n  char *local_54;\n  char *local_50;\n  char *local_4c;\n  char *local_48;\n  char *local_3c;\n  char *local_34;\n  curl_off_t *local_30;\n  Curl_send_buffer *req_buffer;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x58ec9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  data = conn->data;\n  CVar2 = (data->set).rtspreq;\n  pvVar3 = (data->req).protop;\n  *done = true;\n  *(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq;\n  *(undefined4 *)((int)pvVar3 + 0x1f8) = 0;\n  (data->set).opt_no_body = true;\n  switch(CVar2) {\n  default:\n    pcVar5 = "Got invalid RTSP request";\n    goto LAB_00059451;\n  case RTSPREQ_OPTIONS:\n    local_68 = "OPTIONS";\n    break;\n  case RTSPREQ_DESCRIBE:\n    (data->set).opt_no_body = false;\n    local_68 = "DESCRIBE";\n    break;\n  case RTSPREQ_ANNOUNCE:\n    local_4c = (data->set).str[0x32];\n    if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }\n    local_64 = (data->set).str[0x33];\n    if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }\n    local_58 = Curl_checkheaders(conn,"Transport");\n    local_68 = "ANNOUNCE";\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n    goto LAB_0005904b;\n  case RTSPREQ_SETUP:\n    local_68 = "SETUP";\n    break;\n  case RTSPREQ_PLAY:\n    local_68 = "PLAY";\n    break;\n  case RTSPREQ_PAUSE:\n    local_68 = "PAUSE";\n    break;\n  case RTSPREQ_TEARDOWN:\n    local_68 = "TEARDOWN";\n    break;\n  case RTSPREQ_GET_PARAMETER:\n    (data->set).opt_no_body = false;\n    local_68 = "GET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_SET_PARAMETER:\n    local_68 = "SET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_RECORD:\n    local_68 = "RECORD";\nLAB_000593f2:\n    local_4c = (data->set).str[0x32];\n    if (local_4c != (char *)0x0) goto LAB_00058faa;\n    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";\n    goto LAB_00059451;\n  case RTSPREQ_RECEIVE:\n    (data->set).opt_no_body = false;\n    CVar9 = CURLE_OK;\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);\n    goto LAB_00058f70;\n  case RTSPREQ_LAST:\n    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";\n    goto LAB_00059451;\n  }\n  local_4c = (data->set).str[0x32];\nLAB_00058faa:\n  pcVar5 = (data->set).str[0x33];\n  local_64 = "*";\n  if (pcVar5 != (char *)0x0) {\n    local_64 = pcVar5;\n  }\n  local_58 = Curl_checkheaders(conn,"Transport");\n  if ((CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0)) {\n    if ((data->set).str[0x34] != (char *)0x0) {\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }\n    pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";\nLAB_00059451:\n    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;\n    Curl_failf(data,pcVar5);\n    goto LAB_00058f70;\n  }\nLAB_00059530:\n  if (CVar2 == RTSPREQ_DESCRIBE) {\n    pcVar5 = Curl_checkheaders(conn,"Accept");\n    local_48 = (char *)0x0;\n    if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }\n    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");\n    local_54 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }\n  }\n  else {\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }\nLAB_0005904b:\n  pcVar5 = Curl_checkheaders(conn,"User-Agent");\n  if ((pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)) {\n    pcVar5 = Curl_checkheaders(conn,"User-Agent");\n    local_50 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {\n      local_50 = (conn->allocptr).uagent;\n    }\n  }\n  else {\n    (*Curl_cfree)(pcVar5);\n    (conn->allocptr).uagent = (char *)0x0;\n    local_50 = (char *)0x0;\n  }\n  CVar9 = Curl_http_output_auth(conn,local_68,local_64,false);\n  if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  pcVar5 = (conn->allocptr).proxyuserpwd;\n  pcVar8 = (conn->allocptr).userpwd;\n  (*Curl_cfree)((conn->allocptr).ref);\n  pcVar6 = (data->change).referer;\n  (conn->allocptr).ref = (char *)0x0;\n  if ((pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)\n     ) {\n    (conn->allocptr).ref = (char *)0x0;\n    local_3c = (char *)0x0;\n  }\n  else {\n    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);\n    (conn->allocptr).ref = local_3c;\n  }\n  if (((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||\n     ((data->state).range == (char *)0x0)) {\n    local_34 = (char *)0x0;\n  }\n  else {\n    (*Curl_cfree)((conn->allocptr).rangeline);\n    (conn->allocptr).rangeline = (char *)0x0;\n    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);\n    (conn->allocptr).rangeline = local_34;\n  }\n  pcVar6 = Curl_checkheaders(conn,"CSeq");\n  if (pcVar6 != (char *)0x0) {\n    CVar9 = CURLE_RTSP_CSEQ_ERROR;\n    Curl_failf(data,"CSeq cannot be set as a custom header.");\n    goto LAB_00058f70;\n  }\n  pcVar6 = Curl_checkheaders(conn,"Session");\n  if (pcVar6 != (char *)0x0) {\n    pcVar5 = "Session ID cannot be set as a custom header.";\n    goto LAB_00059451;\n  }\n  req_buffer = Curl_add_buffer_init();\n  if (req_buffer == (Curl_send_buffer *)0x0) goto LAB_000595e0;\n  CVar9 = Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500));\n  if ((CVar9 != CURLE_OK) ||\n     ((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))))\n  goto LAB_00058f70;\n  pcVar6 = "";\n  if (pcVar8 == (char *)0x0) {\n    pcVar8 = pcVar6;\n  }\n  if (pcVar5 == (char *)0x0) {\n    pcVar5 = pcVar6;\n  }\n  if (local_50 == (char *)0x0) {\n    local_50 = pcVar6;\n  }\n  if (local_3c == (char *)0x0) {\n    local_3c = pcVar6;\n  }\n  if (local_34 == (char *)0x0) {\n    local_34 = pcVar6;\n  }\n  if (local_54 == (char *)0x0) {\n    local_54 = pcVar6;\n  }\n  if (local_48 == (char *)0x0) {\n    local_48 = pcVar6;\n  }\n  if (local_58 != (char *)0x0) {\n    pcVar6 = local_58;\n  }\n  CVar9 = Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8);\n  (*Curl_cfree)((conn->allocptr).userpwd);\n  (conn->allocptr).userpwd = (char *)0x0;\n  if (((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||\n     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)) goto LAB_00058f70;\n  if ((CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2)) {\n    local_58 = (char *)(data->state).infilesize;\n    local_54 = *(char **)((int)&(data->state).infilesize + 4);\n    if ((data->set).upload == false) {\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }\n    else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }\n    if (-1 < cVar4) {\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }\n    pcVar5 = Curl_checkheaders(conn,"Content-Length");\n    if (pcVar5 == (char *)0x0) {\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }\n    if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }\n    else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }\n    (data->state).expect100header = false;\n    (data->req).forbidchunk = true;\n    CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }\n  }\n  else {\n    local_58 = (char *)0x0;\n    local_54 = (char *)0x0;\nLAB_0005930c:\n    pcVar5 = "\r\n";\n    (data->req).forbidchunk = true;\n    local_64 = (char *)0x2;\nLAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  }\n  CVar9 = Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0);\n  if (CVar9 == CURLE_OK) {\n    iVar7 = -1;\n    local_30 = (curl_off_t *)0x0;\n    if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);\n    plVar1 = &(data->state).rtsp_next_client_CSeq;\n    *plVar1 = *plVar1 + 1;\n    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }\n  }\n  else {\n    Curl_failf(data,"Failed sending RTSP request");\n  }\nLAB_00058f70:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "Curl_easy *data;" type_identifier (pointer_declarator "*data" * identifier) ;) (declaration "Curl_RtspReq CVar2;" type_identifier identifier ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "CURLcode CVar9;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "char *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "char *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "char *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "curl_off_t *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "Curl_send_buffer *req_buffer;" type_identifier (pointer_declarator "*req_buffer" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x58ec9;" (assignment_expression "uStack_14 = 0x58ec9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "data = conn->data;" (assignment_expression "data = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (expression_statement "CVar2 = (data->set).rtspreq;" (assignment_expression "CVar2 = (data->set).rtspreq" identifier = (field_expression "(data->set).rtspreq" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pvVar3 = (data->req).protop;" (assignment_expression "pvVar3 = (data->req).protop" identifier = (field_expression "(data->req).protop" (parenthesized_expression "(data->req)" ( (field_expression "data->req" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*done = true;" (assignment_expression "*done = true" (pointer_expression "*done" * identifier) = true) ;) (expression_statement "*(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq;" (assignment_expression "*(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq" (pointer_expression "*(long *)((int)pvVar3 + 500)" * (cast_expression "(long *)((int)pvVar3 + 500)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 500)" ( (binary_expression "(int)pvVar3 + 500" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "(data->state).rtsp_next_client_CSeq" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)pvVar3 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar3 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)((int)pvVar3 + 0x1f8)" * (cast_expression "(undefined4 *)((int)pvVar3 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x1f8)" ( (binary_expression "(int)pvVar3 + 0x1f8" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(data->set).opt_no_body = true;" (assignment_expression "(data->set).opt_no_body = true" (field_expression "(data->set).opt_no_body" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = true) ;) (switch_statement "switch(CVar2) {\n  default:\n    pcVar5 = "Got invalid RTSP request";\n    goto LAB_00059451;\n  case RTSPREQ_OPTIONS:\n    local_68 = "OPTIONS";\n    break;\n  case RTSPREQ_DESCRIBE:\n    (data->set).opt_no_body = false;\n    local_68 = "DESCRIBE";\n    break;\n  case RTSPREQ_ANNOUNCE:\n    local_4c = (data->set).str[0x32];\n    if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }\n    local_64 = (data->set).str[0x33];\n    if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }\n    local_58 = Curl_checkheaders(conn,"Transport");\n    local_68 = "ANNOUNCE";\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n    goto LAB_0005904b;\n  case RTSPREQ_SETUP:\n    local_68 = "SETUP";\n    break;\n  case RTSPREQ_PLAY:\n    local_68 = "PLAY";\n    break;\n  case RTSPREQ_PAUSE:\n    local_68 = "PAUSE";\n    break;\n  case RTSPREQ_TEARDOWN:\n    local_68 = "TEARDOWN";\n    break;\n  case RTSPREQ_GET_PARAMETER:\n    (data->set).opt_no_body = false;\n    local_68 = "GET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_SET_PARAMETER:\n    local_68 = "SET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_RECORD:\n    local_68 = "RECORD";\nLAB_000593f2:\n    local_4c = (data->set).str[0x32];\n    if (local_4c != (char *)0x0) goto LAB_00058faa;\n    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";\n    goto LAB_00059451;\n  case RTSPREQ_RECEIVE:\n    (data->set).opt_no_body = false;\n    CVar9 = CURLE_OK;\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);\n    goto LAB_00058f70;\n  case RTSPREQ_LAST:\n    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";\n    goto LAB_00059451;\n  }" switch (parenthesized_expression "(CVar2)" ( identifier )) (compound_statement "{\n  default:\n    pcVar5 = "Got invalid RTSP request";\n    goto LAB_00059451;\n  case RTSPREQ_OPTIONS:\n    local_68 = "OPTIONS";\n    break;\n  case RTSPREQ_DESCRIBE:\n    (data->set).opt_no_body = false;\n    local_68 = "DESCRIBE";\n    break;\n  case RTSPREQ_ANNOUNCE:\n    local_4c = (data->set).str[0x32];\n    if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }\n    local_64 = (data->set).str[0x33];\n    if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }\n    local_58 = Curl_checkheaders(conn,"Transport");\n    local_68 = "ANNOUNCE";\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n    goto LAB_0005904b;\n  case RTSPREQ_SETUP:\n    local_68 = "SETUP";\n    break;\n  case RTSPREQ_PLAY:\n    local_68 = "PLAY";\n    break;\n  case RTSPREQ_PAUSE:\n    local_68 = "PAUSE";\n    break;\n  case RTSPREQ_TEARDOWN:\n    local_68 = "TEARDOWN";\n    break;\n  case RTSPREQ_GET_PARAMETER:\n    (data->set).opt_no_body = false;\n    local_68 = "GET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_SET_PARAMETER:\n    local_68 = "SET_PARAMETER";\n    goto LAB_000593f2;\n  case RTSPREQ_RECORD:\n    local_68 = "RECORD";\nLAB_000593f2:\n    local_4c = (data->set).str[0x32];\n    if (local_4c != (char *)0x0) goto LAB_00058faa;\n    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";\n    goto LAB_00059451;\n  case RTSPREQ_RECEIVE:\n    (data->set).opt_no_body = false;\n    CVar9 = CURLE_OK;\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);\n    goto LAB_00058f70;\n  case RTSPREQ_LAST:\n    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";\n    goto LAB_00059451;\n  }" { (case_statement "default:\n    pcVar5 = "Got invalid RTSP request";\n    goto LAB_00059451;" default : (expression_statement "pcVar5 = "Got invalid RTSP request";" (assignment_expression "pcVar5 = "Got invalid RTSP request"" identifier = (string_literal ""Got invalid RTSP request"" " string_content ")) ;) (goto_statement "goto LAB_00059451;" goto statement_identifier ;)) (case_statement "case RTSPREQ_OPTIONS:\n    local_68 = "OPTIONS";\n    break;" case identifier : (expression_statement "local_68 = "OPTIONS";" (assignment_expression "local_68 = "OPTIONS"" identifier = (string_literal ""OPTIONS"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case RTSPREQ_DESCRIBE:\n    (data->set).opt_no_body = false;\n    local_68 = "DESCRIBE";\n    break;" case identifier : (expression_statement "(data->set).opt_no_body = false;" (assignment_expression "(data->set).opt_no_body = false" (field_expression "(data->set).opt_no_body" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "local_68 = "DESCRIBE";" (assignment_expression "local_68 = "DESCRIBE"" identifier = (string_literal ""DESCRIBE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case RTSPREQ_ANNOUNCE:\n    local_4c = (data->set).str[0x32];\n    if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }\n    local_64 = (data->set).str[0x33];\n    if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }\n    local_58 = Curl_checkheaders(conn,"Transport");\n    local_68 = "ANNOUNCE";\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n    goto LAB_0005904b;" case identifier : (expression_statement "local_4c = (data->set).str[0x32];" (assignment_expression "local_4c = (data->set).str[0x32]" identifier = (subscript_expression "(data->set).str[0x32]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (local_4c == (char *)0x0) {\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_68 = "ANNOUNCE";\n      goto LAB_00058faa;\n    }" { (expression_statement "local_68 = "ANNOUNCE";" (assignment_expression "local_68 = "ANNOUNCE"" identifier = (string_literal ""ANNOUNCE"" " string_content ")) ;) (goto_statement "goto LAB_00058faa;" goto statement_identifier ;) })) (expression_statement "local_64 = (data->set).str[0x33];" (assignment_expression "local_64 = (data->set).str[0x33]" identifier = (subscript_expression "(data->set).str[0x33]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (local_64 == (char *)0x0) {\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }" if (parenthesized_expression "(local_64 == (char *)0x0)" ( (binary_expression "local_64 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_58 = Curl_checkheaders(conn,"Transport");\n      local_64 = "*";\n      local_68 = "ANNOUNCE";\n      goto LAB_00059530;\n    }" { (expression_statement "local_58 = Curl_checkheaders(conn,"Transport");" (assignment_expression "local_58 = Curl_checkheaders(conn,"Transport")" identifier = (call_expression "Curl_checkheaders(conn,"Transport")" identifier (argument_list "(conn,"Transport")" ( identifier , (string_literal ""Transport"" " string_content ") )))) ;) (expression_statement "local_64 = "*";" (assignment_expression "local_64 = "*"" identifier = (string_literal ""*"" " string_content ")) ;) (expression_statement "local_68 = "ANNOUNCE";" (assignment_expression "local_68 = "ANNOUNCE"" identifier = (string_literal ""ANNOUNCE"" " string_content ")) ;) (goto_statement "goto LAB_00059530;" goto statement_identifier ;) })) (expression_statement "local_58 = Curl_checkheaders(conn,"Transport");" (assignment_expression "local_58 = Curl_checkheaders(conn,"Transport")" identifier = (call_expression "Curl_checkheaders(conn,"Transport")" identifier (argument_list "(conn,"Transport")" ( identifier , (string_literal ""Transport"" " string_content ") )))) ;) (expression_statement "local_68 = "ANNOUNCE";" (assignment_expression "local_68 = "ANNOUNCE"" identifier = (string_literal ""ANNOUNCE"" " string_content ")) ;) (expression_statement "local_54 = (char *)0x0;" (assignment_expression "local_54 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (char *)0x0;" (assignment_expression "local_48 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0005904b;" goto statement_identifier ;)) (case_statement "case RTSPREQ_SETUP:\n    local_68 = "SETUP";\n    break;" case identifier : (expression_statement "local_68 = "SETUP";" (assignment_expression "local_68 = "SETUP"" identifier = (string_literal ""SETUP"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case RTSPREQ_PLAY:\n    local_68 = "PLAY";\n    break;" case identifier : (expression_statement "local_68 = "PLAY";" (assignment_expression "local_68 = "PLAY"" identifier = (string_literal ""PLAY"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case RTSPREQ_PAUSE:\n    local_68 = "PAUSE";\n    break;" case identifier : (expression_statement "local_68 = "PAUSE";" (assignment_expression "local_68 = "PAUSE"" identifier = (string_literal ""PAUSE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case RTSPREQ_TEARDOWN:\n    local_68 = "TEARDOWN";\n    break;" case identifier : (expression_statement "local_68 = "TEARDOWN";" (assignment_expression "local_68 = "TEARDOWN"" identifier = (string_literal ""TEARDOWN"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case RTSPREQ_GET_PARAMETER:\n    (data->set).opt_no_body = false;\n    local_68 = "GET_PARAMETER";\n    goto LAB_000593f2;" case identifier : (expression_statement "(data->set).opt_no_body = false;" (assignment_expression "(data->set).opt_no_body = false" (field_expression "(data->set).opt_no_body" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "local_68 = "GET_PARAMETER";" (assignment_expression "local_68 = "GET_PARAMETER"" identifier = (string_literal ""GET_PARAMETER"" " string_content ")) ;) (goto_statement "goto LAB_000593f2;" goto statement_identifier ;)) (case_statement "case RTSPREQ_SET_PARAMETER:\n    local_68 = "SET_PARAMETER";\n    goto LAB_000593f2;" case identifier : (expression_statement "local_68 = "SET_PARAMETER";" (assignment_expression "local_68 = "SET_PARAMETER"" identifier = (string_literal ""SET_PARAMETER"" " string_content ")) ;) (goto_statement "goto LAB_000593f2;" goto statement_identifier ;)) (case_statement "case RTSPREQ_RECORD:\n    local_68 = "RECORD";\nLAB_000593f2:\n    local_4c = (data->set).str[0x32];\n    if (local_4c != (char *)0x0) goto LAB_00058faa;\n    pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";\n    goto LAB_00059451;" case identifier : (expression_statement "local_68 = "RECORD";" (assignment_expression "local_68 = "RECORD"" identifier = (string_literal ""RECORD"" " string_content ")) ;) (labeled_statement "LAB_000593f2:\n    local_4c = (data->set).str[0x32];" statement_identifier : (expression_statement "local_4c = (data->set).str[0x32];" (assignment_expression "local_4c = (data->set).str[0x32]" identifier = (subscript_expression "(data->set).str[0x32]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;)) (if_statement "if (local_4c != (char *)0x0) goto LAB_00058faa;" if (parenthesized_expression "(local_4c != (char *)0x0)" ( (binary_expression "local_4c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00058faa;" goto statement_identifier ;)) (expression_statement "pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID.";" (assignment_expression "pcVar5 = "Refusing to issue an RTSP request [%s] without a session ID."" identifier = (string_literal ""Refusing to issue an RTSP request [%s] without a session ID."" " string_content ")) ;) (goto_statement "goto LAB_00059451;" goto statement_identifier ;)) (case_statement "case RTSPREQ_RECEIVE:\n    (data->set).opt_no_body = false;\n    CVar9 = CURLE_OK;\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);\n    goto LAB_00058f70;" case identifier : (expression_statement "(data->set).opt_no_body = false;" (assignment_expression "(data->set).opt_no_body = false" (field_expression "(data->set).opt_no_body" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "CVar9 = CURLE_OK;" (assignment_expression "CVar9 = CURLE_OK" identifier = identifier) ;) (expression_statement "Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0);" (call_expression "Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0)" identifier (argument_list "(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),-1,(curl_off_t *)0x0)" ( identifier , number_literal , number_literal , true , (cast_expression "(curl_off_t *)((int)pvVar3 + 0x18)" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x18)" ( (binary_expression "(int)pvVar3 + 0x18" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , number_literal , (cast_expression "(curl_off_t *)0x0" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) (case_statement "case RTSPREQ_LAST:\n    pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";\n    goto LAB_00059451;" case identifier : (expression_statement "pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST";" (assignment_expression "pcVar5 = "Got invalid RTSP request: RTSPREQ_LAST"" identifier = (string_literal ""Got invalid RTSP request: RTSPREQ_LAST"" " string_content ")) ;) (goto_statement "goto LAB_00059451;" goto statement_identifier ;)) })) (expression_statement "local_4c = (data->set).str[0x32];" (assignment_expression "local_4c = (data->set).str[0x32]" identifier = (subscript_expression "(data->set).str[0x32]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (labeled_statement "LAB_00058faa:\n  pcVar5 = (data->set).str[0x33];" statement_identifier : (expression_statement "pcVar5 = (data->set).str[0x33];" (assignment_expression "pcVar5 = (data->set).str[0x33]" identifier = (subscript_expression "(data->set).str[0x33]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;)) (expression_statement "local_64 = "*";" (assignment_expression "local_64 = "*"" identifier = (string_literal ""*"" " string_content ")) ;) (if_statement "if (pcVar5 != (char *)0x0) {\n    local_64 = pcVar5;\n  }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_64 = pcVar5;\n  }" { (expression_statement "local_64 = pcVar5;" (assignment_expression "local_64 = pcVar5" identifier = identifier) ;) })) (expression_statement "local_58 = Curl_checkheaders(conn,"Transport");" (assignment_expression "local_58 = Curl_checkheaders(conn,"Transport")" identifier = (call_expression "Curl_checkheaders(conn,"Transport")" identifier (argument_list "(conn,"Transport")" ( identifier , (string_literal ""Transport"" " string_content ") )))) ;) (if_statement "if ((CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0)) {\n    if ((data->set).str[0x34] != (char *)0x0) {\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }\n    pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";\nLAB_00059451:\n    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;\n    Curl_failf(data,pcVar5);\n    goto LAB_00058f70;\n  }" if (parenthesized_expression "((CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0))" ( (binary_expression "(CVar2 == RTSPREQ_SETUP) && (local_58 == (char *)0x0)" (parenthesized_expression "(CVar2 == RTSPREQ_SETUP)" ( (binary_expression "CVar2 == RTSPREQ_SETUP" identifier == identifier) )) && (parenthesized_expression "(local_58 == (char *)0x0)" ( (binary_expression "local_58 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if ((data->set).str[0x34] != (char *)0x0) {\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }\n    pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";\nLAB_00059451:\n    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;\n    Curl_failf(data,pcVar5);\n    goto LAB_00058f70;\n  }" { (if_statement "if ((data->set).str[0x34] != (char *)0x0) {\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }" if (parenthesized_expression "((data->set).str[0x34] != (char *)0x0)" ( (binary_expression "(data->set).str[0x34] != (char *)0x0" (subscript_expression "(data->set).str[0x34]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*Curl_cfree)((conn->allocptr).rtsp_transport);\n      (conn->allocptr).rtsp_transport = (char *)0x0;\n      local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);\n      (conn->allocptr).rtsp_transport = local_58;\n      local_54 = (char *)0x0;\n      local_48 = (char *)0x0;\n      if (local_58 != (char *)0x0) goto LAB_0005904b;\nLAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;\n      goto LAB_00058f70;\n    }" { (expression_statement "(*Curl_cfree)((conn->allocptr).rtsp_transport);" (call_expression "(*Curl_cfree)((conn->allocptr).rtsp_transport)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "((conn->allocptr).rtsp_transport)" ( (field_expression "(conn->allocptr).rtsp_transport" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "(conn->allocptr).rtsp_transport = (char *)0x0;" (assignment_expression "(conn->allocptr).rtsp_transport = (char *)0x0" (field_expression "(conn->allocptr).rtsp_transport" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34]);" (assignment_expression "local_58 = curl_maprintf("Transport: %s\r\n",(data->set).str[0x34])" identifier = (call_expression "curl_maprintf("Transport: %s\r\n",(data->set).str[0x34])" identifier (argument_list "("Transport: %s\r\n",(data->set).str[0x34])" ( (string_literal ""Transport: %s\r\n"" " string_content escape_sequence escape_sequence ") , (subscript_expression "(data->set).str[0x34]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) )))) ;) (expression_statement "(conn->allocptr).rtsp_transport = local_58;" (assignment_expression "(conn->allocptr).rtsp_transport = local_58" (field_expression "(conn->allocptr).rtsp_transport" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "local_54 = (char *)0x0;" (assignment_expression "local_54 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (char *)0x0;" (assignment_expression "local_48 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_58 != (char *)0x0) goto LAB_0005904b;" if (parenthesized_expression "(local_58 != (char *)0x0)" ( (binary_expression "local_58 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005904b;" goto statement_identifier ;)) (labeled_statement "LAB_000595e0:\n      CVar9 = CURLE_OUT_OF_MEMORY;" statement_identifier : (expression_statement "CVar9 = CURLE_OUT_OF_MEMORY;" (assignment_expression "CVar9 = CURLE_OUT_OF_MEMORY" identifier = identifier) ;)) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header.";" (assignment_expression "pcVar5 = "Refusing to issue an RTSP SETUP without a Transport: header."" identifier = (string_literal ""Refusing to issue an RTSP SETUP without a Transport: header."" " string_content ")) ;) (labeled_statement "LAB_00059451:\n    CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;" statement_identifier : (expression_statement "CVar9 = CURLE_BAD_FUNCTION_ARGUMENT;" (assignment_expression "CVar9 = CURLE_BAD_FUNCTION_ARGUMENT" identifier = identifier) ;)) (expression_statement "Curl_failf(data,pcVar5);" (call_expression "Curl_failf(data,pcVar5)" identifier (argument_list "(data,pcVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;) })) (labeled_statement "LAB_00059530:\n  if (CVar2 == RTSPREQ_DESCRIBE) {\n    pcVar5 = Curl_checkheaders(conn,"Accept");\n    local_48 = (char *)0x0;\n    if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }\n    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");\n    local_54 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }\n  }\n  else {\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }" statement_identifier : (if_statement "if (CVar2 == RTSPREQ_DESCRIBE) {\n    pcVar5 = Curl_checkheaders(conn,"Accept");\n    local_48 = (char *)0x0;\n    if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }\n    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");\n    local_54 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }\n  }\n  else {\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }" if (parenthesized_expression "(CVar2 == RTSPREQ_DESCRIBE)" ( (binary_expression "CVar2 == RTSPREQ_DESCRIBE" identifier == identifier) )) (compound_statement "{\n    pcVar5 = Curl_checkheaders(conn,"Accept");\n    local_48 = (char *)0x0;\n    if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }\n    pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");\n    local_54 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }\n  }" { (expression_statement "pcVar5 = Curl_checkheaders(conn,"Accept");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"Accept")" identifier = (call_expression "Curl_checkheaders(conn,"Accept")" identifier (argument_list "(conn,"Accept")" ( identifier , (string_literal ""Accept"" " string_content ") )))) ;) (expression_statement "local_48 = (char *)0x0;" (assignment_expression "local_48 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n      local_48 = "Accept: application/sdp\r\n";\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_48 = "Accept: application/sdp\r\n";\n    }" { (expression_statement "local_48 = "Accept: application/sdp\r\n";" (assignment_expression "local_48 = "Accept: application/sdp\r\n"" identifier = (string_literal ""Accept: application/sdp\r\n"" " string_content escape_sequence escape_sequence ")) ;) })) (expression_statement "pcVar5 = Curl_checkheaders(conn,"Accept-Encoding");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"Accept-Encoding")" identifier = (call_expression "Curl_checkheaders(conn,"Accept-Encoding")" identifier (argument_list "(conn,"Accept-Encoding")" ( identifier , (string_literal ""Accept-Encoding"" " string_content ") )))) ;) (expression_statement "local_54 = (char *)0x0;" (assignment_expression "local_54 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)) {\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0))" ( (binary_expression "(pcVar5 == (char *)0x0) && (local_54 = (data->set).str[9], local_54 != (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_54 = (data->set).str[9], local_54 != (char *)0x0)" ( (comma_expression "local_54 = (data->set).str[9], local_54 != (char *)0x0" (assignment_expression "local_54 = (data->set).str[9]" identifier = (subscript_expression "(data->set).str[9]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) , (binary_expression "local_54 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      (*Curl_cfree)((conn->allocptr).accept_encoding);\n      (conn->allocptr).accept_encoding = (char *)0x0;\n      local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);\n      (conn->allocptr).accept_encoding = local_54;\n      if (local_54 == (char *)0x0) goto LAB_000595e0;\n    }" { (expression_statement "(*Curl_cfree)((conn->allocptr).accept_encoding);" (call_expression "(*Curl_cfree)((conn->allocptr).accept_encoding)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "((conn->allocptr).accept_encoding)" ( (field_expression "(conn->allocptr).accept_encoding" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "(conn->allocptr).accept_encoding = (char *)0x0;" (assignment_expression "(conn->allocptr).accept_encoding = (char *)0x0" (field_expression "(conn->allocptr).accept_encoding" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9]);" (assignment_expression "local_54 = curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9])" identifier = (call_expression "curl_maprintf("Accept-Encoding: %s\r\n",(data->set).str[9])" identifier (argument_list "("Accept-Encoding: %s\r\n",(data->set).str[9])" ( (string_literal ""Accept-Encoding: %s\r\n"" " string_content escape_sequence escape_sequence ") , (subscript_expression "(data->set).str[9]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) )))) ;) (expression_statement "(conn->allocptr).accept_encoding = local_54;" (assignment_expression "(conn->allocptr).accept_encoding = local_54" (field_expression "(conn->allocptr).accept_encoding" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (local_54 == (char *)0x0) goto LAB_000595e0;" if (parenthesized_expression "(local_54 == (char *)0x0)" ( (binary_expression "local_54 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000595e0;" goto statement_identifier ;)) })) }) (else_clause "else {\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }" else (compound_statement "{\n    local_54 = (char *)0x0;\n    local_48 = (char *)0x0;\n  }" { (expression_statement "local_54 = (char *)0x0;" (assignment_expression "local_54 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (char *)0x0;" (assignment_expression "local_48 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) (labeled_statement "LAB_0005904b:\n  pcVar5 = Curl_checkheaders(conn,"User-Agent");" statement_identifier : (expression_statement "pcVar5 = Curl_checkheaders(conn,"User-Agent");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"User-Agent")" identifier = (call_expression "Curl_checkheaders(conn,"User-Agent")" identifier (argument_list "(conn,"User-Agent")" ( identifier , (string_literal ""User-Agent"" " string_content ") )))) ;)) (if_statement "if ((pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)) {\n    pcVar5 = Curl_checkheaders(conn,"User-Agent");\n    local_50 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {\n      local_50 = (conn->allocptr).uagent;\n    }\n  }\n  else {\n    (*Curl_cfree)(pcVar5);\n    (conn->allocptr).uagent = (char *)0x0;\n    local_50 = (char *)0x0;\n  }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0))" ( (binary_expression "(pcVar5 == (char *)0x0) || (pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0)" ( (comma_expression "pcVar5 = (conn->allocptr).uagent, pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (conn->allocptr).uagent" identifier = (field_expression "(conn->allocptr).uagent" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pcVar5 = Curl_checkheaders(conn,"User-Agent");\n    local_50 = (char *)0x0;\n    if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {\n      local_50 = (conn->allocptr).uagent;\n    }\n  }" { (expression_statement "pcVar5 = Curl_checkheaders(conn,"User-Agent");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"User-Agent")" identifier = (call_expression "Curl_checkheaders(conn,"User-Agent")" identifier (argument_list "(conn,"User-Agent")" ( identifier , (string_literal ""User-Agent"" " string_content ") )))) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)) {\n      local_50 = (conn->allocptr).uagent;\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0))" ( (binary_expression "(pcVar5 == (char *)0x0) && (local_50 = (data->set).str[0x26], local_50 != (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_50 = (data->set).str[0x26], local_50 != (char *)0x0)" ( (comma_expression "local_50 = (data->set).str[0x26], local_50 != (char *)0x0" (assignment_expression "local_50 = (data->set).str[0x26]" identifier = (subscript_expression "(data->set).str[0x26]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) , (binary_expression "local_50 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_50 = (conn->allocptr).uagent;\n    }" { (expression_statement "local_50 = (conn->allocptr).uagent;" (assignment_expression "local_50 = (conn->allocptr).uagent" identifier = (field_expression "(conn->allocptr).uagent" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier)) ;) })) }) (else_clause "else {\n    (*Curl_cfree)(pcVar5);\n    (conn->allocptr).uagent = (char *)0x0;\n    local_50 = (char *)0x0;\n  }" else (compound_statement "{\n    (*Curl_cfree)(pcVar5);\n    (conn->allocptr).uagent = (char *)0x0;\n    local_50 = (char *)0x0;\n  }" { (expression_statement "(*Curl_cfree)(pcVar5);" (call_expression "(*Curl_cfree)(pcVar5)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "(conn->allocptr).uagent = (char *)0x0;" (assignment_expression "(conn->allocptr).uagent = (char *)0x0" (field_expression "(conn->allocptr).uagent" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "CVar9 = Curl_http_output_auth(conn,local_68,local_64,false);" (assignment_expression "CVar9 = Curl_http_output_auth(conn,local_68,local_64,false)" identifier = (call_expression "Curl_http_output_auth(conn,local_68,local_64,false)" identifier (argument_list "(conn,local_68,local_64,false)" ( identifier , identifier , identifier , false )))) ;) (if_statement "if (CVar9 != CURLE_OK) goto LAB_00058f70;" if (parenthesized_expression "(CVar9 != CURLE_OK)" ( (binary_expression "CVar9 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) (expression_statement "pcVar5 = (conn->allocptr).proxyuserpwd;" (assignment_expression "pcVar5 = (conn->allocptr).proxyuserpwd" identifier = (field_expression "(conn->allocptr).proxyuserpwd" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar8 = (conn->allocptr).userpwd;" (assignment_expression "pcVar8 = (conn->allocptr).userpwd" identifier = (field_expression "(conn->allocptr).userpwd" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*Curl_cfree)((conn->allocptr).ref);" (call_expression "(*Curl_cfree)((conn->allocptr).ref)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "((conn->allocptr).ref)" ( (field_expression "(conn->allocptr).ref" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "pcVar6 = (data->change).referer;" (assignment_expression "pcVar6 = (data->change).referer" identifier = (field_expression "(data->change).referer" (parenthesized_expression "(data->change)" ( (field_expression "data->change" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(conn->allocptr).ref = (char *)0x0;" (assignment_expression "(conn->allocptr).ref = (char *)0x0" (field_expression "(conn->allocptr).ref" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)\n     ) {\n    (conn->allocptr).ref = (char *)0x0;\n    local_3c = (char *)0x0;\n  }\n  else {\n    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);\n    (conn->allocptr).ref = local_3c;\n  }" if (parenthesized_expression "((pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)\n     )" ( (binary_expression "(pcVar6 == (char *)0x0) || (pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)" (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = Curl_checkheaders(conn,"Referer"), pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = Curl_checkheaders(conn,"Referer")" identifier = (call_expression "Curl_checkheaders(conn,"Referer")" identifier (argument_list "(conn,"Referer")" ( identifier , (string_literal ""Referer"" " string_content ") )))) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    (conn->allocptr).ref = (char *)0x0;\n    local_3c = (char *)0x0;\n  }" { (expression_statement "(conn->allocptr).ref = (char *)0x0;" (assignment_expression "(conn->allocptr).ref = (char *)0x0" (field_expression "(conn->allocptr).ref" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);\n    (conn->allocptr).ref = local_3c;\n  }" else (compound_statement "{\n    local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);\n    (conn->allocptr).ref = local_3c;\n  }" { (expression_statement "local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer);" (assignment_expression "local_3c = curl_maprintf("Referer: %s\r\n",(data->change).referer)" identifier = (call_expression "curl_maprintf("Referer: %s\r\n",(data->change).referer)" identifier (argument_list "("Referer: %s\r\n",(data->change).referer)" ( (string_literal ""Referer: %s\r\n"" " string_content escape_sequence escape_sequence ") , (field_expression "(data->change).referer" (parenthesized_expression "(data->change)" ( (field_expression "data->change" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "(conn->allocptr).ref = local_3c;" (assignment_expression "(conn->allocptr).ref = local_3c" (field_expression "(conn->allocptr).ref" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) (if_statement "if (((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||\n     ((data->state).range == (char *)0x0)) {\n    local_34 = (char *)0x0;\n  }\n  else {\n    (*Curl_cfree)((conn->allocptr).rangeline);\n    (conn->allocptr).rangeline = (char *)0x0;\n    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);\n    (conn->allocptr).rangeline = local_34;\n  }" if (parenthesized_expression "(((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||\n     ((data->state).range == (char *)0x0))" ( (binary_expression "((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)) ||\n     ((data->state).range == (char *)0x0)" (parenthesized_expression "((((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0))" ( (binary_expression "(((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)) ||\n      (pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)" (parenthesized_expression "(((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE))" ( (binary_expression "((data->state).use_range == false) ||\n       ((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)" (parenthesized_expression "((data->state).use_range == false)" ( (binary_expression "(data->state).use_range == false" (field_expression "(data->state).use_range" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "((CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE)" ( (binary_expression "(CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)) == RTSPREQ_NONE" (parenthesized_expression "(CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE))" ( (binary_expression "CVar2 & (RTSPREQ_LAST|RTSPREQ_ANNOUNCE)" identifier & (parenthesized_expression "(RTSPREQ_LAST|RTSPREQ_ANNOUNCE)" ( (binary_expression "RTSPREQ_LAST|RTSPREQ_ANNOUNCE" identifier | identifier) ))) )) == identifier) ))) )) || (parenthesized_expression "(pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = Curl_checkheaders(conn,"Range"), pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = Curl_checkheaders(conn,"Range")" identifier = (call_expression "Curl_checkheaders(conn,"Range")" identifier (argument_list "(conn,"Range")" ( identifier , (string_literal ""Range"" " string_content ") )))) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "((data->state).range == (char *)0x0)" ( (binary_expression "(data->state).range == (char *)0x0" (field_expression "(data->state).range" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    local_34 = (char *)0x0;\n  }" { (expression_statement "local_34 = (char *)0x0;" (assignment_expression "local_34 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    (*Curl_cfree)((conn->allocptr).rangeline);\n    (conn->allocptr).rangeline = (char *)0x0;\n    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);\n    (conn->allocptr).rangeline = local_34;\n  }" else (compound_statement "{\n    (*Curl_cfree)((conn->allocptr).rangeline);\n    (conn->allocptr).rangeline = (char *)0x0;\n    local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);\n    (conn->allocptr).rangeline = local_34;\n  }" { (expression_statement "(*Curl_cfree)((conn->allocptr).rangeline);" (call_expression "(*Curl_cfree)((conn->allocptr).rangeline)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "((conn->allocptr).rangeline)" ( (field_expression "(conn->allocptr).rangeline" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "(conn->allocptr).rangeline = (char *)0x0;" (assignment_expression "(conn->allocptr).rangeline = (char *)0x0" (field_expression "(conn->allocptr).rangeline" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = curl_maprintf("Range: %s\r\n",(data->state).range);" (assignment_expression "local_34 = curl_maprintf("Range: %s\r\n",(data->state).range)" identifier = (call_expression "curl_maprintf("Range: %s\r\n",(data->state).range)" identifier (argument_list "("Range: %s\r\n",(data->state).range)" ( (string_literal ""Range: %s\r\n"" " string_content escape_sequence escape_sequence ") , (field_expression "(data->state).range" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "(conn->allocptr).rangeline = local_34;" (assignment_expression "(conn->allocptr).rangeline = local_34" (field_expression "(conn->allocptr).rangeline" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) (expression_statement "pcVar6 = Curl_checkheaders(conn,"CSeq");" (assignment_expression "pcVar6 = Curl_checkheaders(conn,"CSeq")" identifier = (call_expression "Curl_checkheaders(conn,"CSeq")" identifier (argument_list "(conn,"CSeq")" ( identifier , (string_literal ""CSeq"" " string_content ") )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    CVar9 = CURLE_RTSP_CSEQ_ERROR;\n    Curl_failf(data,"CSeq cannot be set as a custom header.");\n    goto LAB_00058f70;\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    CVar9 = CURLE_RTSP_CSEQ_ERROR;\n    Curl_failf(data,"CSeq cannot be set as a custom header.");\n    goto LAB_00058f70;\n  }" { (expression_statement "CVar9 = CURLE_RTSP_CSEQ_ERROR;" (assignment_expression "CVar9 = CURLE_RTSP_CSEQ_ERROR" identifier = identifier) ;) (expression_statement "Curl_failf(data,"CSeq cannot be set as a custom header.");" (call_expression "Curl_failf(data,"CSeq cannot be set as a custom header.")" identifier (argument_list "(data,"CSeq cannot be set as a custom header.")" ( identifier , (string_literal ""CSeq cannot be set as a custom header."" " string_content ") ))) ;) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;) })) (expression_statement "pcVar6 = Curl_checkheaders(conn,"Session");" (assignment_expression "pcVar6 = Curl_checkheaders(conn,"Session")" identifier = (call_expression "Curl_checkheaders(conn,"Session")" identifier (argument_list "(conn,"Session")" ( identifier , (string_literal ""Session"" " string_content ") )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    pcVar5 = "Session ID cannot be set as a custom header.";\n    goto LAB_00059451;\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = "Session ID cannot be set as a custom header.";\n    goto LAB_00059451;\n  }" { (expression_statement "pcVar5 = "Session ID cannot be set as a custom header.";" (assignment_expression "pcVar5 = "Session ID cannot be set as a custom header."" identifier = (string_literal ""Session ID cannot be set as a custom header."" " string_content ")) ;) (goto_statement "goto LAB_00059451;" goto statement_identifier ;) })) (expression_statement "req_buffer = Curl_add_buffer_init();" (assignment_expression "req_buffer = Curl_add_buffer_init()" identifier = (call_expression "Curl_add_buffer_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (req_buffer == (Curl_send_buffer *)0x0) goto LAB_000595e0;" if (parenthesized_expression "(req_buffer == (Curl_send_buffer *)0x0)" ( (binary_expression "req_buffer == (Curl_send_buffer *)0x0" identifier == (cast_expression "(Curl_send_buffer *)0x0" ( (type_descriptor "Curl_send_buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000595e0;" goto statement_identifier ;)) (expression_statement "CVar9 = Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500));" (assignment_expression "CVar9 = Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500))" identifier = (call_expression "Curl_add_bufferf(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500))" identifier (argument_list "(&req_buffer,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,local_64,\n                           *(undefined4 *)((int)pvVar3 + 500))" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""%s %s RTSP/1.0\r\nCSeq: %ld\r\n"" " string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier , (pointer_expression "*(undefined4 *)((int)pvVar3 + 500)" * (cast_expression "(undefined4 *)((int)pvVar3 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 500)" ( (binary_expression "(int)pvVar3 + 500" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if ((CVar9 != CURLE_OK) ||\n     ((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))))\n  goto LAB_00058f70;" if (parenthesized_expression "((CVar9 != CURLE_OK) ||\n     ((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))))" ( (binary_expression "(CVar9 != CURLE_OK) ||\n     ((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK)))" (parenthesized_expression "(CVar9 != CURLE_OK)" ( (binary_expression "CVar9 != CURLE_OK" identifier != identifier) )) || (parenthesized_expression "((local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK)))" ( (parenthesized_expression "(local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK))" ( (binary_expression "local_4c != (char *)0x0 &&\n      (CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK)" (binary_expression "local_4c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK)" ( (comma_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c), CVar9 != CURLE_OK" (assignment_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c)" identifier = (call_expression "Curl_add_bufferf(&req_buffer,"Session: %s\r\n",local_4c)" identifier (argument_list "(&req_buffer,"Session: %s\r\n",local_4c)" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""Session: %s\r\n"" " string_content escape_sequence escape_sequence ") , identifier )))) , (binary_expression "CVar9 != CURLE_OK" identifier != identifier)) ))) )) ))) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n    pcVar8 = pcVar6;\n  }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar8 = pcVar6;\n  }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) })) (if_statement "if (pcVar5 == (char *)0x0) {\n    pcVar5 = pcVar6;\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = pcVar6;\n  }" { (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) })) (if_statement "if (local_50 == (char *)0x0) {\n    local_50 = pcVar6;\n  }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_50 = pcVar6;\n  }" { (expression_statement "local_50 = pcVar6;" (assignment_expression "local_50 = pcVar6" identifier = identifier) ;) })) (if_statement "if (local_3c == (char *)0x0) {\n    local_3c = pcVar6;\n  }" if (parenthesized_expression "(local_3c == (char *)0x0)" ( (binary_expression "local_3c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_3c = pcVar6;\n  }" { (expression_statement "local_3c = pcVar6;" (assignment_expression "local_3c = pcVar6" identifier = identifier) ;) })) (if_statement "if (local_34 == (char *)0x0) {\n    local_34 = pcVar6;\n  }" if (parenthesized_expression "(local_34 == (char *)0x0)" ( (binary_expression "local_34 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_34 = pcVar6;\n  }" { (expression_statement "local_34 = pcVar6;" (assignment_expression "local_34 = pcVar6" identifier = identifier) ;) })) (if_statement "if (local_54 == (char *)0x0) {\n    local_54 = pcVar6;\n  }" if (parenthesized_expression "(local_54 == (char *)0x0)" ( (binary_expression "local_54 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_54 = pcVar6;\n  }" { (expression_statement "local_54 = pcVar6;" (assignment_expression "local_54 = pcVar6" identifier = identifier) ;) })) (if_statement "if (local_48 == (char *)0x0) {\n    local_48 = pcVar6;\n  }" if (parenthesized_expression "(local_48 == (char *)0x0)" ( (binary_expression "local_48 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_48 = pcVar6;\n  }" { (expression_statement "local_48 = pcVar6;" (assignment_expression "local_48 = pcVar6" identifier = identifier) ;) })) (if_statement "if (local_58 != (char *)0x0) {\n    pcVar6 = local_58;\n  }" if (parenthesized_expression "(local_58 != (char *)0x0)" ( (binary_expression "local_58 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar6 = local_58;\n  }" { (expression_statement "pcVar6 = local_58;" (assignment_expression "pcVar6 = local_58" identifier = identifier) ;) })) (expression_statement "CVar9 = Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8);" (assignment_expression "CVar9 = Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8)" identifier = (call_expression "Curl_add_bufferf(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8)" identifier (argument_list "(&req_buffer,"%s%s%s%s%s%s%s%s",pcVar6,local_48,local_54,local_34,local_3c\n                           ,local_50,pcVar5,pcVar8)" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""%s%s%s%s%s%s%s%s"" " string_content ") , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*Curl_cfree)((conn->allocptr).userpwd);" (call_expression "(*Curl_cfree)((conn->allocptr).userpwd)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "((conn->allocptr).userpwd)" ( (field_expression "(conn->allocptr).userpwd" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "(conn->allocptr).userpwd = (char *)0x0;" (assignment_expression "(conn->allocptr).userpwd = (char *)0x0" (field_expression "(conn->allocptr).userpwd" (parenthesized_expression "(conn->allocptr)" ( (field_expression "conn->allocptr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||\n     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)) goto LAB_00058f70;" if (parenthesized_expression "(((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||\n     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK))" ( (binary_expression "((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))) ||\n     (CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)" (parenthesized_expression "((CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK))))" ( (binary_expression "(CVar9 != CURLE_OK) ||\n      (((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))" (parenthesized_expression "(CVar9 != CURLE_OK)" ( (binary_expression "CVar9 != CURLE_OK" identifier != identifier) )) || (parenthesized_expression "(((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)))" ( (parenthesized_expression "((CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK))" ( (binary_expression "(CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0 &&\n       (CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)" (binary_expression "(CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd) == 0" (parenthesized_expression "(CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd)" ( (binary_expression "CVar2 - RTSPREQ_DESCRIBE & 0xfffffffd" (binary_expression "CVar2 - RTSPREQ_DESCRIBE" identifier - identifier) & number_literal) )) == number_literal) && (parenthesized_expression "(CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK)" ( (comma_expression "CVar9 = Curl_add_timecondition(data,req_buffer), CVar9 != CURLE_OK" (assignment_expression "CVar9 = Curl_add_timecondition(data,req_buffer)" identifier = (call_expression "Curl_add_timecondition(data,req_buffer)" identifier (argument_list "(data,req_buffer)" ( identifier , identifier )))) , (binary_expression "CVar9 != CURLE_OK" identifier != identifier)) ))) )) ))) )) || (parenthesized_expression "(CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK)" ( (comma_expression "CVar9 = Curl_add_custom_headers(conn,false,req_buffer), CVar9 != CURLE_OK" (assignment_expression "CVar9 = Curl_add_custom_headers(conn,false,req_buffer)" identifier = (call_expression "Curl_add_custom_headers(conn,false,req_buffer)" identifier (argument_list "(conn,false,req_buffer)" ( identifier , false , identifier )))) , (binary_expression "CVar9 != CURLE_OK" identifier != identifier)) ))) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) (if_statement "if ((CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2)) {\n    local_58 = (char *)(data->state).infilesize;\n    local_54 = *(char **)((int)&(data->state).infilesize + 4);\n    if ((data->set).upload == false) {\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }\n    else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }\n    if (-1 < cVar4) {\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }\n    pcVar5 = Curl_checkheaders(conn,"Content-Length");\n    if (pcVar5 == (char *)0x0) {\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }\n    if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }\n    else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }\n    (data->state).expect100header = false;\n    (data->req).forbidchunk = true;\n    CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }\n  }\n  else {\n    local_58 = (char *)0x0;\n    local_54 = (char *)0x0;\nLAB_0005930c:\n    pcVar5 = "\r\n";\n    (data->req).forbidchunk = true;\n    local_64 = (char *)0x2;\nLAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  }" if (parenthesized_expression "((CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2))" ( (binary_expression "(CVar2 == RTSPREQ_ANNOUNCE) || (CVar2 - RTSPREQ_GET_PARAMETER < 2)" (parenthesized_expression "(CVar2 == RTSPREQ_ANNOUNCE)" ( (binary_expression "CVar2 == RTSPREQ_ANNOUNCE" identifier == identifier) )) || (parenthesized_expression "(CVar2 - RTSPREQ_GET_PARAMETER < 2)" ( (binary_expression "CVar2 - RTSPREQ_GET_PARAMETER < 2" (binary_expression "CVar2 - RTSPREQ_GET_PARAMETER" identifier - identifier) < number_literal) ))) )) (compound_statement "{\n    local_58 = (char *)(data->state).infilesize;\n    local_54 = *(char **)((int)&(data->state).infilesize + 4);\n    if ((data->set).upload == false) {\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }\n    else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }\n    if (-1 < cVar4) {\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }\n    pcVar5 = Curl_checkheaders(conn,"Content-Length");\n    if (pcVar5 == (char *)0x0) {\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }\n    if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }\n    else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }\n    (data->state).expect100header = false;\n    (data->req).forbidchunk = true;\n    CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }\n  }" { (expression_statement "local_58 = (char *)(data->state).infilesize;" (assignment_expression "local_58 = (char *)(data->state).infilesize" identifier = (cast_expression "(char *)(data->state).infilesize" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(data->state).infilesize" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_54 = *(char **)((int)&(data->state).infilesize + 4);" (assignment_expression "local_54 = *(char **)((int)&(data->state).infilesize + 4)" identifier = (pointer_expression "*(char **)((int)&(data->state).infilesize + 4)" * (cast_expression "(char **)((int)&(data->state).infilesize + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(data->state).infilesize + 4)" ( (binary_expression "(int)&(data->state).infilesize + 4" (cast_expression "(int)&(data->state).infilesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(data->state).infilesize" & (field_expression "(data->state).infilesize" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((data->set).upload == false) {\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }\n    else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }" if (parenthesized_expression "((data->set).upload == false)" ( (binary_expression "(data->set).upload == false" (field_expression "(data->set).upload" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n      local_64 = local_58;\n      local_60 = (uint)local_54;\n      if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }\n      local_58 = (char *)0x0;\n      (data->set).httpreq = HTTPREQ_POST;\n      local_54 = (char *)0x0;\n      cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);\n    }" { (expression_statement "local_64 = local_58;" (assignment_expression "local_64 = local_58" identifier = identifier) ;) (expression_statement "local_60 = (uint)local_54;" (assignment_expression "local_60 = (uint)local_54" identifier = (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((uint)local_54 & (uint)local_58) == 0xffffffff) {\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }" if (parenthesized_expression "(((uint)local_54 & (uint)local_58) == 0xffffffff)" ( (binary_expression "((uint)local_54 & (uint)local_58) == 0xffffffff" (parenthesized_expression "((uint)local_54 & (uint)local_58)" ( (binary_expression "(uint)local_54 & (uint)local_58" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) )) (compound_statement "{\n        pcVar5 = (char *)(data->set).postfields;\n        local_64 = (char *)0x0;\n        local_60 = 0;\n        if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }\n      }" { (expression_statement "pcVar5 = (char *)(data->set).postfields;" (assignment_expression "pcVar5 = (char *)(data->set).postfields" identifier = (cast_expression "(char *)(data->set).postfields" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(data->set).postfields" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_64 = (char *)0x0;" (assignment_expression "local_64 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (if_statement "if (pcVar5 != (char *)0x0) {\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_64 = (char *)strlen(pcVar5);\n          local_60 = 0;\n        }" { (expression_statement "local_64 = (char *)strlen(pcVar5);" (assignment_expression "local_64 = (char *)strlen(pcVar5)" identifier = (cast_expression "(char *)strlen(pcVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) })) })) (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(data->set).httpreq = HTTPREQ_POST;" (assignment_expression "(data->set).httpreq = HTTPREQ_POST" (field_expression "(data->set).httpreq" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "local_54 = (char *)0x0;" (assignment_expression "local_54 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18);" (assignment_expression "cVar4 = (char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18)" identifier = (cast_expression "(char)((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18)" ( (binary_expression "(((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64) >> 0x18" (binary_expression "(((int)local_60 >> 0x1f) - local_60) -\n                     (uint)((uint)((int)local_60 >> 0x1f) < local_64)" (parenthesized_expression "(((int)local_60 >> 0x1f) - local_60)" ( (binary_expression "((int)local_60 >> 0x1f) - local_60" (parenthesized_expression "((int)local_60 >> 0x1f)" ( (binary_expression "(int)local_60 >> 0x1f" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) - identifier) )) - (call_expression "(uint)((uint)((int)local_60 >> 0x1f) < local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)local_60 >> 0x1f) < local_64)" ( (binary_expression "(uint)((int)local_60 >> 0x1f) < local_64" (call_expression "(uint)((int)local_60 >> 0x1f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_60 >> 0x1f)" ( (binary_expression "(int)local_60 >> 0x1f" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) < identifier) )))) >> number_literal) )))) ;) }) (else_clause "else {\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }" else (compound_statement "{\n      (data->set).httpreq = HTTPREQ_PUT;\n      cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);\n      local_64 = (char *)0x0;\n      local_60 = 0;\n    }" { (expression_statement "(data->set).httpreq = HTTPREQ_PUT;" (assignment_expression "(data->set).httpreq = HTTPREQ_PUT" (field_expression "(data->set).httpreq" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18);" (assignment_expression "cVar4 = (char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18)" identifier = (cast_expression "(char)((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18)" ( (binary_expression "(((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58) >> 0x18" (binary_expression "(((int)local_54 >> 0x1f) - (int)local_54) -\n                     (uint)((uint)((int)local_54 >> 0x1f) < local_58)" (parenthesized_expression "(((int)local_54 >> 0x1f) - (int)local_54)" ( (binary_expression "((int)local_54 >> 0x1f) - (int)local_54" (parenthesized_expression "((int)local_54 >> 0x1f)" ( (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)((uint)((int)local_54 >> 0x1f) < local_58)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)local_54 >> 0x1f) < local_58)" ( (binary_expression "(uint)((int)local_54 >> 0x1f) < local_58" (call_expression "(uint)((int)local_54 >> 0x1f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_54 >> 0x1f)" ( (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) < identifier) )))) >> number_literal) )))) ;) (expression_statement "local_64 = (char *)0x0;" (assignment_expression "local_64 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) }))) (if_statement "if (-1 < cVar4) {\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }" if (parenthesized_expression "(-1 < cVar4)" ( (binary_expression "-1 < cVar4" number_literal < identifier) )) (compound_statement "{\n      if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }\n      goto LAB_0005930c;\n    }" { (if_statement "if (CVar2 == RTSPREQ_GET_PARAMETER) {\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }" if (parenthesized_expression "(CVar2 == RTSPREQ_GET_PARAMETER)" ( (binary_expression "CVar2 == RTSPREQ_GET_PARAMETER" identifier == identifier) )) (compound_statement "{\n        (data->set).httpreq = HTTPREQ_HEAD;\n        (data->set).opt_no_body = true;\n      }" { (expression_statement "(data->set).httpreq = HTTPREQ_HEAD;" (assignment_expression "(data->set).httpreq = HTTPREQ_HEAD" (field_expression "(data->set).httpreq" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(data->set).opt_no_body = true;" (assignment_expression "(data->set).opt_no_body = true" (field_expression "(data->set).opt_no_body" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) = true) ;) })) (goto_statement "goto LAB_0005930c;" goto statement_identifier ;) })) (expression_statement "pcVar5 = Curl_checkheaders(conn,"Content-Length");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"Content-Length")" identifier = (call_expression "Curl_checkheaders(conn,"Content-Length")" identifier (argument_list "(conn,"Content-Length")" ( identifier , (string_literal ""Content-Length"" " string_content ") )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = local_58;\n      pcVar8 = local_54;\n      if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }\n      CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);\n      if (CVar9 != CURLE_OK) goto LAB_00058f70;\n    }" { (expression_statement "pcVar5 = local_58;" (assignment_expression "pcVar5 = local_58" identifier = identifier) ;) (expression_statement "pcVar8 = local_54;" (assignment_expression "pcVar8 = local_54" identifier = identifier) ;) (if_statement "if ((data->set).upload == false) {\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }" if (parenthesized_expression "((data->set).upload == false)" ( (binary_expression "(data->set).upload == false" (field_expression "(data->set).upload" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n        pcVar5 = local_64;\n        pcVar8 = (char *)local_60;\n      }" { (expression_statement "pcVar5 = local_64;" (assignment_expression "pcVar5 = local_64" identifier = identifier) ;) (expression_statement "pcVar8 = (char *)local_60;" (assignment_expression "pcVar8 = (char *)local_60" identifier = (cast_expression "(char *)local_60" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8);" (assignment_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8)" identifier = (call_expression "Curl_add_bufferf(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8)" identifier (argument_list "(&req_buffer,"Content-Length: %lld\r\n",pcVar5,pcVar8)" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""Content-Length: %lld\r\n"" " string_content escape_sequence escape_sequence ") , identifier , identifier )))) ;) (if_statement "if (CVar9 != CURLE_OK) goto LAB_00058f70;" if (parenthesized_expression "(CVar9 != CURLE_OK)" ( (binary_expression "CVar9 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) })) (if_statement "if (CVar2 - RTSPREQ_GET_PARAMETER < 2) {\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }\n    else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }" if (parenthesized_expression "(CVar2 - RTSPREQ_GET_PARAMETER < 2)" ( (binary_expression "CVar2 - RTSPREQ_GET_PARAMETER < 2" (binary_expression "CVar2 - RTSPREQ_GET_PARAMETER" identifier - identifier) < number_literal) )) (compound_statement "{\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;\n      if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;\n    }" { (expression_statement "pcVar5 = Curl_checkheaders(conn,"Content-Type");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"Content-Type")" identifier = (call_expression "Curl_checkheaders(conn,"Content-Type")" identifier (argument_list "(conn,"Content-Type")" ( identifier , (string_literal ""Content-Type"" " string_content ") )))) ;) (if_statement "if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)) goto LAB_00058f70;" if (parenthesized_expression "((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK))" ( (binary_expression "(pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK)" ( (comma_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0),\n         CVar9 != CURLE_OK" (assignment_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0)" identifier = (call_expression "Curl_add_bufferf(&req_buffer,"Content-Type: text/parameters\r\n",0,0)" identifier (argument_list "(&req_buffer,"Content-Type: text/parameters\r\n",0,0)" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""Content-Type: text/parameters\r\n"" " string_content escape_sequence escape_sequence ") , number_literal , number_literal )))) , (binary_expression "CVar9 != CURLE_OK" identifier != identifier)) ))) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) (if_statement "if (CVar2 == RTSPREQ_ANNOUNCE) goto LAB_00059825;" if (parenthesized_expression "(CVar2 == RTSPREQ_ANNOUNCE)" ( (binary_expression "CVar2 == RTSPREQ_ANNOUNCE" identifier == identifier) )) (goto_statement "goto LAB_00059825;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }" else (compound_statement "{\nLAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");\n      if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;\n    }" { (labeled_statement "LAB_00059825:\n      pcVar5 = Curl_checkheaders(conn,"Content-Type");" statement_identifier : (expression_statement "pcVar5 = Curl_checkheaders(conn,"Content-Type");" (assignment_expression "pcVar5 = Curl_checkheaders(conn,"Content-Type")" identifier = (call_expression "Curl_checkheaders(conn,"Content-Type")" identifier (argument_list "(conn,"Content-Type")" ( identifier , (string_literal ""Content-Type"" " string_content ") )))) ;)) (if_statement "if ((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)) goto LAB_00058f70;" if (parenthesized_expression "((pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK))" ( (binary_expression "(pcVar5 == (char *)0x0) &&\n         (CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK)" ( (comma_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX), CVar9 != CURLE_OK" (assignment_expression "CVar9 = Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX)" identifier = (call_expression "Curl_add_bufferf(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX)" identifier (argument_list "(&req_buffer,"Content-Type: application/sdp\r\n",extraout_ECX,\n                                   extraout_ECX)" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""Content-Type: application/sdp\r\n"" " string_content escape_sequence escape_sequence ") , identifier , identifier )))) , (binary_expression "CVar9 != CURLE_OK" identifier != identifier)) ))) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) }))) (expression_statement "(data->state).expect100header = false;" (assignment_expression "(data->state).expect100header = false" (field_expression "(data->state).expect100header" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "(data->req).forbidchunk = true;" (assignment_expression "(data->req).forbidchunk = true" (field_expression "(data->req).forbidchunk" (parenthesized_expression "(data->req)" ( (field_expression "data->req" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2);" (assignment_expression "CVar9 = Curl_add_buffer(&req_buffer,"\r\n",2)" identifier = (call_expression "Curl_add_buffer(&req_buffer,"\r\n",2)" identifier (argument_list "(&req_buffer,"\r\n",2)" ( (pointer_expression "&req_buffer" & identifier) , (string_literal ""\r\n"" " escape_sequence escape_sequence ") , number_literal )))) ;) (if_statement "if (CVar9 != CURLE_OK) goto LAB_00058f70;" if (parenthesized_expression "(CVar9 != CURLE_OK)" ( (binary_expression "CVar9 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) (if_statement "if ((int)-local_60 < (int)(uint)(local_64 != (char *)0x0)) {\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }" if (parenthesized_expression "((int)-local_60 < (int)(uint)(local_64 != (char *)0x0))" ( (binary_expression "(int)-local_60 < (int)(uint)(local_64 != (char *)0x0)" (cast_expression "(int)-local_60" ( (type_descriptor "int" primitive_type) ) (unary_expression "-local_60" - identifier)) < (cast_expression "(int)(uint)(local_64 != (char *)0x0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(local_64 != (char *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_64 != (char *)0x0)" ( (binary_expression "local_64 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) )) (compound_statement "{\n      pcVar5 = (char *)(data->set).postfields;\n      goto LAB_0005931f;\n    }" { (expression_statement "pcVar5 = (char *)(data->set).postfields;" (assignment_expression "pcVar5 = (char *)(data->set).postfields" identifier = (cast_expression "(char *)(data->set).postfields" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(data->set).postfields" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier))) ;) (goto_statement "goto LAB_0005931f;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_58 = (char *)0x0;\n    local_54 = (char *)0x0;\nLAB_0005930c:\n    pcVar5 = "\r\n";\n    (data->req).forbidchunk = true;\n    local_64 = (char *)0x2;\nLAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  }" else (compound_statement "{\n    local_58 = (char *)0x0;\n    local_54 = (char *)0x0;\nLAB_0005930c:\n    pcVar5 = "\r\n";\n    (data->req).forbidchunk = true;\n    local_64 = (char *)0x2;\nLAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);\n    if (CVar9 != CURLE_OK) goto LAB_00058f70;\n  }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54 = (char *)0x0;" (assignment_expression "local_54 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0005930c:\n    pcVar5 = "\r\n";" statement_identifier : (expression_statement "pcVar5 = "\r\n";" (assignment_expression "pcVar5 = "\r\n"" identifier = (string_literal ""\r\n"" " escape_sequence escape_sequence ")) ;)) (expression_statement "(data->req).forbidchunk = true;" (assignment_expression "(data->req).forbidchunk = true" (field_expression "(data->req).forbidchunk" (parenthesized_expression "(data->req)" ( (field_expression "data->req" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "local_64 = (char *)0x2;" (assignment_expression "local_64 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0005931f:\n    CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);" statement_identifier : (expression_statement "CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64);" (assignment_expression "CVar9 = Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64)" identifier = (call_expression "Curl_add_buffer(&req_buffer,pcVar5,(size_t)local_64)" identifier (argument_list "(&req_buffer,pcVar5,(size_t)local_64)" ( (pointer_expression "&req_buffer" & identifier) , identifier , (cast_expression "(size_t)local_64" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;)) (if_statement "if (CVar9 != CURLE_OK) goto LAB_00058f70;" if (parenthesized_expression "(CVar9 != CURLE_OK)" ( (binary_expression "CVar9 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_00058f70;" goto statement_identifier ;)) }))) (expression_statement "CVar9 = Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0);" (assignment_expression "CVar9 = Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0)" identifier = (call_expression "Curl_add_buffer_send(&req_buffer,conn,&(data->info).request_size,0,0)" identifier (argument_list "(&req_buffer,conn,&(data->info).request_size,0,0)" ( (pointer_expression "&req_buffer" & identifier) , identifier , (pointer_expression "&(data->info).request_size" & (field_expression "(data->info).request_size" (parenthesized_expression "(data->info)" ( (field_expression "data->info" identifier -> field_identifier) )) . field_identifier)) , number_literal , number_literal )))) ;) (if_statement "if (CVar9 == CURLE_OK) {\n    iVar7 = -1;\n    local_30 = (curl_off_t *)0x0;\n    if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);\n    plVar1 = &(data->state).rtsp_next_client_CSeq;\n    *plVar1 = *plVar1 + 1;\n    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }\n  }\n  else {\n    Curl_failf(data,"Failed sending RTSP request");\n  }" if (parenthesized_expression "(CVar9 == CURLE_OK)" ( (binary_expression "CVar9 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n    iVar7 = -1;\n    local_30 = (curl_off_t *)0x0;\n    if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }\n    Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);\n    plVar1 = &(data->state).rtsp_next_client_CSeq;\n    *plVar1 = *plVar1 + 1;\n    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }\n  }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "local_30 = (curl_off_t *)0x0;" (assignment_expression "local_30 = (curl_off_t *)0x0" identifier = (cast_expression "(curl_off_t *)0x0" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_54 != (char *)0x0 || local_58 != (char *)0x0) {\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }" if (parenthesized_expression "(local_54 != (char *)0x0 || local_58 != (char *)0x0)" ( (binary_expression "local_54 != (char *)0x0 || local_58 != (char *)0x0" (binary_expression "local_54 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_58 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      local_30 = (curl_off_t *)((int)pvVar3 + 0x20);\n      iVar7 = 0;\n    }" { (expression_statement "local_30 = (curl_off_t *)((int)pvVar3 + 0x20);" (assignment_expression "local_30 = (curl_off_t *)((int)pvVar3 + 0x20)" identifier = (cast_expression "(curl_off_t *)((int)pvVar3 + 0x20)" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x20)" ( (binary_expression "(int)pvVar3 + 0x20" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30);" (call_expression "Curl_setup_transfer(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30)" identifier (argument_list "(conn,0,-1,true,(curl_off_t *)((int)pvVar3 + 0x18),iVar7,local_30)" ( identifier , number_literal , number_literal , true , (cast_expression "(curl_off_t *)((int)pvVar3 + 0x18)" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x18)" ( (binary_expression "(int)pvVar3 + 0x18" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "plVar1 = &(data->state).rtsp_next_client_CSeq;" (assignment_expression "plVar1 = &(data->state).rtsp_next_client_CSeq" identifier = (pointer_expression "&(data->state).rtsp_next_client_CSeq" & (field_expression "(data->state).rtsp_next_client_CSeq" (parenthesized_expression "(data->state)" ( (field_expression "data->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*plVar1 = *plVar1 + 1;" (assignment_expression "*plVar1 = *plVar1 + 1" (pointer_expression "*plVar1" * identifier) = (binary_expression "*plVar1 + 1" (pointer_expression "*plVar1" * identifier) + number_literal)) ;) (if_statement "if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }" if (parenthesized_expression "(*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0)" ( (binary_expression "*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0" (binary_expression "*(int *)((int)pvVar3 + 0x24) != 0" (pointer_expression "*(int *)((int)pvVar3 + 0x24)" * (cast_expression "(int *)((int)pvVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x24)" ( (binary_expression "(int)pvVar3 + 0x24" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) || (binary_expression "*(int *)((int)pvVar3 + 0x20) != 0" (pointer_expression "*(int *)((int)pvVar3 + 0x20)" * (cast_expression "(int *)((int)pvVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x20)" ( (binary_expression "(int)pvVar3 + 0x20" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal)) )) (compound_statement "{\n      Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));\n      iVar7 = Curl_pgrsUpdate(conn);\n      if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }\n    }" { (expression_statement "Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20));" (call_expression "Curl_pgrsSetUploadCounter(data,*(curl_off_t *)((int)pvVar3 + 0x20))" identifier (argument_list "(data,*(curl_off_t *)((int)pvVar3 + 0x20))" ( identifier , (pointer_expression "*(curl_off_t *)((int)pvVar3 + 0x20)" * (cast_expression "(curl_off_t *)((int)pvVar3 + 0x20)" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x20)" ( (binary_expression "(int)pvVar3 + 0x20" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar7 = Curl_pgrsUpdate(conn);" (assignment_expression "iVar7 = Curl_pgrsUpdate(conn)" identifier = (call_expression "Curl_pgrsUpdate(conn)" identifier (argument_list "(conn)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        CVar9 = CURLE_ABORTED_BY_CALLBACK;\n      }" { (expression_statement "CVar9 = CURLE_ABORTED_BY_CALLBACK;" (assignment_expression "CVar9 = CURLE_ABORTED_BY_CALLBACK" identifier = identifier) ;) })) })) }) (else_clause "else {\n    Curl_failf(data,"Failed sending RTSP request");\n  }" else (compound_statement "{\n    Curl_failf(data,"Failed sending RTSP request");\n  }" { (expression_statement "Curl_failf(data,"Failed sending RTSP request");" (call_expression "Curl_failf(data,"Failed sending RTSP request")" identifier (argument_list "(data,"Failed sending RTSP request")" ( identifier , (string_literal ""Failed sending RTSP request"" " string_content ") ))) ;) }))) (labeled_statement "LAB_00058f70:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar9;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar9;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return CVar9;\n  }" { (return_statement "return CVar9;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined4 __regparm2 FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    \n  FUN_0007c1a0();\n}\n\n" (function_definition "undefined4 __regparm2 FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    \n  FUN_0007c1a0();\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined1 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    \n  FUN_0007c1a0();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (expression_statement "entry(param_2,0x58ec9);" (call_expression "entry(param_2,0x58ec9)" identifier (argument_list "(param_2,0x58ec9)" ( identifier , number_literal ))) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *unaff_retaddr;" (assignment_expression "iVar2 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xaa0);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xaa0)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xaa0)" * (cast_expression "(uint *)(iVar2 + 0xaa0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xaa0)" ( (binary_expression "iVar2 + 0xaa0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 0x148);" (assignment_expression "iVar4 = *(int *)(iVar2 + 0x148)" identifier = (pointer_expression "*(int *)(iVar2 + 0x148)" * (cast_expression "(int *)(iVar2 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x148)" ( (binary_expression "iVar2 + 0x148" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);" (assignment_expression "*(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0)" (pointer_expression "*(undefined4 *)(iVar4 + 500)" * (cast_expression "(undefined4 *)(iVar4 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 500)" ( (binary_expression "iVar4 + 500" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar2 + 0xec0)" * (cast_expression "(undefined4 *)(iVar2 + 0xec0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xec0)" ( (binary_expression "iVar2 + 0xec0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x1f8)" * (cast_expression "(undefined4 *)(iVar4 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1f8)" ( (binary_expression "iVar4 + 0x1f8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar2 + 0x934) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0x934) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0x934)" * (cast_expression "(undefined1 *)(iVar2 + 0x934)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x934)" ( (binary_expression "iVar2 + 0x934" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }" if (parenthesized_expression "(uVar3 < 0xd)" ( (binary_expression "uVar3 < 0xd" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }" { (expression_statement "uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();" (assignment_expression "uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" * (cast_expression "(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" ( (binary_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917" (binary_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX" (pointer_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4)" * (cast_expression "(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x2cfd7 + uVar3 * 4)" ( (binary_expression "unaff_EBX + 0x2cfd7 + uVar3 * 4" (binary_expression "unaff_EBX + 0x2cfd7" identifier + number_literal) + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar5;" return identifier ;) })) (expression_statement "FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);" (call_expression "FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX)" identifier (argument_list "(iVar2,&UNK_0002ced7 + unaff_EBX)" ( identifier , (binary_expression "&UNK_0002ced7 + unaff_EBX" (pointer_expression "&UNK_0002ced7" & identifier) + identifier) ))) ;) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0x2b;\n  }" { (return_statement "return 0x2b;" return number_literal ;) })) (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) + IDENT) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined4 __regparm2 FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    \n  FUN_0007c1a0();\n}" (type_identifier "undefined4") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_00058ec0(undefined4 param_1,undefined4 param_2,undefined1 *param_3)" (identifier "FUN_00058ec0") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined1 *param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined1 *param_3" (type_identifier "undefined1") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  \n  entry(param_2,0x58ec9);\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = *unaff_retaddr;\n  uVar3 = *(uint *)(iVar2 + 0xaa0);\n  iVar4 = *(int *)(iVar2 + 0x148);\n  *param_3 = 1;\n  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);\n  *(undefined4 *)(iVar4 + 0x1f8) = 0;\n  *(undefined1 *)(iVar2 + 0x934) = 1;\n  if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }\n  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }\n                    \n  FUN_0007c1a0();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int *unaff_retaddr;" (primitive_type "int") (pointer_declarator "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (; ";")) (expression_statement "entry(param_2,0x58ec9);" (call_expression "entry(param_2,0x58ec9)" (identifier "entry") (argument_list "(param_2,0x58ec9)" (( "(") (identifier "param_2") (, ",") (number_literal "0x58ec9") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar2 = *unaff_retaddr;" (assignment_expression "iVar2 = *unaff_retaddr" (identifier "iVar2") (= "=") (pointer_expression "*unaff_retaddr" (* "*") (identifier "unaff_retaddr"))) (; ";")) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xaa0);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xaa0)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar2 + 0xaa0)" (* "*") (cast_expression "(uint *)(iVar2 + 0xaa0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xaa0)" (( "(") (binary_expression "iVar2 + 0xaa0" (identifier "iVar2") (+ "+") (number_literal "0xaa0")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar2 + 0x148);" (assignment_expression "iVar4 = *(int *)(iVar2 + 0x148)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar2 + 0x148)" (* "*") (cast_expression "(int *)(iVar2 + 0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x148)" (( "(") (binary_expression "iVar2 + 0x148" (identifier "iVar2") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);" (assignment_expression "*(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0)" (pointer_expression "*(undefined4 *)(iVar4 + 500)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 500)" (( "(") (binary_expression "iVar4 + 500" (identifier "iVar4") (+ "+") (number_literal "500")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0xec0)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0xec0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xec0)" (( "(") (binary_expression "iVar2 + 0xec0" (identifier "iVar2") (+ "+") (number_literal "0xec0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1f8)" (( "(") (binary_expression "iVar4 + 0x1f8" (identifier "iVar4") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar2 + 0x934) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0x934) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0x934)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0x934)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x934)" (( "(") (binary_expression "iVar2 + 0x934" (identifier "iVar2") (+ "+") (number_literal "0x934")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar3 < 0xd) {\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(uVar3 < 0xd)" (( "(") (binary_expression "uVar3 < 0xd" (identifier "uVar3") (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n                    \n                    \n    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();\n    return uVar5;\n  }" ({ "{") (expression_statement "uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();" (assignment_expression "uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))()" (identifier "uVar5") (= "=") (call_expression "(*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917)" (( "(") (binary_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917" (binary_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX" (pointer_expression "*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4)" (* "*") (cast_expression "(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0x2cfd7 + uVar3 * 4)" (( "(") (binary_expression "unaff_EBX + 0x2cfd7 + uVar3 * 4" (binary_expression "unaff_EBX + 0x2cfd7" (identifier "unaff_EBX") (+ "+") (number_literal "0x2cfd7")) (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "0x57917")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}"))) (expression_statement "FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);" (call_expression "FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX)" (identifier "FUN_00027240") (argument_list "(iVar2,&UNK_0002ced7 + unaff_EBX)" (( "(") (identifier "iVar2") (, ",") (binary_expression "&UNK_0002ced7 + unaff_EBX" (pointer_expression "&UNK_0002ced7" (& "&") (identifier "UNK_0002ced7")) (+ "+") (identifier "unaff_EBX")) () ")"))) (; ";")) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0x2b;\n  }" (if "if") (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return 0x2b;\n  }" ({ "{") (return_statement "return 0x2b;" (return "return") (number_literal "0x2b") (; ";")) (} "}"))) (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" (identifier "FUN_0007c1a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *conn,type_3 *done)

{
  long *plVar1;
  type_4 *data;
  type_5 var_7;
  void *pvVar3;
  char var_34;
  char *var_6;
  char *var_18;
  int var_39;
  type_6 extraout_ECX;
  char *var_25;
  type_1 var_16;
  int var_1;
  char *local_68;
  char *var_3;
  type_7 var_33;
  char *var_9;
  char *var_13;
  char *var_14;
  char *var_2;
  char *var_28;
  char *var_26;
  char *var_27;
  type_8 *local_30;
  type_9 *var_23;
  int var_40;
  type_6 uStack_14;
  
  uStack_14 = 0x58ec9;
  var_40 = *(int *)(var_1 + 0x14);
  data = conn->data;
  var_7 = (data->set).rtspreq;
  pvVar3 = (data->req).protop;
  *done = true;
  *(long *)((int)pvVar3 + 500) = (data->state).rtsp_next_client_CSeq;
  *(type_6 *)((int)pvVar3 + 0x1f8) = 0;
  (data->set).opt_no_body = true;
  switch(var_7) {
  default:
    var_6 = "Got invalid RTSP request";
    goto LAB_00059451;
  case RTSPREQ_OPTIONS:
    local_68 = "OPTIONS";
    break;
  case var_12:
    (data->set).opt_no_body = false;
    local_68 = "DESCRIBE";
    break;
  case var_20:
    var_2 = (data->set).str[0x32];
    if (var_2 == (char *)0x0) {
      local_68 = "ANNOUNCE";
      goto LAB_00058faa;
    }
    var_3 = (data->set).str[0x33];
    if (var_3 == (char *)0x0) {
      var_9 = var_4(conn,"Transport");
      var_3 = "*";
      local_68 = "ANNOUNCE";
      goto LAB_00059530;
    }
    var_9 = var_4(conn,"Transport");
    local_68 = "ANNOUNCE";
    var_13 = (char *)0x0;
    var_28 = (char *)0x0;
    goto LAB_0005904b;
  case var_8:
    local_68 = "SETUP";
    break;
  case RTSPREQ_PLAY:
    local_68 = "PLAY";
    break;
  case RTSPREQ_PAUSE:
    local_68 = "PAUSE";
    break;
  case RTSPREQ_TEARDOWN:
    local_68 = "TEARDOWN";
    break;
  case var_31:
    (data->set).opt_no_body = false;
    local_68 = "GET_PARAMETER";
    goto LAB_000593f2;
  case RTSPREQ_SET_PARAMETER:
    local_68 = "SET_PARAMETER";
    goto LAB_000593f2;
  case RTSPREQ_RECORD:
    local_68 = "RECORD";
LAB_000593f2:
    var_2 = (data->set).str[0x32];
    if (var_2 != (char *)0x0) goto LAB_00058faa;
    var_6 = "Refusing to issue an RTSP request [%s] without a session ID.";
    goto LAB_00059451;
  case RTSPREQ_RECEIVE:
    (data->set).opt_no_body = false;
    var_16 = var_17;
    var_5(conn,0,-1,true,(type_8 *)((int)pvVar3 + 0x18),-1,(type_8 *)0x0);
    goto LAB_00058f70;
  case var_19:
    var_6 = "Got invalid RTSP request: RTSPREQ_LAST";
    goto LAB_00059451;
  }
  var_2 = (data->set).str[0x32];
LAB_00058faa:
  var_6 = (data->set).str[0x33];
  var_3 = "*";
  if (var_6 != (char *)0x0) {
    var_3 = var_6;
  }
  var_9 = var_4(conn,"Transport");
  if ((var_7 == var_8) && (var_9 == (char *)0x0)) {
    if ((data->set).str[0x34] != (char *)0x0) {
      (*Curl_cfree)((conn->allocptr).rtsp_transport);
      (conn->allocptr).rtsp_transport = (char *)0x0;
      var_9 = var_10("Transport: %s\r\n",(data->set).str[0x34]);
      (conn->allocptr).rtsp_transport = var_9;
      var_13 = (char *)0x0;
      var_28 = (char *)0x0;
      if (var_9 != (char *)0x0) goto LAB_0005904b;
LAB_000595e0:
      var_16 = CURLE_OUT_OF_MEMORY;
      goto LAB_00058f70;
    }
    var_6 = "Refusing to issue an RTSP SETUP without a Transport: header.";
LAB_00059451:
    var_16 = CURLE_BAD_FUNCTION_ARGUMENT;
    var_11(data,var_6);
    goto LAB_00058f70;
  }
LAB_00059530:
  if (var_7 == var_12) {
    var_6 = var_4(conn,"Accept");
    var_28 = (char *)0x0;
    if (var_6 == (char *)0x0) {
      var_28 = "Accept: application/sdp\r\n";
    }
    var_6 = var_4(conn,"Accept-Encoding");
    var_13 = (char *)0x0;
    if ((var_6 == (char *)0x0) && (var_13 = (data->set).str[9], var_13 != (char *)0x0)) {
      (*Curl_cfree)((conn->allocptr).accept_encoding);
      (conn->allocptr).accept_encoding = (char *)0x0;
      var_13 = var_10("Accept-Encoding: %s\r\n",(data->set).str[9]);
      (conn->allocptr).accept_encoding = var_13;
      if (var_13 == (char *)0x0) goto LAB_000595e0;
    }
  }
  else {
    var_13 = (char *)0x0;
    var_28 = (char *)0x0;
  }
LAB_0005904b:
  var_6 = var_4(conn,"User-Agent");
  if ((var_6 == (char *)0x0) || (var_6 = (conn->allocptr).uagent, var_6 == (char *)0x0)) {
    var_6 = var_4(conn,"User-Agent");
    var_14 = (char *)0x0;
    if ((var_6 == (char *)0x0) && (var_14 = (data->set).str[0x26], var_14 != (char *)0x0)) {
      var_14 = (conn->allocptr).uagent;
    }
  }
  else {
    (*Curl_cfree)(var_6);
    (conn->allocptr).uagent = (char *)0x0;
    var_14 = (char *)0x0;
  }
  var_16 = var_15(conn,local_68,var_3,false);
  if (var_16 != var_17) goto LAB_00058f70;
  var_6 = (conn->allocptr).proxyuserpwd;
  var_25 = (conn->allocptr).userpwd;
  (*Curl_cfree)((conn->allocptr).ref);
  var_18 = (data->change).referer;
  (conn->allocptr).ref = (char *)0x0;
  if ((var_18 == (char *)0x0) || (var_18 = var_4(conn,"Referer"), var_18 != (char *)0x0)
     ) {
    (conn->allocptr).ref = (char *)0x0;
    var_26 = (char *)0x0;
  }
  else {
    var_26 = var_10("Referer: %s\r\n",(data->change).referer);
    (conn->allocptr).ref = var_26;
  }
  if (((((data->state).use_range == false) ||
       ((var_7 & (var_19|var_20)) == var_21)) ||
      (var_18 = var_4(conn,"Range"), var_18 != (char *)0x0)) ||
     ((data->state).range == (char *)0x0)) {
    var_27 = (char *)0x0;
  }
  else {
    (*Curl_cfree)((conn->allocptr).rangeline);
    (conn->allocptr).rangeline = (char *)0x0;
    var_27 = var_10("Range: %s\r\n",(data->state).range);
    (conn->allocptr).rangeline = var_27;
  }
  var_18 = var_4(conn,"CSeq");
  if (var_18 != (char *)0x0) {
    var_16 = CURLE_RTSP_CSEQ_ERROR;
    var_11(data,"CSeq cannot be set as a custom header.");
    goto LAB_00058f70;
  }
  var_18 = var_4(conn,"Session");
  if (var_18 != (char *)0x0) {
    var_6 = "Session ID cannot be set as a custom header.";
    goto LAB_00059451;
  }
  var_23 = var_22();
  if (var_23 == (type_9 *)0x0) goto LAB_000595e0;
  var_16 = var_24(&var_23,"%s %s RTSP/1.0\r\nCSeq: %ld\r\n",local_68,var_3,
                           *(type_6 *)((int)pvVar3 + 500));
  if ((var_16 != var_17) ||
     ((var_2 != (char *)0x0 &&
      (var_16 = var_24(&var_23,"Session: %s\r\n",var_2), var_16 != var_17))))
  goto LAB_00058f70;
  var_18 = "";
  if (var_25 == (char *)0x0) {
    var_25 = var_18;
  }
  if (var_6 == (char *)0x0) {
    var_6 = var_18;
  }
  if (var_14 == (char *)0x0) {
    var_14 = var_18;
  }
  if (var_26 == (char *)0x0) {
    var_26 = var_18;
  }
  if (var_27 == (char *)0x0) {
    var_27 = var_18;
  }
  if (var_13 == (char *)0x0) {
    var_13 = var_18;
  }
  if (var_28 == (char *)0x0) {
    var_28 = var_18;
  }
  if (var_9 != (char *)0x0) {
    var_18 = var_9;
  }
  var_16 = var_24(&var_23,"%s%s%s%s%s%s%s%s",var_18,var_28,var_13,var_27,var_26
                           ,var_14,var_6,var_25);
  (*Curl_cfree)((conn->allocptr).userpwd);
  (conn->allocptr).userpwd = (char *)0x0;
  if (((var_16 != var_17) ||
      (((var_7 - var_12 & 0xfffffffd) == 0 &&
       (var_16 = var_29(data,var_23), var_16 != var_17)))) ||
     (var_16 = var_30(conn,false,var_23), var_16 != var_17)) goto LAB_00058f70;
  if ((var_7 == var_20) || (var_7 - var_31 < 2)) {
    var_9 = (char *)(data->state).infilesize;
    var_13 = *(char **)((int)&(data->state).infilesize + 4);
    if ((data->set).upload == false) {
      var_3 = var_9;
      var_33 = (type_7)var_13;
      if (((type_7)var_13 & (type_7)var_9) == 0xffffffff) {
        var_6 = (char *)(data->set).postfields;
        var_3 = (char *)0x0;
        var_33 = 0;
        if (var_6 != (char *)0x0) {
          var_3 = (char *)var_32(var_6);
          var_33 = 0;
        }
      }
      var_9 = (char *)0x0;
      (data->set).httpreq = HTTPREQ_POST;
      var_13 = (char *)0x0;
      var_34 = (char)((((int)var_33 >> 0x1f) - var_33) -
                     (type_7)((type_7)((int)var_33 >> 0x1f) < var_3) >> 0x18);
    }
    else {
      (data->set).httpreq = HTTPREQ_PUT;
      var_34 = (char)((((int)var_13 >> 0x1f) - (int)var_13) -
                     (type_7)((type_7)((int)var_13 >> 0x1f) < var_9) >> 0x18);
      var_3 = (char *)0x0;
      var_33 = 0;
    }
    if (-1 < var_34) {
      if (var_7 == var_31) {
        (data->set).httpreq = HTTPREQ_HEAD;
        (data->set).opt_no_body = true;
      }
      goto LAB_0005930c;
    }
    var_6 = var_4(conn,"Content-Length");
    if (var_6 == (char *)0x0) {
      var_6 = var_9;
      var_25 = var_13;
      if ((data->set).upload == false) {
        var_6 = var_3;
        var_25 = (char *)var_33;
      }
      var_16 = var_24(&var_23,"Content-Length: %lld\r\n",var_6,var_25);
      if (var_16 != var_17) goto LAB_00058f70;
    }
    if (var_7 - var_31 < 2) {
      var_6 = var_4(conn,"Content-Type");
      if ((var_6 == (char *)0x0) &&
         (var_16 = var_24(&var_23,"Content-Type: text/parameters\r\n",0,0),
         var_16 != var_17)) goto LAB_00058f70;
      if (var_7 == var_20) goto LAB_00059825;
    }
    else {
LAB_00059825:
      var_6 = var_4(conn,"Content-Type");
      if ((var_6 == (char *)0x0) &&
         (var_16 = var_24(&var_23,"Content-Type: application/sdp\r\n",extraout_ECX,
                                   extraout_ECX), var_16 != var_17)) goto LAB_00058f70;
    }
    (data->state).expect100header = false;
    (data->req).forbidchunk = true;
    var_16 = var_35(&var_23,"\r\n",2);
    if (var_16 != var_17) goto LAB_00058f70;
    if ((int)-var_33 < (int)(type_7)(var_3 != (char *)0x0)) {
      var_6 = (char *)(data->set).postfields;
      goto LAB_0005931f;
    }
  }
  else {
    var_9 = (char *)0x0;
    var_13 = (char *)0x0;
LAB_0005930c:
    var_6 = "\r\n";
    (data->req).forbidchunk = true;
    var_3 = (char *)0x2;
LAB_0005931f:
    var_16 = var_35(&var_23,var_6,(size_t)var_3);
    if (var_16 != var_17) goto LAB_00058f70;
  }
  var_16 = var_36(&var_23,conn,&(data->info).request_size,0,0);
  if (var_16 == var_17) {
    var_39 = -1;
    local_30 = (type_8 *)0x0;
    if (var_13 != (char *)0x0 || var_9 != (char *)0x0) {
      local_30 = (type_8 *)((int)pvVar3 + 0x20);
      var_39 = 0;
    }
    var_5(conn,0,-1,true,(type_8 *)((int)pvVar3 + 0x18),var_39,local_30);
    plVar1 = &(data->state).rtsp_next_client_CSeq;
    *plVar1 = *plVar1 + 1;
    if (*(int *)((int)pvVar3 + 0x24) != 0 || *(int *)((int)pvVar3 + 0x20) != 0) {
      var_37(data,*(type_8 *)((int)pvVar3 + 0x20));
      var_39 = var_38(conn);
      if (var_39 != 0) {
        var_16 = CURLE_ABORTED_BY_CALLBACK;
      }
    }
  }
  else {
    var_11(data,"Failed sending RTSP request");
  }
LAB_00058f70:
  if (var_40 == *(int *)(var_1 + 0x14)) {
    return var_16;
  }
                    /* WARNING: Subroutine does not return */
  var_41();
}


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

undefined4 __regparm2 MASKED(undefined4 param_1,undefined4 param_2,undefined1 *param_3)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int unaff_EBX;
  int in_GS_OFFSET;
  int *unaff_retaddr;
  
  entry(param_2,0x58ec9);
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = *unaff_retaddr;
  uVar3 = *(uint *)(iVar2 + 0xaa0);
  iVar4 = *(int *)(iVar2 + 0x148);
  *param_3 = 1;
  *(undefined4 *)(iVar4 + 500) = *(undefined4 *)(iVar2 + 0xec0);
  *(undefined4 *)(iVar4 + 0x1f8) = 0;
  *(undefined1 *)(iVar2 + 0x934) = 1;
  if (uVar3 < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00058f34. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar5 = (*(code *)(*(int *)(unaff_EBX + 0x2cfd7 + uVar3 * 4) + unaff_EBX + 0x57917))();
    return uVar5;
  }
  FUN_00027240(iVar2,&UNK_0002ced7 + unaff_EBX);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return 0x2b;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0007c1a0();
}

