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

void Curl_gss_log_error(Curl_easy *data,char *prefix,OM_uint32 major,OM_uint32 minor)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int in_GS_OFFSET;
  char *local_454;
  OM_uint32 *local_450;
  OM_uint32 min_stat;
  OM_uint32 msg_ctx;
  gss_buffer_desc status_string;
  char buf [1024];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (major == 0xd0000) {
    iVar4 = 0;
  }
  else {
    msg_ctx = 0;
    iVar4 = 0;
    do {
      local_450 = &msg_ctx;
      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);
      if (status_string.length + 3 + iVar4 < 0x400) {
        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,
                               status_string.value);
        iVar4 = iVar4 + iVar3;
      }
      gss_release_buffer(&min_stat,&status_string);
    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));
  }
  local_450 = &msg_ctx;
  local_454 = buf;
  msg_ctx = 0;
  do {
    uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);
    if (status_string.length + 3 + iVar4 < 0x400) {
      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,
                             status_string.value);
      iVar4 = iVar4 + iVar3;
    }
    gss_release_buffer(&min_stat,&status_string);
  } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));
  Curl_infof(data,"%s%s\n",prefix,local_454);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



void FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)

{
  uint uVar1;
  int iVar2;
  int unaff_EBX;
  int iVar3;
  int in_GS_OFFSET;
  undefined4 unaff_retaddr;
  undefined1 *local_458;
  int *local_454;
  undefined1 local_434 [4];
  int local_430;
  int local_42c;
  undefined4 local_428;
  undefined1 local_424 [1024];
  int local_24;
  undefined4 uStack_14;
  
  uStack_14 = 0x631d9;
  entry();
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 == 0xd0000) {
    iVar3 = 0;
  }
  else {
    local_430 = 0;
    iVar3 = 0;
    do {
      local_454 = &local_430;
      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);
      if ((uint)(local_42c + 3 + iVar3) < 0x400) {
        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,
                               local_428);
        iVar3 = iVar3 + iVar2;
      }
      gss_release_buffer(local_434,&local_42c);
    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));
  }
  local_454 = &local_430;
  local_458 = local_424;
  local_430 = 0;
  do {
    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);
    if ((uint)(local_42c + 3 + iVar3) < 0x400) {
      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428
                            );
      iVar3 = iVar3 + iVar2;
    }
    gss_release_buffer(local_434,&local_42c);
  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));
  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);
  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00082f60();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x53607
SUB ESP,0x44c
MOV EAX,dword ptr [ESP + 0x460]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x464]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x43c],EAX
XOR EAX,EAX
CMP dword ptr [ESP + 0x468],0xd0000
JNZ 0x00063310
LEA EAX,[ESP + 0x30]
XOR ESI,ESI
LEA EBP,[ESP + 0x34]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[ESP + 0x3c]
LEA EDI,[ESP + 0x2c]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xfffd5cbe]
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x0006326f
SUB ESP,0x8
PUSH EBP
PUSH EDI
CALL 0x00018790
ADD ESP,0x10
TEST dword ptr [ESP + 0x10],0xffff0000
JNZ 0x000632d0
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000632d0
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
PUSH 0x2
PUSH dword ptr [ESP + 0x484]
PUSH EDI
CALL 0x00018940
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x54]
ADD ESP,0x20
LEA EDX,[EAX + ESI*0x1 + 0x3]
CMP EDX,0x3ff
JA 0x00063250
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
PUSH EAX
MOV EAX,0x400
SUB EAX,ESI
PUSH dword ptr [ESP + 0x30]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x24]
ADD EAX,ESI
PUSH EAX
CALL 0x000187a0
ADD ESP,0x20
ADD ESI,EAX
JMP 0x00063250
LEA EAX,[EBX + 0xfffd089b]
PUSH dword ptr [ESP + 0x8]
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x00027c40
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x43c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x000633be
ADD ESP,0x44c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[ESP + 0x30]
MOV dword ptr [ESP + 0x30],0x0
XOR ESI,ESI
LEA EBP,[ESP + 0x34]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[ESP + 0x3c]
LEA EDI,[ESP + 0x2c]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xfffd5cbe]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00063367
SUB ESP,0x8
PUSH EBP
PUSH EDI
CALL 0x00018790
ADD ESP,0x10
TEST dword ptr [ESP + 0x10],0xffff0000
JNZ 0x00063235
MOV EDX,dword ptr [ESP + 0x30]
TEST EDX,EDX
JZ 0x00063235
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
PUSH 0x1
PUSH dword ptr [ESP + 0x480]
PUSH EDI
CALL 0x00018940
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x54]
ADD ESP,0x20
LEA EDX,[EAX + ESI*0x1 + 0x3]
CMP EDX,0x3ff
JA 0x00063340
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
PUSH EAX
MOV EAX,0x400
SUB EAX,ESI
PUSH dword ptr [ESP + 0x30]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x24]
ADD EAX,ESI
PUSH EAX
CALL 0x000187a0
ADD ESP,0x20
ADD ESI,EAX
JMP 0x00063340
CALL 0x00082f60
(translation_unit "void FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00082f60();\n}\n\n" (function_definition "void FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00082f60();\n}" primitive_type (function_declarator "FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00082f60();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 unaff_retaddr;" type_identifier identifier ;) (declaration "undefined1 *local_458;" type_identifier (pointer_declarator "*local_458" * identifier) ;) (declaration "int *local_454;" primitive_type (pointer_declarator "*local_454" * identifier) ;) (declaration "undefined1 local_434 [4];" type_identifier (array_declarator "local_434 [4]" identifier [ number_literal ]) ;) (declaration "int local_430;" primitive_type identifier ;) (declaration "int local_42c;" primitive_type identifier ;) (declaration "undefined4 local_428;" type_identifier identifier ;) (declaration "undefined1 local_424 [1024];" type_identifier (array_declarator "local_424 [1024]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x631d9;" (assignment_expression "uStack_14 = 0x631d9" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" if (parenthesized_expression "(param_2 == 0xd0000)" ( (binary_expression "param_2 == 0xd0000" identifier == number_literal) )) (compound_statement "{\n    iVar3 = 0;\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" else (compound_statement "{\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" { (expression_statement "local_430 = 0;" (assignment_expression "local_430 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));" do (compound_statement "{\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    }" { (expression_statement "local_454 = &local_430;" (assignment_expression "local_454 = &local_430" identifier = (pointer_expression "&local_430" & identifier)) ;) (expression_statement "uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);" (assignment_expression "uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c)" identifier = (call_expression "gss_display_status(local_434,param_2,1,0,local_454,&local_42c)" identifier (argument_list "(local_434,param_2,1,0,local_454,&local_42c)" ( identifier , identifier , number_literal , number_literal , identifier , (pointer_expression "&local_42c" & identifier) )))) ;) (if_statement "if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }" if (parenthesized_expression "((uint)(local_42c + 3 + iVar3) < 0x400)" ( (binary_expression "(uint)(local_42c + 3 + iVar3) < 0x400" (call_expression "(uint)(local_42c + 3 + iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_42c + 3 + iVar3)" ( (binary_expression "local_42c + 3 + iVar3" (binary_expression "local_42c + 3" identifier + number_literal) + identifier) ))) < number_literal) )) (compound_statement "{\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }" { (expression_statement "iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);" (assignment_expression "iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" identifier = (call_expression "curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" identifier (argument_list "(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" ( (binary_expression "local_424 + iVar3" identifier + identifier) , (binary_expression "0x400 - iVar3" number_literal - identifier) , (binary_expression "unaff_EBX + 0x292c5" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "iVar3 = iVar3 + iVar2;" (assignment_expression "iVar3 = iVar3 + iVar2" identifier = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) })) (expression_statement "gss_release_buffer(local_434,&local_42c);" (call_expression "gss_release_buffer(local_434,&local_42c)" identifier (argument_list "(local_434,&local_42c)" ( identifier , (pointer_expression "&local_42c" & identifier) ))) ;) }) while (parenthesized_expression "(((uVar1 & 0xffff0000) == 0) && (local_430 != 0))" ( (binary_expression "((uVar1 & 0xffff0000) == 0) && (local_430 != 0)" (parenthesized_expression "((uVar1 & 0xffff0000) == 0)" ( (binary_expression "(uVar1 & 0xffff0000) == 0" (parenthesized_expression "(uVar1 & 0xffff0000)" ( (binary_expression "uVar1 & 0xffff0000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_430 != 0)" ( (binary_expression "local_430 != 0" identifier != number_literal) ))) )) ;) }))) (expression_statement "local_454 = &local_430;" (assignment_expression "local_454 = &local_430" identifier = (pointer_expression "&local_430" & identifier)) ;) (expression_statement "local_458 = local_424;" (assignment_expression "local_458 = local_424" identifier = identifier) ;) (expression_statement "local_430 = 0;" (assignment_expression "local_430 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));" do (compound_statement "{\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  }" { (expression_statement "uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);" (assignment_expression "uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c)" identifier = (call_expression "gss_display_status(local_434,param_3,2,0,local_454,&local_42c)" identifier (argument_list "(local_434,param_3,2,0,local_454,&local_42c)" ( identifier , identifier , number_literal , number_literal , identifier , (pointer_expression "&local_42c" & identifier) )))) ;) (if_statement "if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }" if (parenthesized_expression "((uint)(local_42c + 3 + iVar3) < 0x400)" ( (binary_expression "(uint)(local_42c + 3 + iVar3) < 0x400" (call_expression "(uint)(local_42c + 3 + iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_42c + 3 + iVar3)" ( (binary_expression "local_42c + 3 + iVar3" (binary_expression "local_42c + 3" identifier + number_literal) + identifier) ))) < number_literal) )) (compound_statement "{\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }" { (expression_statement "iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );" (assignment_expression "iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" identifier = (call_expression "curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" identifier (argument_list "(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" ( (binary_expression "local_458 + iVar3" identifier + identifier) , (binary_expression "0x400 - iVar3" number_literal - identifier) , (binary_expression "unaff_EBX + 0x292c5" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "iVar3 = iVar3 + iVar2;" (assignment_expression "iVar3 = iVar3 + iVar2" identifier = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) })) (expression_statement "gss_release_buffer(local_434,&local_42c);" (call_expression "gss_release_buffer(local_434,&local_42c)" identifier (argument_list "(local_434,&local_42c)" ( identifier , (pointer_expression "&local_42c" & identifier) ))) ;) }) while (parenthesized_expression "(((uVar1 & 0xffff0000) == 0) && (local_430 != 0))" ( (binary_expression "((uVar1 & 0xffff0000) == 0) && (local_430 != 0)" (parenthesized_expression "((uVar1 & 0xffff0000) == 0)" ( (binary_expression "(uVar1 & 0xffff0000) == 0" (parenthesized_expression "(uVar1 & 0xffff0000)" ( (binary_expression "uVar1 & 0xffff0000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_430 != 0)" ( (binary_expression "local_430 != 0" identifier != number_literal) ))) )) ;) (expression_statement "FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);" (call_expression "FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458)" identifier (argument_list "(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458)" ( identifier , (binary_expression "unaff_EBX + 0x23ea2" identifier + number_literal) , identifier , identifier ))) ;) (if_statement "if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_24 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid Curl_gss_log_error(Curl_easy *data,char *prefix,OM_uint32 major,OM_uint32 minor)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int in_GS_OFFSET;\n  char *local_454;\n  OM_uint32 *local_450;\n  OM_uint32 min_stat;\n  OM_uint32 msg_ctx;\n  gss_buffer_desc status_string;\n  char buf [1024];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (major == 0xd0000) {\n    iVar4 = 0;\n  }\n  else {\n    msg_ctx = 0;\n    iVar4 = 0;\n    do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  }\n  local_450 = &msg_ctx;\n  local_454 = buf;\n  msg_ctx = 0;\n  do {\n    uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);\n    if (status_string.length + 3 + iVar4 < 0x400) {\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }\n    gss_release_buffer(&min_stat,&status_string);\n  } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  Curl_infof(data,"%s%s\n",prefix,local_454);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment comment (function_definition "void Curl_gss_log_error(Curl_easy *data,char *prefix,OM_uint32 major,OM_uint32 minor)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int in_GS_OFFSET;\n  char *local_454;\n  OM_uint32 *local_450;\n  OM_uint32 min_stat;\n  OM_uint32 msg_ctx;\n  gss_buffer_desc status_string;\n  char buf [1024];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (major == 0xd0000) {\n    iVar4 = 0;\n  }\n  else {\n    msg_ctx = 0;\n    iVar4 = 0;\n    do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  }\n  local_450 = &msg_ctx;\n  local_454 = buf;\n  msg_ctx = 0;\n  do {\n    uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);\n    if (status_string.length + 3 + iVar4 < 0x400) {\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }\n    gss_release_buffer(&min_stat,&status_string);\n  } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  Curl_infof(data,"%s%s\n",prefix,local_454);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "Curl_gss_log_error(Curl_easy *data,char *prefix,OM_uint32 major,OM_uint32 minor)" identifier (parameter_list "(Curl_easy *data,char *prefix,OM_uint32 major,OM_uint32 minor)" ( (parameter_declaration "Curl_easy *data" type_identifier (pointer_declarator "*data" * identifier)) , (parameter_declaration "char *prefix" primitive_type (pointer_declarator "*prefix" * identifier)) , (parameter_declaration "OM_uint32 major" type_identifier identifier) , (parameter_declaration "OM_uint32 minor" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int in_GS_OFFSET;\n  char *local_454;\n  OM_uint32 *local_450;\n  OM_uint32 min_stat;\n  OM_uint32 msg_ctx;\n  gss_buffer_desc status_string;\n  char buf [1024];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (major == 0xd0000) {\n    iVar4 = 0;\n  }\n  else {\n    msg_ctx = 0;\n    iVar4 = 0;\n    do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  }\n  local_450 = &msg_ctx;\n  local_454 = buf;\n  msg_ctx = 0;\n  do {\n    uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);\n    if (status_string.length + 3 + iVar4 < 0x400) {\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }\n    gss_release_buffer(&min_stat,&status_string);\n  } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  Curl_infof(data,"%s%s\n",prefix,local_454);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_454;" primitive_type (pointer_declarator "*local_454" * identifier) ;) (declaration "OM_uint32 *local_450;" type_identifier (pointer_declarator "*local_450" * identifier) ;) (declaration "OM_uint32 min_stat;" type_identifier identifier ;) (declaration "OM_uint32 msg_ctx;" type_identifier identifier ;) (declaration "gss_buffer_desc status_string;" type_identifier identifier ;) (declaration "char buf [1024];" primitive_type (array_declarator "buf [1024]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (major == 0xd0000) {\n    iVar4 = 0;\n  }\n  else {\n    msg_ctx = 0;\n    iVar4 = 0;\n    do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  }" if (parenthesized_expression "(major == 0xd0000)" ( (binary_expression "major == 0xd0000" identifier == number_literal) )) (compound_statement "{\n    iVar4 = 0;\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    msg_ctx = 0;\n    iVar4 = 0;\n    do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  }" else (compound_statement "{\n    msg_ctx = 0;\n    iVar4 = 0;\n    do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));\n  }" { (expression_statement "msg_ctx = 0;" (assignment_expression "msg_ctx = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));" do (compound_statement "{\n      local_450 = &msg_ctx;\n      uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);\n      if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }\n      gss_release_buffer(&min_stat,&status_string);\n    }" { (expression_statement "local_450 = &msg_ctx;" (assignment_expression "local_450 = &msg_ctx" identifier = (pointer_expression "&msg_ctx" & identifier)) ;) (expression_statement "uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string);" (assignment_expression "uVar2 = gss_display_status(&min_stat,major,1,0,local_450,&status_string)" identifier = (call_expression "gss_display_status(&min_stat,major,1,0,local_450,&status_string)" identifier (argument_list "(&min_stat,major,1,0,local_450,&status_string)" ( (pointer_expression "&min_stat" & identifier) , identifier , number_literal , number_literal , identifier , (pointer_expression "&status_string" & identifier) )))) ;) (if_statement "if (status_string.length + 3 + iVar4 < 0x400) {\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }" if (parenthesized_expression "(status_string.length + 3 + iVar4 < 0x400)" ( (binary_expression "status_string.length + 3 + iVar4 < 0x400" (binary_expression "status_string.length + 3 + iVar4" (binary_expression "status_string.length + 3" (field_expression "status_string.length" identifier . field_identifier) + number_literal) + identifier) < number_literal) )) (compound_statement "{\n        iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);\n        iVar4 = iVar4 + iVar3;\n      }" { (expression_statement "iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value);" (assignment_expression "iVar3 = curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value)" identifier = (call_expression "curl_msnprintf(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value)" identifier (argument_list "(buf + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                               status_string.value)" ( (binary_expression "buf + iVar4" identifier + identifier) , (binary_expression "0x400 - iVar4" number_literal - identifier) , (string_literal ""%.*s. "" " string_content ") , (field_expression "status_string.length" identifier . field_identifier) , (field_expression "status_string.value" identifier . field_identifier) )))) ;) (expression_statement "iVar4 = iVar4 + iVar3;" (assignment_expression "iVar4 = iVar4 + iVar3" identifier = (binary_expression "iVar4 + iVar3" identifier + identifier)) ;) })) (expression_statement "gss_release_buffer(&min_stat,&status_string);" (call_expression "gss_release_buffer(&min_stat,&status_string)" identifier (argument_list "(&min_stat,&status_string)" ( (pointer_expression "&min_stat" & identifier) , (pointer_expression "&status_string" & identifier) ))) ;) }) while (parenthesized_expression "(((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0))" ( (binary_expression "((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0)" (parenthesized_expression "((uVar2 & 0xffff0000) == 0)" ( (binary_expression "(uVar2 & 0xffff0000) == 0" (parenthesized_expression "(uVar2 & 0xffff0000)" ( (binary_expression "uVar2 & 0xffff0000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(msg_ctx != 0)" ( (binary_expression "msg_ctx != 0" identifier != number_literal) ))) )) ;) }))) (expression_statement "local_450 = &msg_ctx;" (assignment_expression "local_450 = &msg_ctx" identifier = (pointer_expression "&msg_ctx" & identifier)) ;) (expression_statement "local_454 = buf;" (assignment_expression "local_454 = buf" identifier = identifier) ;) (expression_statement "msg_ctx = 0;" (assignment_expression "msg_ctx = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);\n    if (status_string.length + 3 + iVar4 < 0x400) {\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }\n    gss_release_buffer(&min_stat,&status_string);\n  } while (((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0));" do (compound_statement "{\n    uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);\n    if (status_string.length + 3 + iVar4 < 0x400) {\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }\n    gss_release_buffer(&min_stat,&status_string);\n  }" { (expression_statement "uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string);" (assignment_expression "uVar2 = gss_display_status(&min_stat,minor,2,0,local_450,&status_string)" identifier = (call_expression "gss_display_status(&min_stat,minor,2,0,local_450,&status_string)" identifier (argument_list "(&min_stat,minor,2,0,local_450,&status_string)" ( (pointer_expression "&min_stat" & identifier) , identifier , number_literal , number_literal , identifier , (pointer_expression "&status_string" & identifier) )))) ;) (if_statement "if (status_string.length + 3 + iVar4 < 0x400) {\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }" if (parenthesized_expression "(status_string.length + 3 + iVar4 < 0x400)" ( (binary_expression "status_string.length + 3 + iVar4 < 0x400" (binary_expression "status_string.length + 3 + iVar4" (binary_expression "status_string.length + 3" (field_expression "status_string.length" identifier . field_identifier) + number_literal) + identifier) < number_literal) )) (compound_statement "{\n      iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);\n      iVar4 = iVar4 + iVar3;\n    }" { (expression_statement "iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value);" (assignment_expression "iVar3 = curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value)" identifier = (call_expression "curl_msnprintf(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value)" identifier (argument_list "(local_454 + iVar4,0x400 - iVar4,"%.*s. ",status_string.length,\n                             status_string.value)" ( (binary_expression "local_454 + iVar4" identifier + identifier) , (binary_expression "0x400 - iVar4" number_literal - identifier) , (string_literal ""%.*s. "" " string_content ") , (field_expression "status_string.length" identifier . field_identifier) , (field_expression "status_string.value" identifier . field_identifier) )))) ;) (expression_statement "iVar4 = iVar4 + iVar3;" (assignment_expression "iVar4 = iVar4 + iVar3" identifier = (binary_expression "iVar4 + iVar3" identifier + identifier)) ;) })) (expression_statement "gss_release_buffer(&min_stat,&status_string);" (call_expression "gss_release_buffer(&min_stat,&status_string)" identifier (argument_list "(&min_stat,&status_string)" ( (pointer_expression "&min_stat" & identifier) , (pointer_expression "&status_string" & identifier) ))) ;) }) while (parenthesized_expression "(((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0))" ( (binary_expression "((uVar2 & 0xffff0000) == 0) && (msg_ctx != 0)" (parenthesized_expression "((uVar2 & 0xffff0000) == 0)" ( (binary_expression "(uVar2 & 0xffff0000) == 0" (parenthesized_expression "(uVar2 & 0xffff0000)" ( (binary_expression "uVar2 & 0xffff0000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(msg_ctx != 0)" ( (binary_expression "msg_ctx != 0" identifier != number_literal) ))) )) ;) (expression_statement "Curl_infof(data,"%s%s\n",prefix,local_454);" (call_expression "Curl_infof(data,"%s%s\n",prefix,local_454)" identifier (argument_list "(data,"%s%s\n",prefix,local_454)" ( identifier , (string_literal ""%s%s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00082f60();\n}\n\n" (function_definition "void FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00082f60();\n}" primitive_type (function_declarator "FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00082f60();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 unaff_retaddr;" type_identifier identifier ;) (declaration "undefined1 *local_458;" type_identifier (pointer_declarator "*local_458" * identifier) ;) (declaration "int *local_454;" primitive_type (pointer_declarator "*local_454" * identifier) ;) (declaration "undefined1 local_434 [4];" type_identifier (array_declarator "local_434 [4]" identifier [ number_literal ]) ;) (declaration "int local_430;" primitive_type identifier ;) (declaration "int local_42c;" primitive_type identifier ;) (declaration "undefined4 local_428;" type_identifier identifier ;) (declaration "undefined1 local_424 [1024];" type_identifier (array_declarator "local_424 [1024]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x631d9;" (assignment_expression "uStack_14 = 0x631d9" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" if (parenthesized_expression "(param_2 == 0xd0000)" ( (binary_expression "param_2 == 0xd0000" identifier == number_literal) )) (compound_statement "{\n    iVar3 = 0;\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" else (compound_statement "{\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" { (expression_statement "local_430 = 0;" (assignment_expression "local_430 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));" do (compound_statement "{\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    }" { (expression_statement "local_454 = &local_430;" (assignment_expression "local_454 = &local_430" identifier = (pointer_expression "&local_430" & identifier)) ;) (expression_statement "uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);" (assignment_expression "uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c)" identifier = (call_expression "gss_display_status(local_434,param_2,1,0,local_454,&local_42c)" identifier (argument_list "(local_434,param_2,1,0,local_454,&local_42c)" ( identifier , identifier , number_literal , number_literal , identifier , (pointer_expression "&local_42c" & identifier) )))) ;) (if_statement "if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }" if (parenthesized_expression "((uint)(local_42c + 3 + iVar3) < 0x400)" ( (binary_expression "(uint)(local_42c + 3 + iVar3) < 0x400" (call_expression "(uint)(local_42c + 3 + iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_42c + 3 + iVar3)" ( (binary_expression "local_42c + 3 + iVar3" (binary_expression "local_42c + 3" identifier + number_literal) + identifier) ))) < number_literal) )) (compound_statement "{\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }" { (expression_statement "iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);" (assignment_expression "iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" identifier = (call_expression "curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" identifier (argument_list "(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" ( (binary_expression "local_424 + iVar3" identifier + identifier) , (binary_expression "0x400 - iVar3" number_literal - identifier) , (binary_expression "unaff_EBX + 0x292c5" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "iVar3 = iVar3 + iVar2;" (assignment_expression "iVar3 = iVar3 + iVar2" identifier = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) })) (expression_statement "gss_release_buffer(local_434,&local_42c);" (call_expression "gss_release_buffer(local_434,&local_42c)" identifier (argument_list "(local_434,&local_42c)" ( identifier , (pointer_expression "&local_42c" & identifier) ))) ;) }) while (parenthesized_expression "(((uVar1 & 0xffff0000) == 0) && (local_430 != 0))" ( (binary_expression "((uVar1 & 0xffff0000) == 0) && (local_430 != 0)" (parenthesized_expression "((uVar1 & 0xffff0000) == 0)" ( (binary_expression "(uVar1 & 0xffff0000) == 0" (parenthesized_expression "(uVar1 & 0xffff0000)" ( (binary_expression "uVar1 & 0xffff0000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_430 != 0)" ( (binary_expression "local_430 != 0" identifier != number_literal) ))) )) ;) }))) (expression_statement "local_454 = &local_430;" (assignment_expression "local_454 = &local_430" identifier = (pointer_expression "&local_430" & identifier)) ;) (expression_statement "local_458 = local_424;" (assignment_expression "local_458 = local_424" identifier = identifier) ;) (expression_statement "local_430 = 0;" (assignment_expression "local_430 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));" do (compound_statement "{\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  }" { (expression_statement "uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);" (assignment_expression "uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c)" identifier = (call_expression "gss_display_status(local_434,param_3,2,0,local_454,&local_42c)" identifier (argument_list "(local_434,param_3,2,0,local_454,&local_42c)" ( identifier , identifier , number_literal , number_literal , identifier , (pointer_expression "&local_42c" & identifier) )))) ;) (if_statement "if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }" if (parenthesized_expression "((uint)(local_42c + 3 + iVar3) < 0x400)" ( (binary_expression "(uint)(local_42c + 3 + iVar3) < 0x400" (call_expression "(uint)(local_42c + 3 + iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_42c + 3 + iVar3)" ( (binary_expression "local_42c + 3 + iVar3" (binary_expression "local_42c + 3" identifier + number_literal) + identifier) ))) < number_literal) )) (compound_statement "{\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }" { (expression_statement "iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );" (assignment_expression "iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" identifier = (call_expression "curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" identifier (argument_list "(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" ( (binary_expression "local_458 + iVar3" identifier + identifier) , (binary_expression "0x400 - iVar3" number_literal - identifier) , (binary_expression "unaff_EBX + 0x292c5" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "iVar3 = iVar3 + iVar2;" (assignment_expression "iVar3 = iVar3 + iVar2" identifier = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) })) (expression_statement "gss_release_buffer(local_434,&local_42c);" (call_expression "gss_release_buffer(local_434,&local_42c)" identifier (argument_list "(local_434,&local_42c)" ( identifier , (pointer_expression "&local_42c" & identifier) ))) ;) }) while (parenthesized_expression "(((uVar1 & 0xffff0000) == 0) && (local_430 != 0))" ( (binary_expression "((uVar1 & 0xffff0000) == 0) && (local_430 != 0)" (parenthesized_expression "((uVar1 & 0xffff0000) == 0)" ( (binary_expression "(uVar1 & 0xffff0000) == 0" (parenthesized_expression "(uVar1 & 0xffff0000)" ( (binary_expression "uVar1 & 0xffff0000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_430 != 0)" ( (binary_expression "local_430 != 0" identifier != number_literal) ))) )) ;) (expression_statement "FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);" (call_expression "FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458)" identifier (argument_list "(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458)" ( identifier , (binary_expression "unaff_EBX + 0x23ea2" identifier + number_literal) , identifier , identifier ))) ;) (if_statement "if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_24 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (binary_expression LIT - IDENT) , (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (binary_expression LIT - IDENT) , (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00082f60();\n}" (primitive_type "void") (function_declarator "FUN_000631d0(undefined4 param_1,int param_2,undefined4 param_3)" (identifier "FUN_000631d0") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int unaff_EBX;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 unaff_retaddr;\n  undefined1 *local_458;\n  int *local_454;\n  undefined1 local_434 [4];\n  int local_430;\n  int local_42c;\n  undefined4 local_428;\n  undefined1 local_424 [1024];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x631d9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }\n  local_454 = &local_430;\n  local_458 = local_424;\n  local_430 = 0;\n  do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00082f60();\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 unaff_retaddr;" (type_identifier "undefined4") (identifier "unaff_retaddr") (; ";")) (declaration "undefined1 *local_458;" (type_identifier "undefined1") (pointer_declarator "*local_458" (* "*") (identifier "local_458")) (; ";")) (declaration "int *local_454;" (primitive_type "int") (pointer_declarator "*local_454" (* "*") (identifier "local_454")) (; ";")) (declaration "undefined1 local_434 [4];" (type_identifier "undefined1") (array_declarator "local_434 [4]" (identifier "local_434") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_430;" (primitive_type "int") (identifier "local_430") (; ";")) (declaration "int local_42c;" (primitive_type "int") (identifier "local_42c") (; ";")) (declaration "undefined4 local_428;" (type_identifier "undefined4") (identifier "local_428") (; ";")) (declaration "undefined1 local_424 [1024];" (type_identifier "undefined1") (array_declarator "local_424 [1024]" (identifier "local_424") ([ "[") (number_literal "1024") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x631d9;" (assignment_expression "uStack_14 = 0x631d9" (identifier "uStack_14") (= "=") (number_literal "0x631d9")) (; ";")) (expression_statement "entry();" (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_2 == 0xd0000) {\n    iVar3 = 0;\n  }\n  else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" (if "if") (parenthesized_expression "(param_2 == 0xd0000)" (( "(") (binary_expression "param_2 == 0xd0000" (identifier "param_2") (== "==") (number_literal "0xd0000")) () ")")) (compound_statement "{\n    iVar3 = 0;\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" (else "else") (compound_statement "{\n    local_430 = 0;\n    iVar3 = 0;\n    do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));\n  }" ({ "{") (expression_statement "local_430 = 0;" (assignment_expression "local_430 = 0" (identifier "local_430") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));" (do "do") (compound_statement "{\n      local_454 = &local_430;\n      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);\n      if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }\n      gss_release_buffer(local_434,&local_42c);\n    }" ({ "{") (expression_statement "local_454 = &local_430;" (assignment_expression "local_454 = &local_430" (identifier "local_454") (= "=") (pointer_expression "&local_430" (& "&") (identifier "local_430"))) (; ";")) (expression_statement "uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);" (assignment_expression "uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c)" (identifier "uVar1") (= "=") (call_expression "gss_display_status(local_434,param_2,1,0,local_454,&local_42c)" (identifier "gss_display_status") (argument_list "(local_434,param_2,1,0,local_454,&local_42c)" (( "(") (identifier "local_434") (, ",") (identifier "param_2") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (identifier "local_454") (, ",") (pointer_expression "&local_42c" (& "&") (identifier "local_42c")) () ")")))) (; ";")) (if_statement "if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }" (if "if") (parenthesized_expression "((uint)(local_42c + 3 + iVar3) < 0x400)" (( "(") (binary_expression "(uint)(local_42c + 3 + iVar3) < 0x400" (call_expression "(uint)(local_42c + 3 + iVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_42c + 3 + iVar3)" (( "(") (binary_expression "local_42c + 3 + iVar3" (binary_expression "local_42c + 3" (identifier "local_42c") (+ "+") (number_literal "3")) (+ "+") (identifier "iVar3")) () ")"))) (< "<") (number_literal "0x400")) () ")")) (compound_statement "{\n        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);\n        iVar3 = iVar3 + iVar2;\n      }" ({ "{") (expression_statement "iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428);" (assignment_expression "iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" (identifier "iVar2") (= "=") (call_expression "curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" (identifier "curl_msnprintf") (argument_list "(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,\n                               local_428)" (( "(") (binary_expression "local_424 + iVar3" (identifier "local_424") (+ "+") (identifier "iVar3")) (, ",") (binary_expression "0x400 - iVar3" (number_literal "0x400") (- "-") (identifier "iVar3")) (, ",") (binary_expression "unaff_EBX + 0x292c5" (identifier "unaff_EBX") (+ "+") (number_literal "0x292c5")) (, ",") (identifier "local_42c") (, ",") (identifier "local_428") () ")")))) (; ";")) (expression_statement "iVar3 = iVar3 + iVar2;" (assignment_expression "iVar3 = iVar3 + iVar2" (identifier "iVar3") (= "=") (binary_expression "iVar3 + iVar2" (identifier "iVar3") (+ "+") (identifier "iVar2"))) (; ";")) (} "}"))) (expression_statement "gss_release_buffer(local_434,&local_42c);" (call_expression "gss_release_buffer(local_434,&local_42c)" (identifier "gss_release_buffer") (argument_list "(local_434,&local_42c)" (( "(") (identifier "local_434") (, ",") (pointer_expression "&local_42c" (& "&") (identifier "local_42c")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uVar1 & 0xffff0000) == 0) && (local_430 != 0))" (( "(") (binary_expression "((uVar1 & 0xffff0000) == 0) && (local_430 != 0)" (parenthesized_expression "((uVar1 & 0xffff0000) == 0)" (( "(") (binary_expression "(uVar1 & 0xffff0000) == 0" (parenthesized_expression "(uVar1 & 0xffff0000)" (( "(") (binary_expression "uVar1 & 0xffff0000" (identifier "uVar1") (& "&") (number_literal "0xffff0000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_430 != 0)" (( "(") (binary_expression "local_430 != 0" (identifier "local_430") (!= "!=") (number_literal "0")) () ")"))) () ")")) (; ";")) (} "}")))) (expression_statement "local_454 = &local_430;" (assignment_expression "local_454 = &local_430" (identifier "local_454") (= "=") (pointer_expression "&local_430" (& "&") (identifier "local_430"))) (; ";")) (expression_statement "local_458 = local_424;" (assignment_expression "local_458 = local_424" (identifier "local_458") (= "=") (identifier "local_424")) (; ";")) (expression_statement "local_430 = 0;" (assignment_expression "local_430 = 0" (identifier "local_430") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));" (do "do") (compound_statement "{\n    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);\n    if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }\n    gss_release_buffer(local_434,&local_42c);\n  }" ({ "{") (expression_statement "uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);" (assignment_expression "uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c)" (identifier "uVar1") (= "=") (call_expression "gss_display_status(local_434,param_3,2,0,local_454,&local_42c)" (identifier "gss_display_status") (argument_list "(local_434,param_3,2,0,local_454,&local_42c)" (( "(") (identifier "local_434") (, ",") (identifier "param_3") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (identifier "local_454") (, ",") (pointer_expression "&local_42c" (& "&") (identifier "local_42c")) () ")")))) (; ";")) (if_statement "if ((uint)(local_42c + 3 + iVar3) < 0x400) {\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }" (if "if") (parenthesized_expression "((uint)(local_42c + 3 + iVar3) < 0x400)" (( "(") (binary_expression "(uint)(local_42c + 3 + iVar3) < 0x400" (call_expression "(uint)(local_42c + 3 + iVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_42c + 3 + iVar3)" (( "(") (binary_expression "local_42c + 3 + iVar3" (binary_expression "local_42c + 3" (identifier "local_42c") (+ "+") (number_literal "3")) (+ "+") (identifier "iVar3")) () ")"))) (< "<") (number_literal "0x400")) () ")")) (compound_statement "{\n      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );\n      iVar3 = iVar3 + iVar2;\n    }" ({ "{") (expression_statement "iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            );" (assignment_expression "iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" (identifier "iVar2") (= "=") (call_expression "curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" (identifier "curl_msnprintf") (argument_list "(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428\n                            )" (( "(") (binary_expression "local_458 + iVar3" (identifier "local_458") (+ "+") (identifier "iVar3")) (, ",") (binary_expression "0x400 - iVar3" (number_literal "0x400") (- "-") (identifier "iVar3")) (, ",") (binary_expression "unaff_EBX + 0x292c5" (identifier "unaff_EBX") (+ "+") (number_literal "0x292c5")) (, ",") (identifier "local_42c") (, ",") (identifier "local_428") () ")")))) (; ";")) (expression_statement "iVar3 = iVar3 + iVar2;" (assignment_expression "iVar3 = iVar3 + iVar2" (identifier "iVar3") (= "=") (binary_expression "iVar3 + iVar2" (identifier "iVar3") (+ "+") (identifier "iVar2"))) (; ";")) (} "}"))) (expression_statement "gss_release_buffer(local_434,&local_42c);" (call_expression "gss_release_buffer(local_434,&local_42c)" (identifier "gss_release_buffer") (argument_list "(local_434,&local_42c)" (( "(") (identifier "local_434") (, ",") (pointer_expression "&local_42c" (& "&") (identifier "local_42c")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uVar1 & 0xffff0000) == 0) && (local_430 != 0))" (( "(") (binary_expression "((uVar1 & 0xffff0000) == 0) && (local_430 != 0)" (parenthesized_expression "((uVar1 & 0xffff0000) == 0)" (( "(") (binary_expression "(uVar1 & 0xffff0000) == 0" (parenthesized_expression "(uVar1 & 0xffff0000)" (( "(") (binary_expression "uVar1 & 0xffff0000" (identifier "uVar1") (& "&") (number_literal "0xffff0000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_430 != 0)" (( "(") (binary_expression "local_430 != 0" (identifier "local_430") (!= "!=") (number_literal "0")) () ")"))) () ")")) (; ";")) (expression_statement "FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);" (call_expression "FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458)" (identifier "FUN_00027c40") (argument_list "(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458)" (( "(") (identifier "unaff_retaddr") (, ",") (binary_expression "unaff_EBX + 0x23ea2" (identifier "unaff_EBX") (+ "+") (number_literal "0x23ea2")) (, ",") (identifier "param_1") (, ",") (identifier "local_458") () ")"))) (; ";")) (if_statement "if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_24 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" (identifier "FUN_00082f60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

void function_1(type_1 *data,char *prefix,type_2 var_2,type_2 minor)

{
  int var_13;
  type_3 var_9;
  int var_7;
  int var_4;
  int var_1;
  char *var_11;
  type_2 *local_450;
  type_2 min_stat;
  type_2 var_10;
  type_4 status_string;
  char var_6 [1024];
  
  var_13 = *(int *)(var_1 + 0x14);
  if (var_2 == 0xd0000) {
    var_4 = 0;
  }
  else {
    var_10 = 0;
    var_4 = 0;
    do {
      local_450 = &var_10;
      var_9 = var_3(&min_stat,var_2,1,0,local_450,&status_string);
      if (status_string.length + 3 + var_4 < 0x400) {
        var_7 = var_5(var_6 + var_4,0x400 - var_4,"%.*s. ",status_string.length,
                               status_string.value);
        var_4 = var_4 + var_7;
      }
      var_8(&min_stat,&status_string);
    } while (((var_9 & 0xffff0000) == 0) && (var_10 != 0));
  }
  local_450 = &var_10;
  var_11 = var_6;
  var_10 = 0;
  do {
    var_9 = var_3(&min_stat,minor,2,0,local_450,&status_string);
    if (status_string.length + 3 + var_4 < 0x400) {
      var_7 = var_5(var_11 + var_4,0x400 - var_4,"%.*s. ",status_string.length,
                             status_string.value);
      var_4 = var_4 + var_7;
    }
    var_8(&min_stat,&status_string);
  } while (((var_9 & 0xffff0000) == 0) && (var_10 != 0));
  var_12(data,"%s%s\n",prefix,var_11);
  if (var_13 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_14();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (number_literal) right: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (number_literal) right: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

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

{
  uint uVar1;
  int iVar2;
  int unaff_EBX;
  int iVar3;
  int in_GS_OFFSET;
  undefined4 unaff_retaddr;
  undefined1 *local_458;
  int *local_454;
  undefined1 local_434 [4];
  int local_430;
  int local_42c;
  undefined4 local_428;
  undefined1 local_424 [1024];
  int local_24;
  undefined4 uStack_14;
  
  uStack_14 = 0x631d9;
  entry();
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 == 0xd0000) {
    iVar3 = 0;
  }
  else {
    local_430 = 0;
    iVar3 = 0;
    do {
      local_454 = &local_430;
      uVar1 = gss_display_status(local_434,param_2,1,0,local_454,&local_42c);
      if ((uint)(local_42c + 3 + iVar3) < 0x400) {
        iVar2 = curl_msnprintf(local_424 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,
                               local_428);
        iVar3 = iVar3 + iVar2;
      }
      gss_release_buffer(local_434,&local_42c);
    } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));
  }
  local_454 = &local_430;
  local_458 = local_424;
  local_430 = 0;
  do {
    uVar1 = gss_display_status(local_434,param_3,2,0,local_454,&local_42c);
    if ((uint)(local_42c + 3 + iVar3) < 0x400) {
      iVar2 = curl_msnprintf(local_458 + iVar3,0x400 - iVar3,unaff_EBX + 0x292c5,local_42c,local_428
                            );
      iVar3 = iVar3 + iVar2;
    }
    gss_release_buffer(local_434,&local_42c);
  } while (((uVar1 & 0xffff0000) == 0) && (local_430 != 0));
  FUN_00027c40(unaff_retaddr,unaff_EBX + 0x23ea2,param_1,local_458);
  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00082f60();
}

