
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Unknown calling convention */

offsetT parse_align(int align_bytes)

{
  uint uVar1;
  char *pcVar2;
  char cVar3;
  uint uVar4;
  ulonglong uVar5;
  expressionS exp;
  
  cVar3 = *input_line_pointer;
  if (cVar3 == ' ') {
    cVar3 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  if (cVar3 == ',') {
    pcVar2 = input_line_pointer + 1;
    if (input_line_pointer[1] == ' ') {
      pcVar2 = input_line_pointer + 2;
    }
    input_line_pointer = pcVar2;
    uVar5 = get_absolute_expr(&exp);
    if (exp._16_1_ != '\x01') {
      if ((exp._17_1_ & 1) == 0) {
        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);
        as_warn(pcVar2);
        return 0;
      }
      if (align_bytes == 0) {
        return uVar5;
      }
      if (uVar5 == 0) {
        return 0;
      }
      uVar1 = (uint)uVar5 & 1;
      if ((uVar5 & 1) == 0) {
        do {
          uVar4 = (uint)uVar5;
          uVar1 = uVar1 + 1;
          uVar5 = uVar5 >> 1;
        } while ((uVar4 >> 1 & 1) == 0);
      }
      else {
        uVar1 = 0;
      }
      if (uVar5 == 1) {
        return (ulonglong)uVar1;
      }
      pcVar2 = "alignment not a power of 2";
      goto LAB_0002d09f;
    }
  }
  pcVar2 = "expected alignment after size";
LAB_0002d09f:
  pcVar2 = (char *)dcgettext(0,pcVar2,5);
  as_bad(pcVar2);
  ignore_rest_of_line();
  return -1;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int FUN_0002cfc0(int param_1)

{
  ulonglong uVar1;
  int iVar2;
  char *pcVar3;
  undefined4 uVar4;
  char cVar5;
  uint uVar6;
  ulonglong uVar7;
  char local_10;
  byte local_f;
  
  cVar5 = *DAT_00070ff8;
  if (cVar5 == ' ') {
    cVar5 = DAT_00070ff8[1];
    DAT_00070ff8 = DAT_00070ff8 + 1;
  }
  if (cVar5 == ',') {
    pcVar3 = DAT_00070ff8 + 1;
    if (DAT_00070ff8[1] == ' ') {
      pcVar3 = DAT_00070ff8 + 2;
    }
    DAT_00070ff8 = pcVar3;
    uVar7 = FUN_0002b380();
    if (local_10 != '\x01') {
      if ((local_f & 1) == 0) {
        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);
        FUN_0002ab70(uVar4);
        return 0;
      }
      if (param_1 == 0) {
        return (int)uVar7;
      }
      if (uVar7 == 0) {
        return (int)uVar7;
      }
      if ((uVar7 & 1) == 0) {
        iVar2 = 0;
        do {
          uVar6 = (uint)uVar7;
          iVar2 = iVar2 + 1;
          uVar1 = uVar7 >> 1;
          uVar7 = uVar7 >> 1;
        } while ((uVar6 >> 1 & 1) == 0);
      }
      else {
        iVar2 = 0;
        uVar1 = uVar7;
      }
      if (uVar1 == 1) {
        return iVar2;
      }
      pcVar3 = "alignment not a power of 2";
      goto LAB_0002d09f;
    }
  }
  pcVar3 = "expected alignment after size";
LAB_0002d09f:
  uVar4 = dcgettext(0,pcVar3,5);
  FUN_0002ac50(uVar4);
  FUN_0002cf40();
  return -1;
}


PUSH EDI
PUSH ESI
CALL 0x0001eeac
ADD ESI,0x3b039
PUSH EBX
SUB ESP,0x20
LEA EDX,[ESI + 0x8ff8]
MOV EAX,dword ptr [EDX]
MOVZX ECX,byte ptr [EAX]
CMP CL,0x20
JNZ 0x0002cfec
LEA EBX,[EAX + 0x1]
MOV dword ptr [EDX],EBX
MOVZX ECX,byte ptr [EAX + 0x1]
MOV EAX,EBX
CMP CL,0x2c
JNZ 0x0002d094
LEA ECX,[EAX + 0x1]
MOV dword ptr [EDX],ECX
CMP byte ptr [EAX + 0x1],0x20
JNZ 0x0002d005
ADD EAX,0x2
MOV dword ptr [EDX],EAX
LEA EAX,[ESP + 0xc]
CALL 0x0002b380
CMP byte ptr [ESP + 0x1c],0x1
JZ 0x0002d094
TEST byte ptr [ESP + 0x1d],0x1
JZ 0x0002d060
MOV EDI,dword ptr [ESP + 0x30]
MOV ECX,EAX
MOV EBX,EDX
TEST EDI,EDI
JZ 0x0002d055
MOV EDI,EAX
OR EDI,EDX
JZ 0x0002d055
AND EAX,0x1
JNZ 0x0002d090
LEA ESI,[ESI]
NOP
SHRD ECX,EBX,0x1
ADD EAX,0x1
SHR EBX,0x1
MOV EDX,ECX
AND EDX,0x1
JZ 0x0002d038
MOV EDX,ECX
MOV ECX,EBX
XOR EDX,0x1
OR ECX,EDX
JNZ 0x0002d0c5
XOR EDX,EDX
ADD ESP,0x20
POP EBX
POP ESI
POP EDI
RET
SUB ESP,0x4
LEA EAX,[ESI + 0xfffe7181]
MOV EBX,ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131b0
MOV dword ptr [ESP],EAX
CALL 0x0002ab70
ADD ESP,0x10
XOR EAX,EAX
XOR EDX,EDX
ADD ESP,0x20
POP EBX
POP ESI
POP EDI
RET
XOR EAX,EAX
JMP 0x0002d048
SUB ESP,0x4
LEA EAX,[ESI + 0xfffe7163]
PUSH 0x5
PUSH EAX
MOV EBX,ESI
PUSH 0x0
CALL 0x000131b0
MOV dword ptr [ESP],EAX
CALL 0x0002ac50
CALL 0x0002cf40
ADD ESP,0x10
MOV EAX,0xffffffff
MOV EDX,0xffffffff
JMP 0x0002d055
SUB ESP,0x4
LEA EAX,[ESI + 0xfffe719f]
PUSH 0x5
JMP 0x0002d09f
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nint FUN_0002cfc0(int param_1)\n\n{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}\n\n" comment (function_definition "int FUN_0002cfc0(int param_1)\n\n{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}" primitive_type (function_declarator "FUN_0002cfc0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "char local_10;" primitive_type identifier ;) (declaration "byte local_f;" type_identifier identifier ;) (expression_statement "cVar5 = *DAT_00070ff8;" (assignment_expression "cVar5 = *DAT_00070ff8" identifier = (pointer_expression "*DAT_00070ff8" * identifier)) ;) (if_statement "if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }" if (parenthesized_expression "(cVar5 == ' ')" ( (binary_expression "cVar5 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }" { (expression_statement "cVar5 = DAT_00070ff8[1];" (assignment_expression "cVar5 = DAT_00070ff8[1]" identifier = (subscript_expression "DAT_00070ff8[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00070ff8 = DAT_00070ff8 + 1;" (assignment_expression "DAT_00070ff8 = DAT_00070ff8 + 1" identifier = (binary_expression "DAT_00070ff8 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" if (parenthesized_expression "(cVar5 == ',')" ( (binary_expression "cVar5 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" { (expression_statement "pcVar3 = DAT_00070ff8 + 1;" (assignment_expression "pcVar3 = DAT_00070ff8 + 1" identifier = (binary_expression "DAT_00070ff8 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }" if (parenthesized_expression "(DAT_00070ff8[1] == ' ')" ( (binary_expression "DAT_00070ff8[1] == ' '" (subscript_expression "DAT_00070ff8[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n      pcVar3 = DAT_00070ff8 + 2;\n    }" { (expression_statement "pcVar3 = DAT_00070ff8 + 2;" (assignment_expression "pcVar3 = DAT_00070ff8 + 2" identifier = (binary_expression "DAT_00070ff8 + 2" identifier + number_literal)) ;) })) (expression_statement "DAT_00070ff8 = pcVar3;" (assignment_expression "DAT_00070ff8 = pcVar3" identifier = identifier) ;) (expression_statement "uVar7 = FUN_0002b380();" (assignment_expression "uVar7 = FUN_0002b380()" identifier = (call_expression "FUN_0002b380()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" if (parenthesized_expression "(local_10 != '\x01')" ( (binary_expression "local_10 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" { (if_statement "if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }" if (parenthesized_expression "((local_f & 1) == 0)" ( (binary_expression "(local_f & 1) == 0" (parenthesized_expression "(local_f & 1)" ( (binary_expression "local_f & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }" { (expression_statement "uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);" (assignment_expression "uVar4 = dcgettext(0,"alignment negative; 0 assumed",5)" identifier = (call_expression "dcgettext(0,"alignment negative; 0 assumed",5)" identifier (argument_list "(0,"alignment negative; 0 assumed",5)" ( number_literal , (string_literal ""alignment negative; 0 assumed"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002ab70(uVar4);" (call_expression "FUN_0002ab70(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_1 == 0) {\n        return (int)uVar7;\n      }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n        return (int)uVar7;\n      }" { (return_statement "return (int)uVar7;" return (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (if_statement "if (uVar7 == 0) {\n        return (int)uVar7;\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return (int)uVar7;\n      }" { (return_statement "return (int)uVar7;" return (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (if_statement "if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" if (parenthesized_expression "((uVar7 & 1) == 0)" ( (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);" do (compound_statement "{\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        }" { (expression_statement "uVar6 = (uint)uVar7;" (assignment_expression "uVar6 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = uVar7 >> 1;" (assignment_expression "uVar1 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar7 = uVar7 >> 1;" (assignment_expression "uVar7 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "((uVar6 >> 1 & 1) == 0)" ( (binary_expression "(uVar6 >> 1 & 1) == 0" (parenthesized_expression "(uVar6 >> 1 & 1)" ( (binary_expression "uVar6 >> 1 & 1" (binary_expression "uVar6 >> 1" identifier >> number_literal) & number_literal) )) == number_literal) )) ;) }) (else_clause "else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" else (compound_statement "{\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = uVar7;" (assignment_expression "uVar1 = uVar7" identifier = identifier) ;) }))) (if_statement "if (uVar1 == 1) {\n        return iVar2;\n      }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n        return iVar2;\n      }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar3 = "alignment not a power of 2";" (assignment_expression "pcVar3 = "alignment not a power of 2"" identifier = (string_literal ""alignment not a power of 2"" " string_content ")) ;) (goto_statement "goto LAB_0002d09f;" goto statement_identifier ;) })) })) (expression_statement "pcVar3 = "expected alignment after size";" (assignment_expression "pcVar3 = "expected alignment after size"" identifier = (string_literal ""expected alignment after size"" " string_content ")) ;) (labeled_statement "LAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002ac50(uVar4);" (call_expression "FUN_0002ac50(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002cf40();" (call_expression "FUN_0002cf40()" identifier (argument_list "()" ( ))) ;) (return_statement "return -1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* WARNING: Unknown calling convention */\n\noffsetT parse_align(int align_bytes)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  char cVar3;\n  uint uVar4;\n  ulonglong uVar5;\n  expressionS exp;\n  \n  cVar3 = *input_line_pointer;\n  if (cVar3 == ' ') {\n    cVar3 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar3 == ',') {\n    pcVar2 = input_line_pointer + 1;\n    if (input_line_pointer[1] == ' ') {\n      pcVar2 = input_line_pointer + 2;\n    }\n    input_line_pointer = pcVar2;\n    uVar5 = get_absolute_expr(&exp);\n    if (exp._16_1_ != '\x01') {\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar2 = "expected alignment after size";\nLAB_0002d09f:\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  as_bad(pcVar2);\n  ignore_rest_of_line();\n  return -1;\n}\n\n" comment comment (function_definition "offsetT parse_align(int align_bytes)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  char cVar3;\n  uint uVar4;\n  ulonglong uVar5;\n  expressionS exp;\n  \n  cVar3 = *input_line_pointer;\n  if (cVar3 == ' ') {\n    cVar3 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar3 == ',') {\n    pcVar2 = input_line_pointer + 1;\n    if (input_line_pointer[1] == ' ') {\n      pcVar2 = input_line_pointer + 2;\n    }\n    input_line_pointer = pcVar2;\n    uVar5 = get_absolute_expr(&exp);\n    if (exp._16_1_ != '\x01') {\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar2 = "expected alignment after size";\nLAB_0002d09f:\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  as_bad(pcVar2);\n  ignore_rest_of_line();\n  return -1;\n}" type_identifier (function_declarator "parse_align(int align_bytes)" identifier (parameter_list "(int align_bytes)" ( (parameter_declaration "int align_bytes" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  char *pcVar2;\n  char cVar3;\n  uint uVar4;\n  ulonglong uVar5;\n  expressionS exp;\n  \n  cVar3 = *input_line_pointer;\n  if (cVar3 == ' ') {\n    cVar3 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar3 == ',') {\n    pcVar2 = input_line_pointer + 1;\n    if (input_line_pointer[1] == ' ') {\n      pcVar2 = input_line_pointer + 2;\n    }\n    input_line_pointer = pcVar2;\n    uVar5 = get_absolute_expr(&exp);\n    if (exp._16_1_ != '\x01') {\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar2 = "expected alignment after size";\nLAB_0002d09f:\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  as_bad(pcVar2);\n  ignore_rest_of_line();\n  return -1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (declaration "expressionS exp;" type_identifier identifier ;) (expression_statement "cVar3 = *input_line_pointer;" (assignment_expression "cVar3 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar3 == ' ') {\n    cVar3 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar3 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "cVar3 = input_line_pointer[1];" (assignment_expression "cVar3 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar3 == ',') {\n    pcVar2 = input_line_pointer + 1;\n    if (input_line_pointer[1] == ' ') {\n      pcVar2 = input_line_pointer + 2;\n    }\n    input_line_pointer = pcVar2;\n    uVar5 = get_absolute_expr(&exp);\n    if (exp._16_1_ != '\x01') {\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" if (parenthesized_expression "(cVar3 == ',')" ( (binary_expression "cVar3 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n    pcVar2 = input_line_pointer + 1;\n    if (input_line_pointer[1] == ' ') {\n      pcVar2 = input_line_pointer + 2;\n    }\n    input_line_pointer = pcVar2;\n    uVar5 = get_absolute_expr(&exp);\n    if (exp._16_1_ != '\x01') {\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" { (expression_statement "pcVar2 = input_line_pointer + 1;" (assignment_expression "pcVar2 = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (if_statement "if (input_line_pointer[1] == ' ') {\n      pcVar2 = input_line_pointer + 2;\n    }" if (parenthesized_expression "(input_line_pointer[1] == ' ')" ( (binary_expression "input_line_pointer[1] == ' '" (subscript_expression "input_line_pointer[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n      pcVar2 = input_line_pointer + 2;\n    }" { (expression_statement "pcVar2 = input_line_pointer + 2;" (assignment_expression "pcVar2 = input_line_pointer + 2" identifier = (binary_expression "input_line_pointer + 2" identifier + number_literal)) ;) })) (expression_statement "input_line_pointer = pcVar2;" (assignment_expression "input_line_pointer = pcVar2" identifier = identifier) ;) (expression_statement "uVar5 = get_absolute_expr(&exp);" (assignment_expression "uVar5 = get_absolute_expr(&exp)" identifier = (call_expression "get_absolute_expr(&exp)" identifier (argument_list "(&exp)" ( (pointer_expression "&exp" & identifier) )))) ;) (if_statement "if (exp._16_1_ != '\x01') {\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" if (parenthesized_expression "(exp._16_1_ != '\x01')" ( (binary_expression "exp._16_1_ != '\x01'" (field_expression "exp._16_1_" identifier . field_identifier) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }\n      if (align_bytes == 0) {\n        return uVar5;\n      }\n      if (uVar5 == 0) {\n        return 0;\n      }\n      uVar1 = (uint)uVar5 & 1;\n      if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }\n      if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }\n      pcVar2 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" { (if_statement "if ((exp._17_1_ & 1) == 0) {\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }" if (parenthesized_expression "((exp._17_1_ & 1) == 0)" ( (binary_expression "(exp._17_1_ & 1) == 0" (parenthesized_expression "(exp._17_1_ & 1)" ( (binary_expression "exp._17_1_ & 1" (field_expression "exp._17_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);\n        as_warn(pcVar2);\n        return 0;\n      }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"alignment negative; 0 assumed",5)" identifier = (cast_expression "(char *)dcgettext(0,"alignment negative; 0 assumed",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"alignment negative; 0 assumed",5)" identifier (argument_list "(0,"alignment negative; 0 assumed",5)" ( number_literal , (string_literal ""alignment negative; 0 assumed"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar2);" (call_expression "as_warn(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (align_bytes == 0) {\n        return uVar5;\n      }" if (parenthesized_expression "(align_bytes == 0)" ( (binary_expression "align_bytes == 0" identifier == number_literal) )) (compound_statement "{\n        return uVar5;\n      }" { (return_statement "return uVar5;" return identifier ;) })) (if_statement "if (uVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar1 = (uint)uVar5 & 1;" (assignment_expression "uVar1 = (uint)uVar5 & 1" identifier = (binary_expression "(uint)uVar5 & 1" (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((uVar5 & 1) == 0) {\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }\n      else {\n        uVar1 = 0;\n      }" if (parenthesized_expression "((uVar5 & 1) == 0)" ( (binary_expression "(uVar5 & 1) == 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);\n      }" { (do_statement "do {\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        } while ((uVar4 >> 1 & 1) == 0);" do (compound_statement "{\n          uVar4 = (uint)uVar5;\n          uVar1 = uVar1 + 1;\n          uVar5 = uVar5 >> 1;\n        }" { (expression_statement "uVar4 = (uint)uVar5;" (assignment_expression "uVar4 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "((uVar4 >> 1 & 1) == 0)" ( (binary_expression "(uVar4 >> 1 & 1) == 0" (parenthesized_expression "(uVar4 >> 1 & 1)" ( (binary_expression "uVar4 >> 1 & 1" (binary_expression "uVar4 >> 1" identifier >> number_literal) & number_literal) )) == number_literal) )) ;) }) (else_clause "else {\n        uVar1 = 0;\n      }" else (compound_statement "{\n        uVar1 = 0;\n      }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar5 == 1) {\n        return (ulonglong)uVar1;\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        return (ulonglong)uVar1;\n      }" { (return_statement "return (ulonglong)uVar1;" return (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) ;) })) (expression_statement "pcVar2 = "alignment not a power of 2";" (assignment_expression "pcVar2 = "alignment not a power of 2"" identifier = (string_literal ""alignment not a power of 2"" " string_content ")) ;) (goto_statement "goto LAB_0002d09f;" goto statement_identifier ;) })) })) (expression_statement "pcVar2 = "expected alignment after size";" (assignment_expression "pcVar2 = "expected alignment after size"" identifier = (string_literal ""expected alignment after size"" " string_content ")) ;) (labeled_statement "LAB_0002d09f:\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);" statement_identifier : (expression_statement "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,pcVar2,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar2,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return -1;" return number_literal ;) })))
(translation_unit "int FUN_0002cfc0(int param_1)\n\n{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}\n\n" (function_definition "int FUN_0002cfc0(int param_1)\n\n{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}" primitive_type (function_declarator "FUN_0002cfc0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "char local_10;" primitive_type identifier ;) (declaration "byte local_f;" type_identifier identifier ;) (expression_statement "cVar5 = *DAT_00070ff8;" (assignment_expression "cVar5 = *DAT_00070ff8" identifier = (pointer_expression "*DAT_00070ff8" * identifier)) ;) (if_statement "if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }" if (parenthesized_expression "(cVar5 == ' ')" ( (binary_expression "cVar5 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }" { (expression_statement "cVar5 = DAT_00070ff8[1];" (assignment_expression "cVar5 = DAT_00070ff8[1]" identifier = (subscript_expression "DAT_00070ff8[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00070ff8 = DAT_00070ff8 + 1;" (assignment_expression "DAT_00070ff8 = DAT_00070ff8 + 1" identifier = (binary_expression "DAT_00070ff8 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" if (parenthesized_expression "(cVar5 == ',')" ( (binary_expression "cVar5 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" { (expression_statement "pcVar3 = DAT_00070ff8 + 1;" (assignment_expression "pcVar3 = DAT_00070ff8 + 1" identifier = (binary_expression "DAT_00070ff8 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }" if (parenthesized_expression "(DAT_00070ff8[1] == ' ')" ( (binary_expression "DAT_00070ff8[1] == ' '" (subscript_expression "DAT_00070ff8[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n      pcVar3 = DAT_00070ff8 + 2;\n    }" { (expression_statement "pcVar3 = DAT_00070ff8 + 2;" (assignment_expression "pcVar3 = DAT_00070ff8 + 2" identifier = (binary_expression "DAT_00070ff8 + 2" identifier + number_literal)) ;) })) (expression_statement "DAT_00070ff8 = pcVar3;" (assignment_expression "DAT_00070ff8 = pcVar3" identifier = identifier) ;) (expression_statement "uVar7 = FUN_0002b380();" (assignment_expression "uVar7 = FUN_0002b380()" identifier = (call_expression "FUN_0002b380()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" if (parenthesized_expression "(local_10 != '\x01')" ( (binary_expression "local_10 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" { (if_statement "if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }" if (parenthesized_expression "((local_f & 1) == 0)" ( (binary_expression "(local_f & 1) == 0" (parenthesized_expression "(local_f & 1)" ( (binary_expression "local_f & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }" { (expression_statement "uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);" (assignment_expression "uVar4 = dcgettext(0,"alignment negative; 0 assumed",5)" identifier = (call_expression "dcgettext(0,"alignment negative; 0 assumed",5)" identifier (argument_list "(0,"alignment negative; 0 assumed",5)" ( number_literal , (string_literal ""alignment negative; 0 assumed"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002ab70(uVar4);" (call_expression "FUN_0002ab70(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_1 == 0) {\n        return (int)uVar7;\n      }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n        return (int)uVar7;\n      }" { (return_statement "return (int)uVar7;" return (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (if_statement "if (uVar7 == 0) {\n        return (int)uVar7;\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return (int)uVar7;\n      }" { (return_statement "return (int)uVar7;" return (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (if_statement "if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" if (parenthesized_expression "((uVar7 & 1) == 0)" ( (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);" do (compound_statement "{\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        }" { (expression_statement "uVar6 = (uint)uVar7;" (assignment_expression "uVar6 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = uVar7 >> 1;" (assignment_expression "uVar1 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar7 = uVar7 >> 1;" (assignment_expression "uVar7 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "((uVar6 >> 1 & 1) == 0)" ( (binary_expression "(uVar6 >> 1 & 1) == 0" (parenthesized_expression "(uVar6 >> 1 & 1)" ( (binary_expression "uVar6 >> 1 & 1" (binary_expression "uVar6 >> 1" identifier >> number_literal) & number_literal) )) == number_literal) )) ;) }) (else_clause "else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" else (compound_statement "{\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = uVar7;" (assignment_expression "uVar1 = uVar7" identifier = identifier) ;) }))) (if_statement "if (uVar1 == 1) {\n        return iVar2;\n      }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n        return iVar2;\n      }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar3 = "alignment not a power of 2";" (assignment_expression "pcVar3 = "alignment not a power of 2"" identifier = (string_literal ""alignment not a power of 2"" " string_content ")) ;) (goto_statement "goto LAB_0002d09f;" goto statement_identifier ;) })) })) (expression_statement "pcVar3 = "expected alignment after size";" (assignment_expression "pcVar3 = "expected alignment after size"" identifier = (string_literal ""expected alignment after size"" " string_content ")) ;) (labeled_statement "LAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002ac50(uVar4);" (call_expression "FUN_0002ac50(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002cf40();" (call_expression "FUN_0002cf40()" identifier (argument_list "()" ( ))) ;) (return_statement "return -1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) == LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })))
(function_definition "int FUN_0002cfc0(int param_1)\n\n{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}" (primitive_type "int") (function_declarator "FUN_0002cfc0(int param_1)" (identifier "FUN_0002cfc0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  ulonglong uVar1;\n  int iVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulonglong uVar7;\n  char local_10;\n  byte local_f;\n  \n  cVar5 = *DAT_00070ff8;\n  if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }\n  if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }\n  pcVar3 = "expected alignment after size";\nLAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002ac50(uVar4);\n  FUN_0002cf40();\n  return -1;\n}" ({ "{") (declaration "ulonglong uVar1;" (type_identifier "ulonglong") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "ulonglong uVar7;" (type_identifier "ulonglong") (identifier "uVar7") (; ";")) (declaration "char local_10;" (primitive_type "char") (identifier "local_10") (; ";")) (declaration "byte local_f;" (type_identifier "byte") (identifier "local_f") (; ";")) (expression_statement "cVar5 = *DAT_00070ff8;" (assignment_expression "cVar5 = *DAT_00070ff8" (identifier "cVar5") (= "=") (pointer_expression "*DAT_00070ff8" (* "*") (identifier "DAT_00070ff8"))) (; ";")) (if_statement "if (cVar5 == ' ') {\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }" (if "if") (parenthesized_expression "(cVar5 == ' ')" (( "(") (binary_expression "cVar5 == ' '" (identifier "cVar5") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    cVar5 = DAT_00070ff8[1];\n    DAT_00070ff8 = DAT_00070ff8 + 1;\n  }" ({ "{") (expression_statement "cVar5 = DAT_00070ff8[1];" (assignment_expression "cVar5 = DAT_00070ff8[1]" (identifier "cVar5") (= "=") (subscript_expression "DAT_00070ff8[1]" (identifier "DAT_00070ff8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00070ff8 = DAT_00070ff8 + 1;" (assignment_expression "DAT_00070ff8 = DAT_00070ff8 + 1" (identifier "DAT_00070ff8") (= "=") (binary_expression "DAT_00070ff8 + 1" (identifier "DAT_00070ff8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (cVar5 == ',') {\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" (if "if") (parenthesized_expression "(cVar5 == ',')" (( "(") (binary_expression "cVar5 == ','" (identifier "cVar5") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    pcVar3 = DAT_00070ff8 + 1;\n    if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }\n    DAT_00070ff8 = pcVar3;\n    uVar7 = FUN_0002b380();\n    if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }\n  }" ({ "{") (expression_statement "pcVar3 = DAT_00070ff8 + 1;" (assignment_expression "pcVar3 = DAT_00070ff8 + 1" (identifier "pcVar3") (= "=") (binary_expression "DAT_00070ff8 + 1" (identifier "DAT_00070ff8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (DAT_00070ff8[1] == ' ') {\n      pcVar3 = DAT_00070ff8 + 2;\n    }" (if "if") (parenthesized_expression "(DAT_00070ff8[1] == ' ')" (( "(") (binary_expression "DAT_00070ff8[1] == ' '" (subscript_expression "DAT_00070ff8[1]" (identifier "DAT_00070ff8") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n      pcVar3 = DAT_00070ff8 + 2;\n    }" ({ "{") (expression_statement "pcVar3 = DAT_00070ff8 + 2;" (assignment_expression "pcVar3 = DAT_00070ff8 + 2" (identifier "pcVar3") (= "=") (binary_expression "DAT_00070ff8 + 2" (identifier "DAT_00070ff8") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "DAT_00070ff8 = pcVar3;" (assignment_expression "DAT_00070ff8 = pcVar3" (identifier "DAT_00070ff8") (= "=") (identifier "pcVar3")) (; ";")) (expression_statement "uVar7 = FUN_0002b380();" (assignment_expression "uVar7 = FUN_0002b380()" (identifier "uVar7") (= "=") (call_expression "FUN_0002b380()" (identifier "FUN_0002b380") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_10 != '\x01') {\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" (if "if") (parenthesized_expression "(local_10 != '\x01')" (( "(") (binary_expression "local_10 != '\x01'" (identifier "local_10") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n      if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }\n      if (param_1 == 0) {\n        return (int)uVar7;\n      }\n      if (uVar7 == 0) {\n        return (int)uVar7;\n      }\n      if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }\n      if (uVar1 == 1) {\n        return iVar2;\n      }\n      pcVar3 = "alignment not a power of 2";\n      goto LAB_0002d09f;\n    }" ({ "{") (if_statement "if ((local_f & 1) == 0) {\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }" (if "if") (parenthesized_expression "((local_f & 1) == 0)" (( "(") (binary_expression "(local_f & 1) == 0" (parenthesized_expression "(local_f & 1)" (( "(") (binary_expression "local_f & 1" (identifier "local_f") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);\n        FUN_0002ab70(uVar4);\n        return 0;\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);" (assignment_expression "uVar4 = dcgettext(0,"alignment negative; 0 assumed",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"alignment negative; 0 assumed",5)" (identifier "dcgettext") (argument_list "(0,"alignment negative; 0 assumed",5)" (( "(") (number_literal "0") (, ",") (string_literal ""alignment negative; 0 assumed"" (" """) (string_content "alignment negative; 0 assumed") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002ab70(uVar4);" (call_expression "FUN_0002ab70(uVar4)" (identifier "FUN_0002ab70") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_1 == 0) {\n        return (int)uVar7;\n      }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return (int)uVar7;\n      }" ({ "{") (return_statement "return (int)uVar7;" (return "return") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (; ";")) (} "}"))) (if_statement "if (uVar7 == 0) {\n        return (int)uVar7;\n      }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return (int)uVar7;\n      }" ({ "{") (return_statement "return (int)uVar7;" (return "return") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (; ";")) (} "}"))) (if_statement "if ((uVar7 & 1) == 0) {\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }\n      else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" (if "if") (parenthesized_expression "((uVar7 & 1) == 0)" (( "(") (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" (( "(") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = 0;\n        do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);\n      }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        } while ((uVar6 >> 1 & 1) == 0);" (do "do") (compound_statement "{\n          uVar6 = (uint)uVar7;\n          iVar2 = iVar2 + 1;\n          uVar1 = uVar7 >> 1;\n          uVar7 = uVar7 >> 1;\n        }" ({ "{") (expression_statement "uVar6 = (uint)uVar7;" (assignment_expression "uVar6 = (uint)uVar7" (identifier "uVar6") (= "=") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = uVar7 >> 1;" (assignment_expression "uVar1 = uVar7 >> 1" (identifier "uVar1") (= "=") (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = uVar7 >> 1;" (assignment_expression "uVar7 = uVar7 >> 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar6 >> 1 & 1) == 0)" (( "(") (binary_expression "(uVar6 >> 1 & 1) == 0" (parenthesized_expression "(uVar6 >> 1 & 1)" (( "(") (binary_expression "uVar6 >> 1 & 1" (binary_expression "uVar6 >> 1" (identifier "uVar6") (>> ">>") (number_literal "1")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" (else "else") (compound_statement "{\n        iVar2 = 0;\n        uVar1 = uVar7;\n      }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = uVar7;" (assignment_expression "uVar1 = uVar7" (identifier "uVar1") (= "=") (identifier "uVar7")) (; ";")) (} "}")))) (if_statement "if (uVar1 == 1) {\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(uVar1 == 1)" (( "(") (binary_expression "uVar1 == 1" (identifier "uVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        return iVar2;\n      }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "pcVar3 = "alignment not a power of 2";" (assignment_expression "pcVar3 = "alignment not a power of 2"" (identifier "pcVar3") (= "=") (string_literal ""alignment not a power of 2"" (" """) (string_content "alignment not a power of 2") (" """))) (; ";")) (goto_statement "goto LAB_0002d09f;" (goto "goto") (statement_identifier "LAB_0002d09f") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar3 = "expected alignment after size";" (assignment_expression "pcVar3 = "expected alignment after size"" (identifier "pcVar3") (= "=") (string_literal ""expected alignment after size"" (" """) (string_content "expected alignment after size") (" """))) (; ";")) (labeled_statement "LAB_0002d09f:\n  uVar4 = dcgettext(0,pcVar3,5);" (statement_identifier "LAB_0002d09f") (: ":") (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar3,5)" (identifier "dcgettext") (argument_list "(0,pcVar3,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002ac50(uVar4);" (call_expression "FUN_0002ac50(uVar4)" (identifier "FUN_0002ac50") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_0002cf40();" (call_expression "FUN_0002cf40()" (identifier "FUN_0002cf40") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return -1;" (return "return") (number_literal "-1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Unknown calling convention */

type_1 function_1(int var_6)

{
  type_2 var_8;
  char *pcVar2;
  char var_1;
  type_2 var_9;
  type_3 var_7;
  type_4 exp;
  
  var_1 = *var_2;
  if (var_1 == ' ') {
    var_1 = var_2[1];
    var_2 = var_2 + 1;
  }
  if (var_1 == ',') {
    pcVar2 = var_2 + 1;
    if (var_2[1] == ' ') {
      pcVar2 = var_2 + 2;
    }
    var_2 = pcVar2;
    var_7 = var_3(&exp);
    if (exp._16_1_ != '\x01') {
      if ((exp._17_1_ & 1) == 0) {
        pcVar2 = (char *)var_4(0,"alignment negative; 0 assumed",5);
        var_5(pcVar2);
        return 0;
      }
      if (var_6 == 0) {
        return var_7;
      }
      if (var_7 == 0) {
        return 0;
      }
      var_8 = (type_2)var_7 & 1;
      if ((var_7 & 1) == 0) {
        do {
          var_9 = (type_2)var_7;
          var_8 = var_8 + 1;
          var_7 = var_7 >> 1;
        } while ((var_9 >> 1 & 1) == 0);
      }
      else {
        var_8 = 0;
      }
      if (var_7 == 1) {
        return (type_3)var_8;
      }
      pcVar2 = "alignment not a power of 2";
      goto LAB_0002d09f;
    }
  }
  pcVar2 = "expected alignment after size";
LAB_0002d09f:
  pcVar2 = (char *)var_4(0,pcVar2,5);
  var_10(pcVar2);
  var_11();
  return -1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int MASKED(int param_1)

{
  ulonglong uVar1;
  int iVar2;
  char *pcVar3;
  undefined4 uVar4;
  char cVar5;
  uint uVar6;
  ulonglong uVar7;
  char local_10;
  byte local_f;
  
  cVar5 = *DAT_00070ff8;
  if (cVar5 == ' ') {
    cVar5 = DAT_00070ff8[1];
    DAT_00070ff8 = DAT_00070ff8 + 1;
  }
  if (cVar5 == ',') {
    pcVar3 = DAT_00070ff8 + 1;
    if (DAT_00070ff8[1] == ' ') {
      pcVar3 = DAT_00070ff8 + 2;
    }
    DAT_00070ff8 = pcVar3;
    uVar7 = FUN_0002b380();
    if (local_10 != '\x01') {
      if ((local_f & 1) == 0) {
        uVar4 = dcgettext(0,"alignment negative; 0 assumed",5);
        FUN_0002ab70(uVar4);
        return 0;
      }
      if (param_1 == 0) {
        return (int)uVar7;
      }
      if (uVar7 == 0) {
        return (int)uVar7;
      }
      if ((uVar7 & 1) == 0) {
        iVar2 = 0;
        do {
          uVar6 = (uint)uVar7;
          iVar2 = iVar2 + 1;
          uVar1 = uVar7 >> 1;
          uVar7 = uVar7 >> 1;
        } while ((uVar6 >> 1 & 1) == 0);
      }
      else {
        iVar2 = 0;
        uVar1 = uVar7;
      }
      if (uVar1 == 1) {
        return iVar2;
      }
      pcVar3 = "alignment not a power of 2";
      goto LAB_0002d09f;
    }
  }
  pcVar3 = "expected alignment after size";
LAB_0002d09f:
  uVar4 = dcgettext(0,pcVar3,5);
  FUN_0002ac50(uVar4);
  FUN_0002cf40();
  return -1;
}

