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

size_t __regparm3 readback_part(curl_mimepart *part,char *buffer,size_t bufsize)

{
  size_t *psVar1;
  mimestate mVar2;
  mimekind mVar3;
  uint uVar4;
  char *pcVar5;
  size_t numbytes;
  uint __n;
  _Bool _Var6;
  curl_slist *pcVar7;
  uint uVar8;
  size_t sVar9;
  size_t local_30;
  char *local_2c;
  size_t local_28;
  char *local_24;
  
  local_30 = 0;
  local_2c = buffer;
  if (bufsize == 0) {
    return 0;
  }
LAB_00067066:
  do {
    pcVar7 = (curl_slist *)(part->state).ptr;
    if ((part->state).state < MIMESTATE_LAST) {
LAB_00067073:
      switch((int)&_GLOBAL_OFFSET_TABLE_ +
             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {
      case 0x6709d:
        return local_30;
      case 0x670b0:
        goto _L205;
      case 0x671f0:
        goto _L206;
      case 0x67230:
        goto _L203;
      case 0x67240:
        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");
        if (uVar8 != 0) goto joined_r0x0006737d;
        (part->state).state = MIMESTATE_BODY;
        (part->state).ptr = (void *)0x0;
        (part->state).offset = 0;
        goto LAB_00067066;
      case 0x67290:
        if (pcVar7 == (curl_slist *)0x0) {
          (part->state).state = MIMESTATE_EOH;
          (part->state).ptr = (void *)0x0;
          (part->state).offset = 0;
          goto LAB_00067066;
        }
        pcVar5 = match_header(pcVar7,"Content-Type",0xc);
        if (pcVar5 != (char *)0x0) {
          pcVar7 = pcVar7->next;
          (part->state).state = MIMESTATE_USERHEADERS;
          (part->state).offset = 0;
          (part->state).ptr = pcVar7;
          goto LAB_00067066;
        }
        break;
      case 0x672d0:
        if (pcVar7 == (curl_slist *)0x0) {
          pcVar7 = part->userheaders;
          (part->state).state = MIMESTATE_USERHEADERS;
          (part->state).offset = 0;
          (part->state).ptr = pcVar7;
          goto LAB_00067066;
        }
        break;
      case 0x672f8:
        uVar8 = part->flags;
        pcVar7 = part->curlheaders;
        (part->state).offset = 0;
        (part->state).ptr = pcVar7;
        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;
        goto LAB_00067066;
      }
      pcVar5 = pcVar7->data;
      numbytes = strlen(pcVar5);
      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,
                             "\r\n");
      if (sVar9 == 0) {
        pcVar7 = pcVar7->next;
        (part->state).offset = 0;
        (part->state).ptr = pcVar7;
        goto LAB_00067066;
      }
      bufsize = bufsize - sVar9;
      local_30 = local_30 + sVar9;
      local_2c = local_2c + sVar9;
      goto joined_r0x000674c4;
    }
_L203:
joined_r0x000674c4:
    if (bufsize == 0) {
      return local_30;
    }
  } while( true );
_L205:
  if (part->encoder == (mime_encoder *)0x0) {
    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;
    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);
  }
  else {
    uVar8 = 0;
    _Var6 = false;
    local_24 = local_2c;
    local_28 = bufsize;
LAB_000670cb:
    uVar4 = (part->encstate).bufbeg;
    __n = (part->encstate).bufend;
    if (uVar4 < __n) goto LAB_00067138;
LAB_000670d5:
    if (_Var6 == false) goto LAB_00067183;
    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);
    if (0x10000001 < uVar4) goto LAB_00067470;
    if (uVar4 < 0x10000000) {
      if (uVar4 != 0) {
        local_24 = local_24 + uVar4;
        uVar8 = uVar8 + uVar4;
        local_28 = local_28 - uVar4;
LAB_00067122:
        while( true ) {
          if (local_28 == 0) goto joined_r0x00067362;
          uVar4 = (part->encstate).bufbeg;
          __n = (part->encstate).bufend;
          if (__n <= uVar4) break;
LAB_00067138:
          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);
          if (uVar4 < 0x10000002) {
            if (0xfffffff < uVar4) goto LAB_00067409;
            if (uVar4 != 0) goto LAB_00067475;
            if (_Var6 != false) goto joined_r0x00067362;
            uVar4 = (part->encstate).bufbeg;
            __n = (part->encstate).bufend;
LAB_00067183:
            if (uVar4 != 0) {
              __n = __n - uVar4;
              if (__n != 0) {
                pcVar5 = (part->encstate).buf;
                memmove(pcVar5,pcVar5 + uVar4,__n);
              }
              (part->encstate).bufbeg = 0;
              (part->encstate).bufend = __n;
            }
            if (__n < 0x100) {
              if (part->readfunc != (curl_read_callback)0x0) {
                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);
                if (uVar4 < 0x10000002) {
                  if (uVar4 < 0x10000000) goto code_r0x000671cf;
                }
                else if (uVar4 != 0xffffffff) goto LAB_000671dc;
                goto LAB_00067409;
              }
              _Var6 = true;
              goto LAB_000670cb;
            }
            if (uVar8 != 0) goto joined_r0x00067362;
            sVar9 = 0xffffffff;
            goto LAB_00067090;
          }
LAB_00067470:
          if (uVar4 == 0xffffffff) goto LAB_00067409;
LAB_00067475:
          uVar8 = uVar8 + uVar4;
          local_24 = local_24 + uVar4;
          local_28 = local_28 - uVar4;
        }
        goto LAB_000670d5;
      }
    }
    else {
LAB_00067409:
      if (uVar8 == 0) {
        uVar8 = uVar4;
      }
    }
  }
joined_r0x00067362:
  if (uVar8 < 0x10000002) {
    if (0xfffffff < uVar8) {
LAB_00067488:
      if (local_30 == 0) {
        return uVar8;
      }
      return local_30;
    }
    if (uVar8 == 0) {
LAB_0006742a:
      sVar9 = 0;
      mVar3 = part->kind;
      (part->state).state = MIMESTATE_END;
      (part->state).ptr = (void *)0x0;
      (part->state).offset = 0;
      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {
        fclose((FILE *)part->fp);
        part->fp = (FILE *)0x0;
      }
LAB_00067090:
      if (local_30 == 0) {
        return sVar9;
      }
      return local_30;
    }
  }
  else if (uVar8 == 0xffffffff) goto LAB_00067488;
joined_r0x0006737d:
  bufsize = bufsize - uVar8;
  local_2c = local_2c + uVar8;
  local_30 = local_30 + uVar8;
  if (bufsize == 0) {
    return local_30;
  }
  goto LAB_00067066;
code_r0x000671cf:
  _Var6 = true;
  if (uVar4 != 0) {
LAB_000671dc:
    psVar1 = &(part->encstate).bufend;
    *psVar1 = *psVar1 + uVar4;
    _Var6 = false;
    goto LAB_000670cb;
  }
  goto LAB_00067122;
_L206:
  (part->state).state = MIMESTATE_CONTENT;
  mVar2 = (part->state).state;
  (part->state).ptr = (void *)0x0;
  pcVar7 = (curl_slist *)(part->state).ptr;
  (part->encstate).pos = 0;
  (part->encstate).bufbeg = 0;
  (part->encstate).bufend = 0;
  (part->state).offset = 0;
  if (MIMESTATE_END < mVar2) goto _L203;
  goto LAB_00067073;
}



undefined4 __regparm3 FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)

{
  undefined4 uVar1;
  int unaff_EBX;
  int extraout_EBP;
  int iVar2;
  
  iVar2 = param_3;
  entry(param_2,0x6704d);
  do {
    if (param_3 == 0) {
      return 0;
    }
    param_3 = iVar2;
  } while (8 < *(uint *)(extraout_EBP + 0x48));
                    /* WARNING: Could not recover jumptable at 0x0006707f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +
                    unaff_EBX + 0x49793))();
  return uVar1;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
MOV EDI,ECX
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x49793
SUB ESP,0x2c
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0xc],0x0
TEST ECX,ECX
JZ 0x0006709d
CMP dword ptr [EBP + 0x48],0x8
MOV ESI,dword ptr [EBP + 0x4c]
JA 0x00067230
MOV EAX,dword ptr [EBP + 0x48]
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffd69c0]
ADD ECX,EBX
JMP ECX
MOV EAX,dword ptr [ESP + 0xc]
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EDI,EDI
JNZ 0x00067066
JMP 0x0006709d
(translation_unit "undefined4 __regparm3 FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    /* WARNING: Could not recover jumptable at 0x0006707f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    /* WARNING: Could not recover jumptable at 0x0006707f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    /* WARNING: Could not recover jumptable at 0x0006707f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int extraout_EBP;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = param_3;" (assignment_expression "iVar2 = param_3" identifier = identifier) ;) (expression_statement "entry(param_2,0x6704d);" (call_expression "entry(param_2,0x6704d)" identifier (argument_list "(param_2,0x6704d)" ( identifier , number_literal ))) ;) (do_statement "do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));" do (compound_statement "{\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  }" { (if_statement "if (param_3 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "param_3 = iVar2;" (assignment_expression "param_3 = iVar2" identifier = identifier) ;) }) while (parenthesized_expression "(8 < *(uint *)(extraout_EBP + 0x48))" ( (binary_expression "8 < *(uint *)(extraout_EBP + 0x48)" number_literal < (pointer_expression "*(uint *)(extraout_EBP + 0x48)" * (cast_expression "(uint *)(extraout_EBP + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_EBP + 0x48)" ( (binary_expression "extraout_EBP + 0x48" identifier + number_literal) ))))) )) ;) comment comment (expression_statement "uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();" (assignment_expression "uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" * (cast_expression "(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" ( (binary_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793" (binary_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX" (pointer_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" * (cast_expression "(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" ( (binary_expression "unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4" (binary_expression "unaff_EBX + 0x20153" identifier + number_literal) + (binary_expression "*(int *)(extraout_EBP + 0x48) * 4" (pointer_expression "*(int *)(extraout_EBP + 0x48)" * (cast_expression "(int *)(extraout_EBP + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_EBP + 0x48)" ( (binary_expression "extraout_EBP + 0x48" identifier + number_literal) )))) * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nsize_t __regparm3 readback_part(curl_mimepart *part,char *buffer,size_t bufsize)\n\n{\n  size_t *psVar1;\n  mimestate mVar2;\n  mimekind mVar3;\n  uint uVar4;\n  char *pcVar5;\n  size_t numbytes;\n  uint __n;\n  _Bool _Var6;\n  curl_slist *pcVar7;\n  uint uVar8;\n  size_t sVar9;\n  size_t local_30;\n  char *local_2c;\n  size_t local_28;\n  char *local_24;\n  \n  local_30 = 0;\n  local_2c = buffer;\n  if (bufsize == 0) {\n    return 0;\n  }\nLAB_00067066:\n  do {\n    pcVar7 = (curl_slist *)(part->state).ptr;\n    if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }\n_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }\n  } while( true );\n_L205:\n  if (part->encoder == (mime_encoder *)0x0) {\n    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;\n    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);\n  }\n  else {\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }\njoined_r0x00067362:\n  if (uVar8 < 0x10000002) {\n    if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }\n    if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }\n  }\n  else if (uVar8 == 0xffffffff) goto LAB_00067488;\njoined_r0x0006737d:\n  bufsize = bufsize - uVar8;\n  local_2c = local_2c + uVar8;\n  local_30 = local_30 + uVar8;\n  if (bufsize == 0) {\n    return local_30;\n  }\n  goto LAB_00067066;\ncode_r0x000671cf:\n  _Var6 = true;\n  if (uVar4 != 0) {\nLAB_000671dc:\n    psVar1 = &(part->encstate).bufend;\n    *psVar1 = *psVar1 + uVar4;\n    _Var6 = false;\n    goto LAB_000670cb;\n  }\n  goto LAB_00067122;\n_L206:\n  (part->state).state = MIMESTATE_CONTENT;\n  mVar2 = (part->state).state;\n  (part->state).ptr = (void *)0x0;\n  pcVar7 = (curl_slist *)(part->state).ptr;\n  (part->encstate).pos = 0;\n  (part->encstate).bufbeg = 0;\n  (part->encstate).bufend = 0;\n  (part->state).offset = 0;\n  if (MIMESTATE_END < mVar2) goto _L203;\n  goto LAB_00067073;\n}\n\n" comment comment (function_definition "size_t __regparm3 readback_part(curl_mimepart *part,char *buffer,size_t bufsize)\n\n{\n  size_t *psVar1;\n  mimestate mVar2;\n  mimekind mVar3;\n  uint uVar4;\n  char *pcVar5;\n  size_t numbytes;\n  uint __n;\n  _Bool _Var6;\n  curl_slist *pcVar7;\n  uint uVar8;\n  size_t sVar9;\n  size_t local_30;\n  char *local_2c;\n  size_t local_28;\n  char *local_24;\n  \n  local_30 = 0;\n  local_2c = buffer;\n  if (bufsize == 0) {\n    return 0;\n  }\nLAB_00067066:\n  do {\n    pcVar7 = (curl_slist *)(part->state).ptr;\n    if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }\n_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }\n  } while( true );\n_L205:\n  if (part->encoder == (mime_encoder *)0x0) {\n    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;\n    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);\n  }\n  else {\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }\njoined_r0x00067362:\n  if (uVar8 < 0x10000002) {\n    if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }\n    if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }\n  }\n  else if (uVar8 == 0xffffffff) goto LAB_00067488;\njoined_r0x0006737d:\n  bufsize = bufsize - uVar8;\n  local_2c = local_2c + uVar8;\n  local_30 = local_30 + uVar8;\n  if (bufsize == 0) {\n    return local_30;\n  }\n  goto LAB_00067066;\ncode_r0x000671cf:\n  _Var6 = true;\n  if (uVar4 != 0) {\nLAB_000671dc:\n    psVar1 = &(part->encstate).bufend;\n    *psVar1 = *psVar1 + uVar4;\n    _Var6 = false;\n    goto LAB_000670cb;\n  }\n  goto LAB_00067122;\n_L206:\n  (part->state).state = MIMESTATE_CONTENT;\n  mVar2 = (part->state).state;\n  (part->state).ptr = (void *)0x0;\n  pcVar7 = (curl_slist *)(part->state).ptr;\n  (part->encstate).pos = 0;\n  (part->encstate).bufbeg = 0;\n  (part->encstate).bufend = 0;\n  (part->state).offset = 0;\n  if (MIMESTATE_END < mVar2) goto _L203;\n  goto LAB_00067073;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "readback_part(curl_mimepart *part,char *buffer,size_t bufsize)" identifier (parameter_list "(curl_mimepart *part,char *buffer,size_t bufsize)" ( (parameter_declaration "curl_mimepart *part" type_identifier (pointer_declarator "*part" * identifier)) , (parameter_declaration "char *buffer" primitive_type (pointer_declarator "*buffer" * identifier)) , (parameter_declaration "size_t bufsize" primitive_type identifier) ))) (compound_statement "{\n  size_t *psVar1;\n  mimestate mVar2;\n  mimekind mVar3;\n  uint uVar4;\n  char *pcVar5;\n  size_t numbytes;\n  uint __n;\n  _Bool _Var6;\n  curl_slist *pcVar7;\n  uint uVar8;\n  size_t sVar9;\n  size_t local_30;\n  char *local_2c;\n  size_t local_28;\n  char *local_24;\n  \n  local_30 = 0;\n  local_2c = buffer;\n  if (bufsize == 0) {\n    return 0;\n  }\nLAB_00067066:\n  do {\n    pcVar7 = (curl_slist *)(part->state).ptr;\n    if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }\n_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }\n  } while( true );\n_L205:\n  if (part->encoder == (mime_encoder *)0x0) {\n    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;\n    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);\n  }\n  else {\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }\njoined_r0x00067362:\n  if (uVar8 < 0x10000002) {\n    if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }\n    if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }\n  }\n  else if (uVar8 == 0xffffffff) goto LAB_00067488;\njoined_r0x0006737d:\n  bufsize = bufsize - uVar8;\n  local_2c = local_2c + uVar8;\n  local_30 = local_30 + uVar8;\n  if (bufsize == 0) {\n    return local_30;\n  }\n  goto LAB_00067066;\ncode_r0x000671cf:\n  _Var6 = true;\n  if (uVar4 != 0) {\nLAB_000671dc:\n    psVar1 = &(part->encstate).bufend;\n    *psVar1 = *psVar1 + uVar4;\n    _Var6 = false;\n    goto LAB_000670cb;\n  }\n  goto LAB_00067122;\n_L206:\n  (part->state).state = MIMESTATE_CONTENT;\n  mVar2 = (part->state).state;\n  (part->state).ptr = (void *)0x0;\n  pcVar7 = (curl_slist *)(part->state).ptr;\n  (part->encstate).pos = 0;\n  (part->encstate).bufbeg = 0;\n  (part->encstate).bufend = 0;\n  (part->state).offset = 0;\n  if (MIMESTATE_END < mVar2) goto _L203;\n  goto LAB_00067073;\n}" { (declaration "size_t *psVar1;" primitive_type (pointer_declarator "*psVar1" * identifier) ;) (declaration "mimestate mVar2;" type_identifier identifier ;) (declaration "mimekind mVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t numbytes;" primitive_type identifier ;) (declaration "uint __n;" type_identifier identifier ;) (declaration "_Bool _Var6;" type_identifier identifier ;) (declaration "curl_slist *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "size_t local_30;" primitive_type identifier ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "size_t local_28;" primitive_type identifier ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = buffer;" (assignment_expression "local_2c = buffer" identifier = identifier) ;) (if_statement "if (bufsize == 0) {\n    return 0;\n  }" if (parenthesized_expression "(bufsize == 0)" ( (binary_expression "bufsize == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00067066:\n  do {\n    pcVar7 = (curl_slist *)(part->state).ptr;\n    if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }\n_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    pcVar7 = (curl_slist *)(part->state).ptr;\n    if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }\n_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }\n  } while( true );" do (compound_statement "{\n    pcVar7 = (curl_slist *)(part->state).ptr;\n    if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }\n_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }\n  }" { (expression_statement "pcVar7 = (curl_slist *)(part->state).ptr;" (assignment_expression "pcVar7 = (curl_slist *)(part->state).ptr" identifier = (cast_expression "(curl_slist *)(part->state).ptr" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((part->state).state < MIMESTATE_LAST) {\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }" if (parenthesized_expression "((part->state).state < MIMESTATE_LAST)" ( (binary_expression "(part->state).state < MIMESTATE_LAST" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) < identifier) )) (compound_statement "{\nLAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }\n      pcVar5 = pcVar7->data;\n      numbytes = strlen(pcVar5);\n      sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");\n      if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }\n      bufsize = bufsize - sVar9;\n      local_30 = local_30 + sVar9;\n      local_2c = local_2c + sVar9;\n      goto joined_r0x000674c4;\n    }" { (labeled_statement "LAB_00067073:\n      switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }" statement_identifier : (switch_statement "switch((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }" switch (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state])" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (subscript_expression "(&switchD_0006707f::switchdataD_000871a0)[(part->state).state]" (parenthesized_expression "(&switchD_0006707f::switchdataD_000871a0)" ( (ERROR "&switchD_0006707f::" (pointer_expression "&switchD_0006707f" & identifier) : :) identifier )) [ (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) ])) )) (compound_statement "{\n      case 0x6709d:\n        return local_30;\n      case 0x670b0:\n        goto _L205;\n      case 0x671f0:\n        goto _L206;\n      case 0x67230:\n        goto _L203;\n      case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;\n      case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;\n      case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;\n      }" { (case_statement "case 0x6709d:\n        return local_30;" case number_literal : (return_statement "return local_30;" return identifier ;)) (case_statement "case 0x670b0:\n        goto _L205;" case number_literal : (goto_statement "goto _L205;" goto statement_identifier ;)) (case_statement "case 0x671f0:\n        goto _L206;" case number_literal : (goto_statement "goto _L206;" goto statement_identifier ;)) (case_statement "case 0x67230:\n        goto _L203;" case number_literal : (goto_statement "goto _L203;" goto statement_identifier ;)) (case_statement "case 0x67240:\n        uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");\n        if (uVar8 != 0) goto joined_r0x0006737d;\n        (part->state).state = MIMESTATE_BODY;\n        (part->state).ptr = (void *)0x0;\n        (part->state).offset = 0;\n        goto LAB_00067066;" case number_literal : (expression_statement "uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"");" (assignment_expression "uVar8 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"")" identifier = (call_expression "readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"")" identifier (argument_list "((mime_state *)&(part->state).offset,local_2c,bufsize,"\r\n",2,"")" ( (cast_expression "(mime_state *)&(part->state).offset" ( (type_descriptor "mime_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(part->state).offset" & (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier))) , identifier , identifier , (string_literal ""\r\n"" " escape_sequence escape_sequence ") , number_literal , (string_literal """" " ") )))) ;) (if_statement "if (uVar8 != 0) goto joined_r0x0006737d;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x0006737d;" goto statement_identifier ;)) (expression_statement "(part->state).state = MIMESTATE_BODY;" (assignment_expression "(part->state).state = MIMESTATE_BODY" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(part->state).ptr = (void *)0x0;" (assignment_expression "(part->state).ptr = (void *)0x0" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00067066;" goto statement_identifier ;)) (case_statement "case 0x67290:\n        if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }\n        pcVar5 = match_header(pcVar7,"Content-Type",0xc);\n        if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;" case number_literal : (if_statement "if (pcVar7 == (curl_slist *)0x0) {\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }" if (parenthesized_expression "(pcVar7 == (curl_slist *)0x0)" ( (binary_expression "pcVar7 == (curl_slist *)0x0" identifier == (cast_expression "(curl_slist *)0x0" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (part->state).state = MIMESTATE_EOH;\n          (part->state).ptr = (void *)0x0;\n          (part->state).offset = 0;\n          goto LAB_00067066;\n        }" { (expression_statement "(part->state).state = MIMESTATE_EOH;" (assignment_expression "(part->state).state = MIMESTATE_EOH" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(part->state).ptr = (void *)0x0;" (assignment_expression "(part->state).ptr = (void *)0x0" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00067066;" goto statement_identifier ;) })) (expression_statement "pcVar5 = match_header(pcVar7,"Content-Type",0xc);" (assignment_expression "pcVar5 = match_header(pcVar7,"Content-Type",0xc)" identifier = (call_expression "match_header(pcVar7,"Content-Type",0xc)" identifier (argument_list "(pcVar7,"Content-Type",0xc)" ( identifier , (string_literal ""Content-Type"" " string_content ") , number_literal )))) ;) (if_statement "if (pcVar5 != (char *)0x0) {\n          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\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          pcVar7 = pcVar7->next;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }" { (expression_statement "pcVar7 = pcVar7->next;" (assignment_expression "pcVar7 = pcVar7->next" identifier = (field_expression "pcVar7->next" identifier -> field_identifier)) ;) (expression_statement "(part->state).state = MIMESTATE_USERHEADERS;" (assignment_expression "(part->state).state = MIMESTATE_USERHEADERS" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->state).ptr = pcVar7;" (assignment_expression "(part->state).ptr = pcVar7" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_00067066;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x672d0:\n        if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }\n        break;" case number_literal : (if_statement "if (pcVar7 == (curl_slist *)0x0) {\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }" if (parenthesized_expression "(pcVar7 == (curl_slist *)0x0)" ( (binary_expression "pcVar7 == (curl_slist *)0x0" identifier == (cast_expression "(curl_slist *)0x0" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar7 = part->userheaders;\n          (part->state).state = MIMESTATE_USERHEADERS;\n          (part->state).offset = 0;\n          (part->state).ptr = pcVar7;\n          goto LAB_00067066;\n        }" { (expression_statement "pcVar7 = part->userheaders;" (assignment_expression "pcVar7 = part->userheaders" identifier = (field_expression "part->userheaders" identifier -> field_identifier)) ;) (expression_statement "(part->state).state = MIMESTATE_USERHEADERS;" (assignment_expression "(part->state).state = MIMESTATE_USERHEADERS" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->state).ptr = pcVar7;" (assignment_expression "(part->state).ptr = pcVar7" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_00067066;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x672f8:\n        uVar8 = part->flags;\n        pcVar7 = part->curlheaders;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        (part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;\n        goto LAB_00067066;" case number_literal : (expression_statement "uVar8 = part->flags;" (assignment_expression "uVar8 = part->flags" identifier = (field_expression "part->flags" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = part->curlheaders;" (assignment_expression "pcVar7 = part->curlheaders" identifier = (field_expression "part->curlheaders" identifier -> field_identifier)) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->state).ptr = pcVar7;" (assignment_expression "(part->state).ptr = pcVar7" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY;" (assignment_expression "(part->state).state = (-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(-(uint)((uVar8 & 2) == 0) & 0xfffffffd) + MIMESTATE_BODY" (parenthesized_expression "(-(uint)((uVar8 & 2) == 0) & 0xfffffffd)" ( (binary_expression "-(uint)((uVar8 & 2) == 0) & 0xfffffffd" (unary_expression "-(uint)((uVar8 & 2) == 0)" - (call_expression "(uint)((uVar8 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar8 & 2) == 0)" ( (binary_expression "(uVar8 & 2) == 0" (parenthesized_expression "(uVar8 & 2)" ( (binary_expression "uVar8 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + identifier)) ;) (goto_statement "goto LAB_00067066;" goto statement_identifier ;)) }))) (expression_statement "pcVar5 = pcVar7->data;" (assignment_expression "pcVar5 = pcVar7->data" identifier = (field_expression "pcVar7->data" identifier -> field_identifier)) ;) (expression_statement "numbytes = strlen(pcVar5);" (assignment_expression "numbytes = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n");" (assignment_expression "sVar9 = readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n")" identifier = (call_expression "readback_bytes((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n")" identifier (argument_list "((mime_state *)&(part->state).offset,local_2c,bufsize,pcVar5,numbytes,\n                             "\r\n")" ( (cast_expression "(mime_state *)&(part->state).offset" ( (type_descriptor "mime_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(part->state).offset" & (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier))) , identifier , identifier , identifier , identifier , (string_literal ""\r\n"" " escape_sequence escape_sequence ") )))) ;) (if_statement "if (sVar9 == 0) {\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }" if (parenthesized_expression "(sVar9 == 0)" ( (binary_expression "sVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar7 = pcVar7->next;\n        (part->state).offset = 0;\n        (part->state).ptr = pcVar7;\n        goto LAB_00067066;\n      }" { (expression_statement "pcVar7 = pcVar7->next;" (assignment_expression "pcVar7 = pcVar7->next" identifier = (field_expression "pcVar7->next" identifier -> field_identifier)) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->state).ptr = pcVar7;" (assignment_expression "(part->state).ptr = pcVar7" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_00067066;" goto statement_identifier ;) })) (expression_statement "bufsize = bufsize - sVar9;" (assignment_expression "bufsize = bufsize - sVar9" identifier = (binary_expression "bufsize - sVar9" identifier - identifier)) ;) (expression_statement "local_30 = local_30 + sVar9;" (assignment_expression "local_30 = local_30 + sVar9" identifier = (binary_expression "local_30 + sVar9" identifier + identifier)) ;) (expression_statement "local_2c = local_2c + sVar9;" (assignment_expression "local_2c = local_2c + sVar9" identifier = (binary_expression "local_2c + sVar9" identifier + identifier)) ;) (goto_statement "goto joined_r0x000674c4;" goto statement_identifier ;) })) (labeled_statement "_L203:\njoined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }" statement_identifier : (labeled_statement "joined_r0x000674c4:\n    if (bufsize == 0) {\n      return local_30;\n    }" statement_identifier : (if_statement "if (bufsize == 0) {\n      return local_30;\n    }" if (parenthesized_expression "(bufsize == 0)" ( (binary_expression "bufsize == 0" identifier == number_literal) )) (compound_statement "{\n      return local_30;\n    }" { (return_statement "return local_30;" return identifier ;) })))) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "_L205:\n  if (part->encoder == (mime_encoder *)0x0) {\n    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;\n    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);\n  }\n  else {\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }" statement_identifier : (if_statement "if (part->encoder == (mime_encoder *)0x0) {\n    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;\n    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);\n  }\n  else {\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }" if (parenthesized_expression "(part->encoder == (mime_encoder *)0x0)" ( (binary_expression "part->encoder == (mime_encoder *)0x0" (field_expression "part->encoder" identifier -> field_identifier) == (cast_expression "(mime_encoder *)0x0" ( (type_descriptor "mime_encoder *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;\n    uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);\n  }" { (if_statement "if (part->readfunc == (curl_read_callback)0x0) goto LAB_0006742a;" if (parenthesized_expression "(part->readfunc == (curl_read_callback)0x0)" ( (binary_expression "part->readfunc == (curl_read_callback)0x0" (field_expression "part->readfunc" identifier -> field_identifier) == (cast_expression "(curl_read_callback)0x0" ( (type_descriptor "curl_read_callback" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0006742a;" goto statement_identifier ;)) (expression_statement "uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg);" (assignment_expression "uVar8 = (*part->readfunc)(local_2c,1,bufsize,part->arg)" identifier = (call_expression "(*part->readfunc)(local_2c,1,bufsize,part->arg)" (parenthesized_expression "(*part->readfunc)" ( (pointer_expression "*part->readfunc" * (field_expression "part->readfunc" identifier -> field_identifier)) )) (argument_list "(local_2c,1,bufsize,part->arg)" ( identifier , number_literal , identifier , (field_expression "part->arg" identifier -> field_identifier) )))) ;) }) (else_clause "else {\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }" else (compound_statement "{\n    uVar8 = 0;\n    _Var6 = false;\n    local_24 = local_2c;\n    local_28 = bufsize;\nLAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;\n    __n = (part->encstate).bufend;\n    if (uVar4 < __n) goto LAB_00067138;\nLAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;\n    uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);\n    if (0x10000001 < uVar4) goto LAB_00067470;\n    if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "_Var6 = false;" (assignment_expression "_Var6 = false" identifier = false) ;) (expression_statement "local_24 = local_2c;" (assignment_expression "local_24 = local_2c" identifier = identifier) ;) (expression_statement "local_28 = bufsize;" (assignment_expression "local_28 = bufsize" identifier = identifier) ;) (labeled_statement "LAB_000670cb:\n    uVar4 = (part->encstate).bufbeg;" statement_identifier : (expression_statement "uVar4 = (part->encstate).bufbeg;" (assignment_expression "uVar4 = (part->encstate).bufbeg" identifier = (field_expression "(part->encstate).bufbeg" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "__n = (part->encstate).bufend;" (assignment_expression "__n = (part->encstate).bufend" identifier = (field_expression "(part->encstate).bufend" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar4 < __n) goto LAB_00067138;" if (parenthesized_expression "(uVar4 < __n)" ( (binary_expression "uVar4 < __n" identifier < identifier) )) (goto_statement "goto LAB_00067138;" goto statement_identifier ;)) (labeled_statement "LAB_000670d5:\n    if (_Var6 == false) goto LAB_00067183;" statement_identifier : (if_statement "if (_Var6 == false) goto LAB_00067183;" if (parenthesized_expression "(_Var6 == false)" ( (binary_expression "_Var6 == false" identifier == false) )) (goto_statement "goto LAB_00067183;" goto statement_identifier ;))) (expression_statement "uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part);" (assignment_expression "uVar4 = (*part->encoder->encodefunc)(local_24,local_28,true,part)" identifier = (call_expression "(*part->encoder->encodefunc)(local_24,local_28,true,part)" (parenthesized_expression "(*part->encoder->encodefunc)" ( (pointer_expression "*part->encoder->encodefunc" * (field_expression "part->encoder->encodefunc" (field_expression "part->encoder" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(local_24,local_28,true,part)" ( identifier , identifier , true , identifier )))) ;) (if_statement "if (0x10000001 < uVar4) goto LAB_00067470;" if (parenthesized_expression "(0x10000001 < uVar4)" ( (binary_expression "0x10000001 < uVar4" number_literal < identifier) )) (goto_statement "goto LAB_00067470;" goto statement_identifier ;)) (if_statement "if (uVar4 < 0x10000000) {\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }\n    else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }" if (parenthesized_expression "(uVar4 < 0x10000000)" ( (binary_expression "uVar4 < 0x10000000" identifier < number_literal) )) (compound_statement "{\n      if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }\n    }" { (if_statement "if (uVar4 != 0) {\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        local_24 = local_24 + uVar4;\n        uVar8 = uVar8 + uVar4;\n        local_28 = local_28 - uVar4;\nLAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }\n        goto LAB_000670d5;\n      }" { (expression_statement "local_24 = local_24 + uVar4;" (assignment_expression "local_24 = local_24 + uVar4" identifier = (binary_expression "local_24 + uVar4" identifier + identifier)) ;) (expression_statement "uVar8 = uVar8 + uVar4;" (assignment_expression "uVar8 = uVar8 + uVar4" identifier = (binary_expression "uVar8 + uVar4" identifier + identifier)) ;) (expression_statement "local_28 = local_28 - uVar4;" (assignment_expression "local_28 = local_28 - uVar4" identifier = (binary_expression "local_28 - uVar4" identifier - identifier)) ;) (labeled_statement "LAB_00067122:\n        while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }" statement_identifier : (while_statement "while( true ) {\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (local_28 == 0) goto joined_r0x00067362;\n          uVar4 = (part->encstate).bufbeg;\n          __n = (part->encstate).bufend;\n          if (__n <= uVar4) break;\nLAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);\n          if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }\nLAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;\nLAB_00067475:\n          uVar8 = uVar8 + uVar4;\n          local_24 = local_24 + uVar4;\n          local_28 = local_28 - uVar4;\n        }" { (if_statement "if (local_28 == 0) goto joined_r0x00067362;" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x00067362;" goto statement_identifier ;)) (expression_statement "uVar4 = (part->encstate).bufbeg;" (assignment_expression "uVar4 = (part->encstate).bufbeg" identifier = (field_expression "(part->encstate).bufbeg" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "__n = (part->encstate).bufend;" (assignment_expression "__n = (part->encstate).bufend" identifier = (field_expression "(part->encstate).bufend" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (__n <= uVar4) break;" if (parenthesized_expression "(__n <= uVar4)" ( (binary_expression "__n <= uVar4" identifier <= identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00067138:\n          uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);" statement_identifier : (expression_statement "uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part);" (assignment_expression "uVar4 = (*part->encoder->encodefunc)(local_24,local_28,_Var6,part)" identifier = (call_expression "(*part->encoder->encodefunc)(local_24,local_28,_Var6,part)" (parenthesized_expression "(*part->encoder->encodefunc)" ( (pointer_expression "*part->encoder->encodefunc" * (field_expression "part->encoder->encodefunc" (field_expression "part->encoder" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(local_24,local_28,_Var6,part)" ( identifier , identifier , identifier , identifier )))) ;)) (if_statement "if (uVar4 < 0x10000002) {\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }" if (parenthesized_expression "(uVar4 < 0x10000002)" ( (binary_expression "uVar4 < 0x10000002" identifier < number_literal) )) (compound_statement "{\n            if (0xfffffff < uVar4) goto LAB_00067409;\n            if (uVar4 != 0) goto LAB_00067475;\n            if (_Var6 != false) goto joined_r0x00067362;\n            uVar4 = (part->encstate).bufbeg;\n            __n = (part->encstate).bufend;\nLAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }\n            if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }\n            if (uVar8 != 0) goto joined_r0x00067362;\n            sVar9 = 0xffffffff;\n            goto LAB_00067090;\n          }" { (if_statement "if (0xfffffff < uVar4) goto LAB_00067409;" if (parenthesized_expression "(0xfffffff < uVar4)" ( (binary_expression "0xfffffff < uVar4" number_literal < identifier) )) (goto_statement "goto LAB_00067409;" goto statement_identifier ;)) (if_statement "if (uVar4 != 0) goto LAB_00067475;" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00067475;" goto statement_identifier ;)) (if_statement "if (_Var6 != false) goto joined_r0x00067362;" if (parenthesized_expression "(_Var6 != false)" ( (binary_expression "_Var6 != false" identifier != false) )) (goto_statement "goto joined_r0x00067362;" goto statement_identifier ;)) (expression_statement "uVar4 = (part->encstate).bufbeg;" (assignment_expression "uVar4 = (part->encstate).bufbeg" identifier = (field_expression "(part->encstate).bufbeg" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "__n = (part->encstate).bufend;" (assignment_expression "__n = (part->encstate).bufend" identifier = (field_expression "(part->encstate).bufend" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;) (labeled_statement "LAB_00067183:\n            if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }" statement_identifier : (if_statement "if (uVar4 != 0) {\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              __n = __n - uVar4;\n              if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }\n              (part->encstate).bufbeg = 0;\n              (part->encstate).bufend = __n;\n            }" { (expression_statement "__n = __n - uVar4;" (assignment_expression "__n = __n - uVar4" identifier = (binary_expression "__n - uVar4" identifier - identifier)) ;) (if_statement "if (__n != 0) {\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (compound_statement "{\n                pcVar5 = (part->encstate).buf;\n                memmove(pcVar5,pcVar5 + uVar4,__n);\n              }" { (expression_statement "pcVar5 = (part->encstate).buf;" (assignment_expression "pcVar5 = (part->encstate).buf" identifier = (field_expression "(part->encstate).buf" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "memmove(pcVar5,pcVar5 + uVar4,__n);" (call_expression "memmove(pcVar5,pcVar5 + uVar4,__n)" identifier (argument_list "(pcVar5,pcVar5 + uVar4,__n)" ( identifier , (binary_expression "pcVar5 + uVar4" identifier + identifier) , identifier ))) ;) })) (expression_statement "(part->encstate).bufbeg = 0;" (assignment_expression "(part->encstate).bufbeg = 0" (field_expression "(part->encstate).bufbeg" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->encstate).bufend = __n;" (assignment_expression "(part->encstate).bufend = __n" (field_expression "(part->encstate).bufend" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) (if_statement "if (__n < 0x100) {\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }" if (parenthesized_expression "(__n < 0x100)" ( (binary_expression "__n < 0x100" identifier < number_literal) )) (compound_statement "{\n              if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }\n              _Var6 = true;\n              goto LAB_000670cb;\n            }" { (if_statement "if (part->readfunc != (curl_read_callback)0x0) {\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }" if (parenthesized_expression "(part->readfunc != (curl_read_callback)0x0)" ( (binary_expression "part->readfunc != (curl_read_callback)0x0" (field_expression "part->readfunc" identifier -> field_identifier) != (cast_expression "(curl_read_callback)0x0" ( (type_descriptor "curl_read_callback" type_identifier) ) number_literal)) )) (compound_statement "{\n                uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);\n                if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;\n                goto LAB_00067409;\n              }" { (expression_statement "uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg);" (assignment_expression "uVar4 = (*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg)" identifier = (call_expression "(*part->readfunc)((part->encstate).buf + __n,1,0x100 - __n,part->arg)" (parenthesized_expression "(*part->readfunc)" ( (pointer_expression "*part->readfunc" * (field_expression "part->readfunc" identifier -> field_identifier)) )) (argument_list "((part->encstate).buf + __n,1,0x100 - __n,part->arg)" ( (binary_expression "(part->encstate).buf + __n" (field_expression "(part->encstate).buf" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier) + identifier) , number_literal , (binary_expression "0x100 - __n" number_literal - identifier) , (field_expression "part->arg" identifier -> field_identifier) )))) ;) (if_statement "if (uVar4 < 0x10000002) {\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }\n                else if (uVar4 != 0xffffffff) goto LAB_000671dc;" if (parenthesized_expression "(uVar4 < 0x10000002)" ( (binary_expression "uVar4 < 0x10000002" identifier < number_literal) )) (compound_statement "{\n                  if (uVar4 < 0x10000000) goto code_r0x000671cf;\n                }" { (if_statement "if (uVar4 < 0x10000000) goto code_r0x000671cf;" if (parenthesized_expression "(uVar4 < 0x10000000)" ( (binary_expression "uVar4 < 0x10000000" identifier < number_literal) )) (goto_statement "goto code_r0x000671cf;" goto statement_identifier ;)) }) (else_clause "else if (uVar4 != 0xffffffff) goto LAB_000671dc;" else (if_statement "if (uVar4 != 0xffffffff) goto LAB_000671dc;" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_000671dc;" goto statement_identifier ;)))) (goto_statement "goto LAB_00067409;" goto statement_identifier ;) })) (expression_statement "_Var6 = true;" (assignment_expression "_Var6 = true" identifier = true) ;) (goto_statement "goto LAB_000670cb;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 0) goto joined_r0x00067362;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x00067362;" goto statement_identifier ;)) (expression_statement "sVar9 = 0xffffffff;" (assignment_expression "sVar9 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00067090;" goto statement_identifier ;) })) (labeled_statement "LAB_00067470:\n          if (uVar4 == 0xffffffff) goto LAB_00067409;" statement_identifier : (if_statement "if (uVar4 == 0xffffffff) goto LAB_00067409;" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00067409;" goto statement_identifier ;))) (labeled_statement "LAB_00067475:\n          uVar8 = uVar8 + uVar4;" statement_identifier : (expression_statement "uVar8 = uVar8 + uVar4;" (assignment_expression "uVar8 = uVar8 + uVar4" identifier = (binary_expression "uVar8 + uVar4" identifier + identifier)) ;)) (expression_statement "local_24 = local_24 + uVar4;" (assignment_expression "local_24 = local_24 + uVar4" identifier = (binary_expression "local_24 + uVar4" identifier + identifier)) ;) (expression_statement "local_28 = local_28 - uVar4;" (assignment_expression "local_28 = local_28 - uVar4" identifier = (binary_expression "local_28 - uVar4" identifier - identifier)) ;) }))) (goto_statement "goto LAB_000670d5;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }" else (compound_statement "{\nLAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }\n    }" { (labeled_statement "LAB_00067409:\n      if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }" statement_identifier : (if_statement "if (uVar8 == 0) {\n        uVar8 = uVar4;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = uVar4;\n      }" { (expression_statement "uVar8 = uVar4;" (assignment_expression "uVar8 = uVar4" identifier = identifier) ;) }))) }))) })))) (labeled_statement "joined_r0x00067362:\n  if (uVar8 < 0x10000002) {\n    if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }\n    if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }\n  }\n  else if (uVar8 == 0xffffffff) goto LAB_00067488;" statement_identifier : (if_statement "if (uVar8 < 0x10000002) {\n    if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }\n    if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }\n  }\n  else if (uVar8 == 0xffffffff) goto LAB_00067488;" if (parenthesized_expression "(uVar8 < 0x10000002)" ( (binary_expression "uVar8 < 0x10000002" identifier < number_literal) )) (compound_statement "{\n    if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }\n    if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }\n  }" { (if_statement "if (0xfffffff < uVar8) {\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }" if (parenthesized_expression "(0xfffffff < uVar8)" ( (binary_expression "0xfffffff < uVar8" number_literal < identifier) )) (compound_statement "{\nLAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }\n      return local_30;\n    }" { (labeled_statement "LAB_00067488:\n      if (local_30 == 0) {\n        return uVar8;\n      }" statement_identifier : (if_statement "if (local_30 == 0) {\n        return uVar8;\n      }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n        return uVar8;\n      }" { (return_statement "return uVar8;" return identifier ;) }))) (return_statement "return local_30;" return identifier ;) })) (if_statement "if (uVar8 == 0) {\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006742a:\n      sVar9 = 0;\n      mVar3 = part->kind;\n      (part->state).state = MIMESTATE_END;\n      (part->state).ptr = (void *)0x0;\n      (part->state).offset = 0;\n      if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }\nLAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }\n      return local_30;\n    }" { (labeled_statement "LAB_0006742a:\n      sVar9 = 0;" statement_identifier : (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;)) (expression_statement "mVar3 = part->kind;" (assignment_expression "mVar3 = part->kind" identifier = (field_expression "part->kind" identifier -> field_identifier)) ;) (expression_statement "(part->state).state = MIMESTATE_END;" (assignment_expression "(part->state).state = MIMESTATE_END" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(part->state).ptr = (void *)0x0;" (assignment_expression "(part->state).ptr = (void *)0x0" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (if_statement "if ((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)) {\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }" if (parenthesized_expression "((mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0))" ( (binary_expression "(mVar3 == MIMEKIND_FILE) && ((FILE *)part->fp != (FILE *)0x0)" (parenthesized_expression "(mVar3 == MIMEKIND_FILE)" ( (binary_expression "mVar3 == MIMEKIND_FILE" identifier == identifier) )) && (parenthesized_expression "((FILE *)part->fp != (FILE *)0x0)" ( (binary_expression "(FILE *)part->fp != (FILE *)0x0" (cast_expression "(FILE *)part->fp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "part->fp" identifier -> field_identifier)) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        fclose((FILE *)part->fp);\n        part->fp = (FILE *)0x0;\n      }" { (expression_statement "fclose((FILE *)part->fp);" (call_expression "fclose((FILE *)part->fp)" identifier (argument_list "((FILE *)part->fp)" ( (cast_expression "(FILE *)part->fp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "part->fp" identifier -> field_identifier)) ))) ;) (expression_statement "part->fp = (FILE *)0x0;" (assignment_expression "part->fp = (FILE *)0x0" (field_expression "part->fp" identifier -> field_identifier) = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_00067090:\n      if (local_30 == 0) {\n        return sVar9;\n      }" statement_identifier : (if_statement "if (local_30 == 0) {\n        return sVar9;\n      }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n        return sVar9;\n      }" { (return_statement "return sVar9;" return identifier ;) }))) (return_statement "return local_30;" return identifier ;) })) }) (else_clause "else if (uVar8 == 0xffffffff) goto LAB_00067488;" else (if_statement "if (uVar8 == 0xffffffff) goto LAB_00067488;" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00067488;" goto statement_identifier ;))))) (labeled_statement "joined_r0x0006737d:\n  bufsize = bufsize - uVar8;" statement_identifier : (expression_statement "bufsize = bufsize - uVar8;" (assignment_expression "bufsize = bufsize - uVar8" identifier = (binary_expression "bufsize - uVar8" identifier - identifier)) ;)) (expression_statement "local_2c = local_2c + uVar8;" (assignment_expression "local_2c = local_2c + uVar8" identifier = (binary_expression "local_2c + uVar8" identifier + identifier)) ;) (expression_statement "local_30 = local_30 + uVar8;" (assignment_expression "local_30 = local_30 + uVar8" identifier = (binary_expression "local_30 + uVar8" identifier + identifier)) ;) (if_statement "if (bufsize == 0) {\n    return local_30;\n  }" if (parenthesized_expression "(bufsize == 0)" ( (binary_expression "bufsize == 0" identifier == number_literal) )) (compound_statement "{\n    return local_30;\n  }" { (return_statement "return local_30;" return identifier ;) })) (goto_statement "goto LAB_00067066;" goto statement_identifier ;) (labeled_statement "code_r0x000671cf:\n  _Var6 = true;" statement_identifier : (expression_statement "_Var6 = true;" (assignment_expression "_Var6 = true" identifier = true) ;)) (if_statement "if (uVar4 != 0) {\nLAB_000671dc:\n    psVar1 = &(part->encstate).bufend;\n    *psVar1 = *psVar1 + uVar4;\n    _Var6 = false;\n    goto LAB_000670cb;\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000671dc:\n    psVar1 = &(part->encstate).bufend;\n    *psVar1 = *psVar1 + uVar4;\n    _Var6 = false;\n    goto LAB_000670cb;\n  }" { (labeled_statement "LAB_000671dc:\n    psVar1 = &(part->encstate).bufend;" statement_identifier : (expression_statement "psVar1 = &(part->encstate).bufend;" (assignment_expression "psVar1 = &(part->encstate).bufend" identifier = (pointer_expression "&(part->encstate).bufend" & (field_expression "(part->encstate).bufend" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier))) ;)) (expression_statement "*psVar1 = *psVar1 + uVar4;" (assignment_expression "*psVar1 = *psVar1 + uVar4" (pointer_expression "*psVar1" * identifier) = (binary_expression "*psVar1 + uVar4" (pointer_expression "*psVar1" * identifier) + identifier)) ;) (expression_statement "_Var6 = false;" (assignment_expression "_Var6 = false" identifier = false) ;) (goto_statement "goto LAB_000670cb;" goto statement_identifier ;) })) (goto_statement "goto LAB_00067122;" goto statement_identifier ;) (labeled_statement "_L206:\n  (part->state).state = MIMESTATE_CONTENT;" statement_identifier : (expression_statement "(part->state).state = MIMESTATE_CONTENT;" (assignment_expression "(part->state).state = MIMESTATE_CONTENT" (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;)) (expression_statement "mVar2 = (part->state).state;" (assignment_expression "mVar2 = (part->state).state" identifier = (field_expression "(part->state).state" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(part->state).ptr = (void *)0x0;" (assignment_expression "(part->state).ptr = (void *)0x0" (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = (curl_slist *)(part->state).ptr;" (assignment_expression "pcVar7 = (curl_slist *)(part->state).ptr" identifier = (cast_expression "(curl_slist *)(part->state).ptr" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(part->state).ptr" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(part->encstate).pos = 0;" (assignment_expression "(part->encstate).pos = 0" (field_expression "(part->encstate).pos" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->encstate).bufbeg = 0;" (assignment_expression "(part->encstate).bufbeg = 0" (field_expression "(part->encstate).bufbeg" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->encstate).bufend = 0;" (assignment_expression "(part->encstate).bufend = 0" (field_expression "(part->encstate).bufend" (parenthesized_expression "(part->encstate)" ( (field_expression "part->encstate" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(part->state).offset = 0;" (assignment_expression "(part->state).offset = 0" (field_expression "(part->state).offset" (parenthesized_expression "(part->state)" ( (field_expression "part->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (if_statement "if (MIMESTATE_END < mVar2) goto _L203;" if (parenthesized_expression "(MIMESTATE_END < mVar2)" ( (binary_expression "MIMESTATE_END < mVar2" identifier < identifier) )) (goto_statement "goto _L203;" goto statement_identifier ;)) (goto_statement "goto LAB_00067073;" goto statement_identifier ;) })))
(translation_unit "undefined4 __regparm3 FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    \n                    \n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    \n                    \n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    \n                    \n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int extraout_EBP;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = param_3;" (assignment_expression "iVar2 = param_3" identifier = identifier) ;) (expression_statement "entry(param_2,0x6704d);" (call_expression "entry(param_2,0x6704d)" identifier (argument_list "(param_2,0x6704d)" ( identifier , number_literal ))) ;) (do_statement "do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));" do (compound_statement "{\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  }" { (if_statement "if (param_3 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "param_3 = iVar2;" (assignment_expression "param_3 = iVar2" identifier = identifier) ;) }) while (parenthesized_expression "(8 < *(uint *)(extraout_EBP + 0x48))" ( (binary_expression "8 < *(uint *)(extraout_EBP + 0x48)" number_literal < (pointer_expression "*(uint *)(extraout_EBP + 0x48)" * (cast_expression "(uint *)(extraout_EBP + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_EBP + 0x48)" ( (binary_expression "extraout_EBP + 0x48" identifier + number_literal) ))))) )) ;) (expression_statement "uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();" (assignment_expression "uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" * (cast_expression "(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" ( (binary_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793" (binary_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX" (pointer_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" * (cast_expression "(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" ( (binary_expression "unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4" (binary_expression "unaff_EBX + 0x20153" identifier + number_literal) + (binary_expression "*(int *)(extraout_EBP + 0x48) * 4" (pointer_expression "*(int *)(extraout_EBP + 0x48)" * (cast_expression "(int *)(extraout_EBP + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_EBP + 0x48)" ( (binary_expression "extraout_EBP + 0x48" identifier + number_literal) )))) * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) + IDENT) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3 FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    \n                    \n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00067040(undefined4 param_1,undefined4 param_2,int param_3)" (identifier "FUN_00067040") (parameter_list "(undefined4 param_1,undefined4 param_2,int 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 "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int unaff_EBX;\n  int extraout_EBP;\n  int iVar2;\n  \n  iVar2 = param_3;\n  entry(param_2,0x6704d);\n  do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));\n                    \n                    \n  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();\n  return uVar1;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "int extraout_EBP;" (primitive_type "int") (identifier "extraout_EBP") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (expression_statement "iVar2 = param_3;" (assignment_expression "iVar2 = param_3" (identifier "iVar2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "entry(param_2,0x6704d);" (call_expression "entry(param_2,0x6704d)" (identifier "entry") (argument_list "(param_2,0x6704d)" (( "(") (identifier "param_2") (, ",") (number_literal "0x6704d") () ")"))) (; ";")) (do_statement "do {\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  } while (8 < *(uint *)(extraout_EBP + 0x48));" (do "do") (compound_statement "{\n    if (param_3 == 0) {\n      return 0;\n    }\n    param_3 = iVar2;\n  }" ({ "{") (if_statement "if (param_3 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "param_3 = iVar2;" (assignment_expression "param_3 = iVar2" (identifier "param_3") (= "=") (identifier "iVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(8 < *(uint *)(extraout_EBP + 0x48))" (( "(") (binary_expression "8 < *(uint *)(extraout_EBP + 0x48)" (number_literal "8") (< "<") (pointer_expression "*(uint *)(extraout_EBP + 0x48)" (* "*") (cast_expression "(uint *)(extraout_EBP + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(extraout_EBP + 0x48)" (( "(") (binary_expression "extraout_EBP + 0x48" (identifier "extraout_EBP") (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (; ";")) (expression_statement "uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))();" (assignment_expression "uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))()" (identifier "uVar1") (= "=") (call_expression "(*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793)" (( "(") (binary_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX + 0x49793" (binary_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +\n                    unaff_EBX" (pointer_expression "*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" (* "*") (cast_expression "(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4)" (( "(") (binary_expression "unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4" (binary_expression "unaff_EBX + 0x20153" (identifier "unaff_EBX") (+ "+") (number_literal "0x20153")) (+ "+") (binary_expression "*(int *)(extraout_EBP + 0x48) * 4" (pointer_expression "*(int *)(extraout_EBP + 0x48)" (* "*") (cast_expression "(int *)(extraout_EBP + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(extraout_EBP + 0x48)" (( "(") (binary_expression "extraout_EBP + 0x48" (identifier "extraout_EBP") (+ "+") (number_literal "0x48")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "0x49793")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

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

size_t __regparm3 function_1(type_1 *part,char *buffer,size_t var_1)

{
  size_t *psVar1;
  type_2 var_23;
  type_3 var_19;
  type_4 var_13;
  char *var_7;
  size_t numbytes;
  type_4 var_14;
  type_5 var_15;
  type_6 *var_5;
  type_4 var_4;
  size_t var_10;
  size_t var_11;
  char *var_12;
  size_t var_17;
  char *var_16;
  
  var_11 = 0;
  var_12 = buffer;
  if (var_1 == 0) {
    return 0;
  }
LAB_00067066:
  do {
    var_5 = (type_6 *)(part->state).ptr;
    if ((part->state).state < var_2) {
LAB_00067073:
      switch((int)&_GLOBAL_OFFSET_TABLE_ +
             (&switchD_0006707f::switchdataD_000871a0)[(part->state).state]) {
      case 0x6709d:
        return var_11;
      case 0x670b0:
        goto _L205;
      case 0x671f0:
        goto _L206;
      case 0x67230:
        goto _L203;
      case 0x67240:
        var_4 = var_3((type_7 *)&(part->state).offset,var_12,var_1,"\r\n",2,"");
        if (var_4 != 0) goto joined_r0x0006737d;
        (part->state).state = var_8;
        (part->state).ptr = (void *)0x0;
        (part->state).offset = 0;
        goto LAB_00067066;
      case 0x67290:
        if (var_5 == (type_6 *)0x0) {
          (part->state).state = MIMESTATE_EOH;
          (part->state).ptr = (void *)0x0;
          (part->state).offset = 0;
          goto LAB_00067066;
        }
        var_7 = var_6(var_5,"Content-Type",0xc);
        if (var_7 != (char *)0x0) {
          var_5 = var_5->next;
          (part->state).state = MIMESTATE_USERHEADERS;
          (part->state).offset = 0;
          (part->state).ptr = var_5;
          goto LAB_00067066;
        }
        break;
      case 0x672d0:
        if (var_5 == (type_6 *)0x0) {
          var_5 = part->userheaders;
          (part->state).state = MIMESTATE_USERHEADERS;
          (part->state).offset = 0;
          (part->state).ptr = var_5;
          goto LAB_00067066;
        }
        break;
      case 0x672f8:
        var_4 = part->flags;
        var_5 = part->curlheaders;
        (part->state).offset = 0;
        (part->state).ptr = var_5;
        (part->state).state = (-(type_4)((var_4 & 2) == 0) & 0xfffffffd) + var_8;
        goto LAB_00067066;
      }
      var_7 = var_5->data;
      numbytes = var_9(var_7);
      var_10 = var_3((type_7 *)&(part->state).offset,var_12,var_1,var_7,numbytes,
                             "\r\n");
      if (var_10 == 0) {
        var_5 = var_5->next;
        (part->state).offset = 0;
        (part->state).ptr = var_5;
        goto LAB_00067066;
      }
      var_1 = var_1 - var_10;
      var_11 = var_11 + var_10;
      var_12 = var_12 + var_10;
      goto joined_r0x000674c4;
    }
_L203:
joined_r0x000674c4:
    if (var_1 == 0) {
      return var_11;
    }
  } while( true );
_L205:
  if (part->encoder == (type_8 *)0x0) {
    if (part->readfunc == (type_9)0x0) goto LAB_0006742a;
    var_4 = (*part->readfunc)(var_12,1,var_1,part->arg);
  }
  else {
    var_4 = 0;
    var_15 = false;
    var_16 = var_12;
    var_17 = var_1;
LAB_000670cb:
    var_13 = (part->encstate).bufbeg;
    var_14 = (part->encstate).bufend;
    if (var_13 < var_14) goto LAB_00067138;
LAB_000670d5:
    if (var_15 == false) goto LAB_00067183;
    var_13 = (*part->encoder->encodefunc)(var_16,var_17,true,part);
    if (0x10000001 < var_13) goto LAB_00067470;
    if (var_13 < 0x10000000) {
      if (var_13 != 0) {
        var_16 = var_16 + var_13;
        var_4 = var_4 + var_13;
        var_17 = var_17 - var_13;
LAB_00067122:
        while( true ) {
          if (var_17 == 0) goto joined_r0x00067362;
          var_13 = (part->encstate).bufbeg;
          var_14 = (part->encstate).bufend;
          if (var_14 <= var_13) break;
LAB_00067138:
          var_13 = (*part->encoder->encodefunc)(var_16,var_17,var_15,part);
          if (var_13 < 0x10000002) {
            if (0xfffffff < var_13) goto LAB_00067409;
            if (var_13 != 0) goto LAB_00067475;
            if (var_15 != false) goto joined_r0x00067362;
            var_13 = (part->encstate).bufbeg;
            var_14 = (part->encstate).bufend;
LAB_00067183:
            if (var_13 != 0) {
              var_14 = var_14 - var_13;
              if (var_14 != 0) {
                var_7 = (part->encstate).buf;
                var_18(var_7,var_7 + var_13,var_14);
              }
              (part->encstate).bufbeg = 0;
              (part->encstate).bufend = var_14;
            }
            if (var_14 < 0x100) {
              if (part->readfunc != (type_9)0x0) {
                var_13 = (*part->readfunc)((part->encstate).buf + var_14,1,0x100 - var_14,part->arg);
                if (var_13 < 0x10000002) {
                  if (var_13 < 0x10000000) goto code_r0x000671cf;
                }
                else if (var_13 != 0xffffffff) goto LAB_000671dc;
                goto LAB_00067409;
              }
              var_15 = true;
              goto LAB_000670cb;
            }
            if (var_4 != 0) goto joined_r0x00067362;
            var_10 = 0xffffffff;
            goto LAB_00067090;
          }
LAB_00067470:
          if (var_13 == 0xffffffff) goto LAB_00067409;
LAB_00067475:
          var_4 = var_4 + var_13;
          var_16 = var_16 + var_13;
          var_17 = var_17 - var_13;
        }
        goto LAB_000670d5;
      }
    }
    else {
LAB_00067409:
      if (var_4 == 0) {
        var_4 = var_13;
      }
    }
  }
joined_r0x00067362:
  if (var_4 < 0x10000002) {
    if (0xfffffff < var_4) {
LAB_00067488:
      if (var_11 == 0) {
        return var_4;
      }
      return var_11;
    }
    if (var_4 == 0) {
LAB_0006742a:
      var_10 = 0;
      var_19 = part->kind;
      (part->state).state = var_22;
      (part->state).ptr = (void *)0x0;
      (part->state).offset = 0;
      if ((var_19 == var_20) && ((type_10 *)part->fp != (type_10 *)0x0)) {
        var_21((type_10 *)part->fp);
        part->fp = (type_10 *)0x0;
      }
LAB_00067090:
      if (var_11 == 0) {
        return var_10;
      }
      return var_11;
    }
  }
  else if (var_4 == 0xffffffff) goto LAB_00067488;
joined_r0x0006737d:
  var_1 = var_1 - var_4;
  var_12 = var_12 + var_4;
  var_11 = var_11 + var_4;
  if (var_1 == 0) {
    return var_11;
  }
  goto LAB_00067066;
code_r0x000671cf:
  var_15 = true;
  if (var_13 != 0) {
LAB_000671dc:
    psVar1 = &(part->encstate).bufend;
    *psVar1 = *psVar1 + var_13;
    var_15 = false;
    goto LAB_000670cb;
  }
  goto LAB_00067122;
_L206:
  (part->state).state = MIMESTATE_CONTENT;
  var_23 = (part->state).state;
  (part->state).ptr = (void *)0x0;
  var_5 = (type_6 *)(part->state).ptr;
  (part->encstate).pos = 0;
  (part->encstate).bufbeg = 0;
  (part->encstate).bufend = 0;
  (part->state).offset = 0;
  if (var_22 < var_23) goto _L203;
  goto LAB_00067073;
}


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

undefined4 __regparm3 MASKED(undefined4 param_1,undefined4 param_2,int param_3)

{
  undefined4 uVar1;
  int unaff_EBX;
  int extraout_EBP;
  int iVar2;
  
  iVar2 = param_3;
  entry(param_2,0x6704d);
  do {
    if (param_3 == 0) {
      return 0;
    }
    param_3 = iVar2;
  } while (8 < *(uint *)(extraout_EBP + 0x48));
                    /* WARNING: Could not recover jumptable at 0x0006707f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar1 = (*(code *)(*(int *)(unaff_EBX + 0x20153 + *(int *)(extraout_EBP + 0x48) * 4) +
                    unaff_EBX + 0x49793))();
  return uVar1;
}

