
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void obj_elf_size(int ignore)

{
  char *pcVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  char cVar4;
  char *pcVar5;
  symbolS *s;
  elf_obj_sy *peVar6;
  expressionS *peVar7;
  asymbol *paVar8;
  char cVar9;
  char *name;
  expressionS exp;
  
  cVar4 = get_symbol_name(&name);
  pcVar1 = input_line_pointer;
  *input_line_pointer = cVar4;
  cVar9 = *input_line_pointer;
  if (cVar9 == '\"') {
    cVar9 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  if (cVar9 == ' ') {
    cVar9 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  if (cVar9 != ',') {
    *pcVar1 = '\0';
    pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);
    as_bad(pcVar5,name);
    *pcVar1 = cVar4;
    ignore_rest_of_line();
    return;
  }
  input_line_pointer = input_line_pointer + 1;
  expr(0,&exp,expr_normal);
  if (exp._16_1_ == '\x01') {
    pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);
    as_bad(pcVar5);
    exp._16_1_ = 2;
    exp.X_add_number._0_4_ = 0;
    exp.X_add_number._4_4_ = 0;
  }
  *pcVar1 = '\0';
  s = symbol_find_or_make(name);
  uVar3 = exp.X_add_number._4_4_;
  uVar2 = (undefined4)exp.X_add_number;
  *pcVar1 = cVar4;
  if (exp._16_1_ == '\x02') {
    paVar8 = symbol_get_bfdsym(s);
    *(undefined4 *)&paVar8[1].value = uVar2;
    *(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;
    peVar6 = symbol_get_obj(s);
    if (peVar6->size != (expressionS *)0x0) {
      peVar6 = symbol_get_obj(s);
      free(peVar6->size);
      peVar6 = symbol_get_obj(s);
      peVar6->size = (expressionS *)0x0;
    }
  }
  else {
    peVar6 = symbol_get_obj(s);
    peVar7 = (expressionS *)xmalloc(0x14);
    peVar6->size = peVar7;
    peVar6 = symbol_get_obj(s);
    peVar7 = peVar6->size;
    peVar7->X_add_symbol = exp.X_add_symbol;
    peVar7->X_op_symbol = exp.X_op_symbol;
    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;
    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;
    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;
    peVar7->X_md = exp.X_md;
  }
  demand_empty_rest_of_line();
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000546b0(void)

{
  undefined4 *puVar1;
  char *pcVar2;
  undefined4 uVar3;
  char cVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  int iVar7;
  char cVar8;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x546b9;
  cVar4 = FUN_000220a0(&local_34);
  pcVar2 = DAT_00089978;
  *DAT_00089978 = cVar4;
  cVar8 = *DAT_00089978;
  if (cVar8 == '\"') {
    cVar8 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if (cVar8 == ' ') {
    cVar8 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if (cVar8 != ',') {
    *pcVar2 = '\0';
    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);
    FUN_0002bd60(uVar5,local_34);
    *pcVar2 = cVar4;
    FUN_0002e290();
    return;
  }
  DAT_00089978 = DAT_00089978 + 1;
  FUN_000221d0(0,&local_30,1);
  if ((char)local_20 == '\x01') {
    uVar5 = dcgettext(0,"missing expression in .size directive",5);
    FUN_0002bd60(uVar5);
    local_20 = CONCAT31(local_20._1_3_,2);
    local_28 = 0;
    local_24 = 0;
  }
  *pcVar2 = '\0';
  uVar6 = FUN_0003a9e0(local_34);
  uVar3 = local_24;
  uVar5 = local_28;
  *pcVar2 = cVar4;
  if ((char)local_20 == '\x02') {
    iVar7 = FUN_0003bdf0(uVar6);
    *(undefined4 *)(iVar7 + 0x28) = uVar5;
    *(undefined4 *)(iVar7 + 0x2c) = uVar3;
    iVar7 = FUN_0003be90(uVar6);
    if (*(int *)(iVar7 + 4) != 0) {
      iVar7 = FUN_0003be90(uVar6);
      free(*(void **)(iVar7 + 4));
      iVar7 = FUN_0003be90(uVar6);
      *(undefined4 *)(iVar7 + 4) = 0;
    }
  }
  else {
    iVar7 = FUN_0003be90(uVar6);
    uVar5 = xmalloc(0x14);
    *(undefined4 *)(iVar7 + 4) = uVar5;
    iVar7 = FUN_0003be90(uVar6);
    puVar1 = *(undefined4 **)(iVar7 + 4);
    *puVar1 = local_30;
    puVar1[1] = local_2c;
    puVar1[2] = local_28;
    puVar1[3] = local_24;
    puVar1[4] = local_20;
  }
  FUN_0002e4e0();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x2b947
SUB ESP,0x38
LEA EAX,[ESP + 0x14]
PUSH EAX
CALL 0x000220a0
LEA ECX,[EBX + 0x9978]
ADD ESP,0x10
MOV ESI,EAX
MOV EDI,dword ptr [ECX]
MOV byte ptr [EDI],AL
MOV EAX,dword ptr [ECX]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x22
JNZ 0x000546f0
LEA EBP,[EAX + 0x1]
MOV dword ptr [ECX],EBP
MOVZX EDX,byte ptr [EAX + 0x1]
MOV EAX,EBP
CMP DL,0x20
JNZ 0x00054700
LEA EBP,[EAX + 0x1]
MOV dword ptr [ECX],EBP
MOVZX EDX,byte ptr [EAX + 0x1]
MOV EAX,EBP
CMP DL,0x2c
JZ 0x00054740
SUB ESP,0x4
MOV byte ptr [EDI],0x0
LEA EAX,[EBX + 0xfffe5974]
MOV EBP,dword ptr [ESP + 0xc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0002bd60
MOV EAX,ESI
MOV byte ptr [EDI],AL
CALL 0x0002e290
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
ADD EAX,0x1
MOV dword ptr [ECX],EAX
PUSH 0x1
LEA EAX,[ESP + 0x14]
PUSH EAX
PUSH 0x0
CALL 0x000221d0
ADD ESP,0x10
CMP byte ptr [ESP + 0x1c],0x1
JZ 0x00054830
SUB ESP,0xc
MOV byte ptr [EDI],0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x0003a9e0
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,ESI
MOV byte ptr [EDI],AL
CMP byte ptr [ESP + 0x1c],0x2
JZ 0x000547e0
SUB ESP,0xc
PUSH EBP
CALL 0x0003be90
MOV dword ptr [ESP],0x14
MOV ESI,EAX
CALL 0x00014790
MOV dword ptr [ESI + 0x4],EAX
MOV dword ptr [ESP],EBP
CALL 0x0003be90
MOV EDX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0x4],EDX
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0xc],EDX
MOV EDX,dword ptr [ESP + 0x2c]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],EDX
CALL 0x0002e4e0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0x18]
SUB ESP,0xc
PUSH EBP
CALL 0x0003bdf0
MOV dword ptr [EAX + 0x28],ESI
MOV dword ptr [EAX + 0x2c],EDI
MOV dword ptr [ESP],EBP
CALL 0x0003be90
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x4]
TEST ECX,ECX
JZ 0x000547cd
SUB ESP,0xc
PUSH EBP
CALL 0x0003be90
POP EDX
PUSH dword ptr [EAX + 0x4]
CALL 0x00014780
MOV dword ptr [ESP],EBP
CALL 0x0003be90
ADD ESP,0x10
MOV dword ptr [EAX + 0x4],0x0
JMP 0x000547cd
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe59a8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
MOV byte ptr [ESP + 0x2c],0x2
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],0x0
ADD ESP,0x10
JMP 0x00054764
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000546b0(void)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}\n\n" comment (function_definition "void FUN_000546b0(void)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}" primitive_type (function_declarator "FUN_000546b0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x546b9;" (assignment_expression "uStack_14 = 0x546b9" identifier = number_literal) ;) (expression_statement "cVar4 = FUN_000220a0(&local_34);" (assignment_expression "cVar4 = FUN_000220a0(&local_34)" identifier = (call_expression "FUN_000220a0(&local_34)" identifier (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "pcVar2 = DAT_00089978;" (assignment_expression "pcVar2 = DAT_00089978" identifier = identifier) ;) (expression_statement "*DAT_00089978 = cVar4;" (assignment_expression "*DAT_00089978 = cVar4" (pointer_expression "*DAT_00089978" * identifier) = identifier) ;) (expression_statement "cVar8 = *DAT_00089978;" (assignment_expression "cVar8 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(cVar8 == '\"')" ( (binary_expression "cVar8 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "cVar8 = DAT_00089978[1];" (assignment_expression "cVar8 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(cVar8 == ' ')" ( (binary_expression "cVar8 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "cVar8 = DAT_00089978[1];" (assignment_expression "cVar8 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }" if (parenthesized_expression "(cVar8 != ',')" ( (binary_expression "cVar8 != ','" identifier != (char_literal "','" ' character ')) )) (compound_statement "{\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);" (assignment_expression "uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5)" identifier = (call_expression "dcgettext(0,"expected comma after name `%s\' in .size directive",5)" identifier (argument_list "(0,"expected comma after name `%s\' in .size directive",5)" ( number_literal , (string_literal ""expected comma after name `%s\' in .size directive"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar5,local_34);" (call_expression "FUN_0002bd60(uVar5,local_34)" identifier (argument_list "(uVar5,local_34)" ( identifier , identifier ))) ;) (expression_statement "*pcVar2 = cVar4;" (assignment_expression "*pcVar2 = cVar4" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000221d0(0,&local_30,1);" (call_expression "FUN_000221d0(0,&local_30,1)" identifier (argument_list "(0,&local_30,1)" ( number_literal , (pointer_expression "&local_30" & identifier) , number_literal ))) ;) (if_statement "if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }" if (parenthesized_expression "((char)local_20 == '\x01')" ( (binary_expression "(char)local_20 == '\x01'" (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }" { (expression_statement "uVar5 = dcgettext(0,"missing expression in .size directive",5);" (assignment_expression "uVar5 = dcgettext(0,"missing expression in .size directive",5)" identifier = (call_expression "dcgettext(0,"missing expression in .size directive",5)" identifier (argument_list "(0,"missing expression in .size directive",5)" ( number_literal , (string_literal ""missing expression in .size directive"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar5);" (call_expression "FUN_0002bd60(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "local_20 = CONCAT31(local_20._1_3_,2);" (assignment_expression "local_20 = CONCAT31(local_20._1_3_,2)" identifier = (call_expression "CONCAT31(local_20._1_3_,2)" identifier (argument_list "(local_20._1_3_,2)" ( (field_expression "local_20._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) })) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar6 = FUN_0003a9e0(local_34);" (assignment_expression "uVar6 = FUN_0003a9e0(local_34)" identifier = (call_expression "FUN_0003a9e0(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (expression_statement "uVar5 = local_28;" (assignment_expression "uVar5 = local_28" identifier = identifier) ;) (expression_statement "*pcVar2 = cVar4;" (assignment_expression "*pcVar2 = cVar4" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (if_statement "if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" if (parenthesized_expression "((char)local_20 == '\x02')" ( (binary_expression "(char)local_20 == '\x02'" (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }" { (expression_statement "iVar7 = FUN_0003bdf0(uVar6);" (assignment_expression "iVar7 = FUN_0003bdf0(uVar6)" identifier = (call_expression "FUN_0003bdf0(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" * (cast_expression "(undefined4 *)(iVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar3;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar3" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (if_statement "if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 4) != 0)" ( (binary_expression "*(int *)(iVar7 + 4) != 0" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }" { (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "free(*(void **)(iVar7 + 4));" (call_expression "free(*(void **)(iVar7 + 4))" identifier (argument_list "(*(void **)(iVar7 + 4))" ( (pointer_expression "*(void **)(iVar7 + 4)" * (cast_expression "(void **)(iVar7 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" else (compound_statement "{\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" { (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "uVar5 = xmalloc(0x14);" (assignment_expression "uVar5 = xmalloc(0x14)" identifier = (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "puVar1 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*puVar1 = local_30;" (assignment_expression "*puVar1 = local_30" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_2c;" (assignment_expression "puVar1[1] = local_2c" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_28;" (assignment_expression "puVar1[2] = local_28" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_24;" (assignment_expression "puVar1[3] = local_24" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[4] = local_20;" (assignment_expression "puVar1[4] = local_20" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid obj_elf_size(int ignore)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  char cVar4;\n  char *pcVar5;\n  symbolS *s;\n  elf_obj_sy *peVar6;\n  expressionS *peVar7;\n  asymbol *paVar8;\n  char cVar9;\n  char *name;\n  expressionS exp;\n  \n  cVar4 = get_symbol_name(&name);\n  pcVar1 = input_line_pointer;\n  *input_line_pointer = cVar4;\n  cVar9 = *input_line_pointer;\n  if (cVar9 == '\"') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar9 == ' ') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar9 != ',') {\n    *pcVar1 = '\0';\n    pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    as_bad(pcVar5,name);\n    *pcVar1 = cVar4;\n    ignore_rest_of_line();\n    return;\n  }\n  input_line_pointer = input_line_pointer + 1;\n  expr(0,&exp,expr_normal);\n  if (exp._16_1_ == '\x01') {\n    pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);\n    as_bad(pcVar5);\n    exp._16_1_ = 2;\n    exp.X_add_number._0_4_ = 0;\n    exp.X_add_number._4_4_ = 0;\n  }\n  *pcVar1 = '\0';\n  s = symbol_find_or_make(name);\n  uVar3 = exp.X_add_number._4_4_;\n  uVar2 = (undefined4)exp.X_add_number;\n  *pcVar1 = cVar4;\n  if (exp._16_1_ == '\x02') {\n    paVar8 = symbol_get_bfdsym(s);\n    *(undefined4 *)&paVar8[1].value = uVar2;\n    *(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;\n    peVar6 = symbol_get_obj(s);\n    if (peVar6->size != (expressionS *)0x0) {\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }\n  }\n  else {\n    peVar6 = symbol_get_obj(s);\n    peVar7 = (expressionS *)xmalloc(0x14);\n    peVar6->size = peVar7;\n    peVar6 = symbol_get_obj(s);\n    peVar7 = peVar6->size;\n    peVar7->X_add_symbol = exp.X_add_symbol;\n    peVar7->X_op_symbol = exp.X_op_symbol;\n    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;\n    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;\n    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;\n    peVar7->X_md = exp.X_md;\n  }\n  demand_empty_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void obj_elf_size(int ignore)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  char cVar4;\n  char *pcVar5;\n  symbolS *s;\n  elf_obj_sy *peVar6;\n  expressionS *peVar7;\n  asymbol *paVar8;\n  char cVar9;\n  char *name;\n  expressionS exp;\n  \n  cVar4 = get_symbol_name(&name);\n  pcVar1 = input_line_pointer;\n  *input_line_pointer = cVar4;\n  cVar9 = *input_line_pointer;\n  if (cVar9 == '\"') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar9 == ' ') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar9 != ',') {\n    *pcVar1 = '\0';\n    pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    as_bad(pcVar5,name);\n    *pcVar1 = cVar4;\n    ignore_rest_of_line();\n    return;\n  }\n  input_line_pointer = input_line_pointer + 1;\n  expr(0,&exp,expr_normal);\n  if (exp._16_1_ == '\x01') {\n    pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);\n    as_bad(pcVar5);\n    exp._16_1_ = 2;\n    exp.X_add_number._0_4_ = 0;\n    exp.X_add_number._4_4_ = 0;\n  }\n  *pcVar1 = '\0';\n  s = symbol_find_or_make(name);\n  uVar3 = exp.X_add_number._4_4_;\n  uVar2 = (undefined4)exp.X_add_number;\n  *pcVar1 = cVar4;\n  if (exp._16_1_ == '\x02') {\n    paVar8 = symbol_get_bfdsym(s);\n    *(undefined4 *)&paVar8[1].value = uVar2;\n    *(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;\n    peVar6 = symbol_get_obj(s);\n    if (peVar6->size != (expressionS *)0x0) {\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }\n  }\n  else {\n    peVar6 = symbol_get_obj(s);\n    peVar7 = (expressionS *)xmalloc(0x14);\n    peVar6->size = peVar7;\n    peVar6 = symbol_get_obj(s);\n    peVar7 = peVar6->size;\n    peVar7->X_add_symbol = exp.X_add_symbol;\n    peVar7->X_op_symbol = exp.X_op_symbol;\n    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;\n    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;\n    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;\n    peVar7->X_md = exp.X_md;\n  }\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "obj_elf_size(int ignore)" identifier (parameter_list "(int ignore)" ( (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  char cVar4;\n  char *pcVar5;\n  symbolS *s;\n  elf_obj_sy *peVar6;\n  expressionS *peVar7;\n  asymbol *paVar8;\n  char cVar9;\n  char *name;\n  expressionS exp;\n  \n  cVar4 = get_symbol_name(&name);\n  pcVar1 = input_line_pointer;\n  *input_line_pointer = cVar4;\n  cVar9 = *input_line_pointer;\n  if (cVar9 == '\"') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar9 == ' ') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar9 != ',') {\n    *pcVar1 = '\0';\n    pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    as_bad(pcVar5,name);\n    *pcVar1 = cVar4;\n    ignore_rest_of_line();\n    return;\n  }\n  input_line_pointer = input_line_pointer + 1;\n  expr(0,&exp,expr_normal);\n  if (exp._16_1_ == '\x01') {\n    pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);\n    as_bad(pcVar5);\n    exp._16_1_ = 2;\n    exp.X_add_number._0_4_ = 0;\n    exp.X_add_number._4_4_ = 0;\n  }\n  *pcVar1 = '\0';\n  s = symbol_find_or_make(name);\n  uVar3 = exp.X_add_number._4_4_;\n  uVar2 = (undefined4)exp.X_add_number;\n  *pcVar1 = cVar4;\n  if (exp._16_1_ == '\x02') {\n    paVar8 = symbol_get_bfdsym(s);\n    *(undefined4 *)&paVar8[1].value = uVar2;\n    *(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;\n    peVar6 = symbol_get_obj(s);\n    if (peVar6->size != (expressionS *)0x0) {\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }\n  }\n  else {\n    peVar6 = symbol_get_obj(s);\n    peVar7 = (expressionS *)xmalloc(0x14);\n    peVar6->size = peVar7;\n    peVar6 = symbol_get_obj(s);\n    peVar7 = peVar6->size;\n    peVar7->X_add_symbol = exp.X_add_symbol;\n    peVar7->X_op_symbol = exp.X_op_symbol;\n    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;\n    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;\n    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;\n    peVar7->X_md = exp.X_md;\n  }\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "symbolS *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "elf_obj_sy *peVar6;" type_identifier (pointer_declarator "*peVar6" * identifier) ;) (declaration "expressionS *peVar7;" type_identifier (pointer_declarator "*peVar7" * identifier) ;) (declaration "asymbol *paVar8;" type_identifier (pointer_declarator "*paVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "expressionS exp;" type_identifier identifier ;) (expression_statement "cVar4 = get_symbol_name(&name);" (assignment_expression "cVar4 = get_symbol_name(&name)" identifier = (call_expression "get_symbol_name(&name)" identifier (argument_list "(&name)" ( (pointer_expression "&name" & identifier) )))) ;) (expression_statement "pcVar1 = input_line_pointer;" (assignment_expression "pcVar1 = input_line_pointer" identifier = identifier) ;) (expression_statement "*input_line_pointer = cVar4;" (assignment_expression "*input_line_pointer = cVar4" (pointer_expression "*input_line_pointer" * identifier) = identifier) ;) (expression_statement "cVar9 = *input_line_pointer;" (assignment_expression "cVar9 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar9 == '\"') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(cVar9 == '\"')" ( (binary_expression "cVar9 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "cVar9 = input_line_pointer[1];" (assignment_expression "cVar9 = 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 (cVar9 == ' ') {\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(cVar9 == ' ')" ( (binary_expression "cVar9 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar9 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "cVar9 = input_line_pointer[1];" (assignment_expression "cVar9 = 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 (cVar9 != ',') {\n    *pcVar1 = '\0';\n    pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    as_bad(pcVar5,name);\n    *pcVar1 = cVar4;\n    ignore_rest_of_line();\n    return;\n  }" if (parenthesized_expression "(cVar9 != ',')" ( (binary_expression "cVar9 != ','" identifier != (char_literal "','" ' character ')) )) (compound_statement "{\n    *pcVar1 = '\0';\n    pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    as_bad(pcVar5,name);\n    *pcVar1 = cVar4;\n    ignore_rest_of_line();\n    return;\n  }" { (expression_statement "*pcVar1 = '\0';" (assignment_expression "*pcVar1 = '\0'" (pointer_expression "*pcVar1" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5)" identifier = (cast_expression "(char *)dcgettext(0,"expected comma after name `%s\' in .size directive",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"expected comma after name `%s\' in .size directive",5)" identifier (argument_list "(0,"expected comma after name `%s\' in .size directive",5)" ( number_literal , (string_literal ""expected comma after name `%s\' in .size directive"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar5,name);" (call_expression "as_bad(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) (expression_statement "*pcVar1 = cVar4;" (assignment_expression "*pcVar1 = cVar4" (pointer_expression "*pcVar1" * identifier) = identifier) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (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)) ;) (expression_statement "expr(0,&exp,expr_normal);" (call_expression "expr(0,&exp,expr_normal)" identifier (argument_list "(0,&exp,expr_normal)" ( number_literal , (pointer_expression "&exp" & identifier) , identifier ))) ;) (if_statement "if (exp._16_1_ == '\x01') {\n    pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);\n    as_bad(pcVar5);\n    exp._16_1_ = 2;\n    exp.X_add_number._0_4_ = 0;\n    exp.X_add_number._4_4_ = 0;\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    pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);\n    as_bad(pcVar5);\n    exp._16_1_ = 2;\n    exp.X_add_number._0_4_ = 0;\n    exp.X_add_number._4_4_ = 0;\n  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"missing expression in .size directive",5)" identifier = (cast_expression "(char *)dcgettext(0,"missing expression in .size directive",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing expression in .size directive",5)" identifier (argument_list "(0,"missing expression in .size directive",5)" ( number_literal , (string_literal ""missing expression in .size directive"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar5);" (call_expression "as_bad(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "exp._16_1_ = 2;" (assignment_expression "exp._16_1_ = 2" (field_expression "exp._16_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "exp.X_add_number._0_4_ = 0;" (assignment_expression "exp.X_add_number._0_4_ = 0" (field_expression "exp.X_add_number._0_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "exp.X_add_number._4_4_ = 0;" (assignment_expression "exp.X_add_number._4_4_ = 0" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) })) (expression_statement "*pcVar1 = '\0';" (assignment_expression "*pcVar1 = '\0'" (pointer_expression "*pcVar1" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "s = symbol_find_or_make(name);" (assignment_expression "s = symbol_find_or_make(name)" identifier = (call_expression "symbol_find_or_make(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "uVar3 = exp.X_add_number._4_4_;" (assignment_expression "uVar3 = exp.X_add_number._4_4_" identifier = (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar2 = (undefined4)exp.X_add_number;" (assignment_expression "uVar2 = (undefined4)exp.X_add_number" identifier = (cast_expression "(undefined4)exp.X_add_number" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (expression_statement "*pcVar1 = cVar4;" (assignment_expression "*pcVar1 = cVar4" (pointer_expression "*pcVar1" * identifier) = identifier) ;) (if_statement "if (exp._16_1_ == '\x02') {\n    paVar8 = symbol_get_bfdsym(s);\n    *(undefined4 *)&paVar8[1].value = uVar2;\n    *(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;\n    peVar6 = symbol_get_obj(s);\n    if (peVar6->size != (expressionS *)0x0) {\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }\n  }\n  else {\n    peVar6 = symbol_get_obj(s);\n    peVar7 = (expressionS *)xmalloc(0x14);\n    peVar6->size = peVar7;\n    peVar6 = symbol_get_obj(s);\n    peVar7 = peVar6->size;\n    peVar7->X_add_symbol = exp.X_add_symbol;\n    peVar7->X_op_symbol = exp.X_op_symbol;\n    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;\n    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;\n    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;\n    peVar7->X_md = exp.X_md;\n  }" if (parenthesized_expression "(exp._16_1_ == '\x02')" ( (binary_expression "exp._16_1_ == '\x02'" (field_expression "exp._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    paVar8 = symbol_get_bfdsym(s);\n    *(undefined4 *)&paVar8[1].value = uVar2;\n    *(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;\n    peVar6 = symbol_get_obj(s);\n    if (peVar6->size != (expressionS *)0x0) {\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }\n  }" { (expression_statement "paVar8 = symbol_get_bfdsym(s);" (assignment_expression "paVar8 = symbol_get_bfdsym(s)" identifier = (call_expression "symbol_get_bfdsym(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "*(undefined4 *)&paVar8[1].value = uVar2;" (assignment_expression "*(undefined4 *)&paVar8[1].value = uVar2" (pointer_expression "*(undefined4 *)&paVar8[1].value" * (cast_expression "(undefined4 *)&paVar8[1].value" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar8[1].value" & (field_expression "paVar8[1].value" (subscript_expression "paVar8[1]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar8[1].value + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&paVar8[1].value + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&paVar8[1].value + 4)" * (cast_expression "(undefined4 *)((int)&paVar8[1].value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar8[1].value + 4)" ( (binary_expression "(int)&paVar8[1].value + 4" (cast_expression "(int)&paVar8[1].value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar8[1].value" & (field_expression "paVar8[1].value" (subscript_expression "paVar8[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "peVar6 = symbol_get_obj(s);" (assignment_expression "peVar6 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (if_statement "if (peVar6->size != (expressionS *)0x0) {\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }" if (parenthesized_expression "(peVar6->size != (expressionS *)0x0)" ( (binary_expression "peVar6->size != (expressionS *)0x0" (field_expression "peVar6->size" identifier -> field_identifier) != (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      peVar6 = symbol_get_obj(s);\n      free(peVar6->size);\n      peVar6 = symbol_get_obj(s);\n      peVar6->size = (expressionS *)0x0;\n    }" { (expression_statement "peVar6 = symbol_get_obj(s);" (assignment_expression "peVar6 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "free(peVar6->size);" (call_expression "free(peVar6->size)" identifier (argument_list "(peVar6->size)" ( (field_expression "peVar6->size" identifier -> field_identifier) ))) ;) (expression_statement "peVar6 = symbol_get_obj(s);" (assignment_expression "peVar6 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "peVar6->size = (expressionS *)0x0;" (assignment_expression "peVar6->size = (expressionS *)0x0" (field_expression "peVar6->size" identifier -> field_identifier) = (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    peVar6 = symbol_get_obj(s);\n    peVar7 = (expressionS *)xmalloc(0x14);\n    peVar6->size = peVar7;\n    peVar6 = symbol_get_obj(s);\n    peVar7 = peVar6->size;\n    peVar7->X_add_symbol = exp.X_add_symbol;\n    peVar7->X_op_symbol = exp.X_op_symbol;\n    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;\n    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;\n    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;\n    peVar7->X_md = exp.X_md;\n  }" else (compound_statement "{\n    peVar6 = symbol_get_obj(s);\n    peVar7 = (expressionS *)xmalloc(0x14);\n    peVar6->size = peVar7;\n    peVar6 = symbol_get_obj(s);\n    peVar7 = peVar6->size;\n    peVar7->X_add_symbol = exp.X_add_symbol;\n    peVar7->X_op_symbol = exp.X_op_symbol;\n    *(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;\n    *(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;\n    *(undefined2 *)&peVar7->field_0x10 = exp._16_2_;\n    peVar7->X_md = exp.X_md;\n  }" { (expression_statement "peVar6 = symbol_get_obj(s);" (assignment_expression "peVar6 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "peVar7 = (expressionS *)xmalloc(0x14);" (assignment_expression "peVar7 = (expressionS *)xmalloc(0x14)" identifier = (cast_expression "(expressionS *)xmalloc(0x14)" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "peVar6->size = peVar7;" (assignment_expression "peVar6->size = peVar7" (field_expression "peVar6->size" identifier -> field_identifier) = identifier) ;) (expression_statement "peVar6 = symbol_get_obj(s);" (assignment_expression "peVar6 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "peVar7 = peVar6->size;" (assignment_expression "peVar7 = peVar6->size" identifier = (field_expression "peVar6->size" identifier -> field_identifier)) ;) (expression_statement "peVar7->X_add_symbol = exp.X_add_symbol;" (assignment_expression "peVar7->X_add_symbol = exp.X_add_symbol" (field_expression "peVar7->X_add_symbol" identifier -> field_identifier) = (field_expression "exp.X_add_symbol" identifier . field_identifier)) ;) (expression_statement "peVar7->X_op_symbol = exp.X_op_symbol;" (assignment_expression "peVar7->X_op_symbol = exp.X_op_symbol" (field_expression "peVar7->X_op_symbol" identifier -> field_identifier) = (field_expression "exp.X_op_symbol" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number;" (assignment_expression "*(undefined4 *)&peVar7->X_add_number = (undefined4)exp.X_add_number" (pointer_expression "*(undefined4 *)&peVar7->X_add_number" * (cast_expression "(undefined4 *)&peVar7->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&peVar7->X_add_number" & (field_expression "peVar7->X_add_number" identifier -> field_identifier)))) = (cast_expression "(undefined4)exp.X_add_number" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;" (assignment_expression "*(undefined4 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_" (pointer_expression "*(undefined4 *)((int)&peVar7->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&peVar7->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&peVar7->X_add_number + 4)" ( (binary_expression "(int)&peVar7->X_add_number + 4" (cast_expression "(int)&peVar7->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&peVar7->X_add_number" & (field_expression "peVar7->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined2 *)&peVar7->field_0x10 = exp._16_2_;" (assignment_expression "*(undefined2 *)&peVar7->field_0x10 = exp._16_2_" (pointer_expression "*(undefined2 *)&peVar7->field_0x10" * (cast_expression "(undefined2 *)&peVar7->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&peVar7->field_0x10" & (field_expression "peVar7->field_0x10" identifier -> field_identifier)))) = (field_expression "exp._16_2_" identifier . field_identifier)) ;) (expression_statement "peVar7->X_md = exp.X_md;" (assignment_expression "peVar7->X_md = exp.X_md" (field_expression "peVar7->X_md" identifier -> field_identifier) = (field_expression "exp.X_md" identifier . field_identifier)) ;) }))) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000546b0(void)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}\n\n" (function_definition "void FUN_000546b0(void)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}" primitive_type (function_declarator "FUN_000546b0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x546b9;" (assignment_expression "uStack_14 = 0x546b9" identifier = number_literal) ;) (expression_statement "cVar4 = FUN_000220a0(&local_34);" (assignment_expression "cVar4 = FUN_000220a0(&local_34)" identifier = (call_expression "FUN_000220a0(&local_34)" identifier (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "pcVar2 = DAT_00089978;" (assignment_expression "pcVar2 = DAT_00089978" identifier = identifier) ;) (expression_statement "*DAT_00089978 = cVar4;" (assignment_expression "*DAT_00089978 = cVar4" (pointer_expression "*DAT_00089978" * identifier) = identifier) ;) (expression_statement "cVar8 = *DAT_00089978;" (assignment_expression "cVar8 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(cVar8 == '\"')" ( (binary_expression "cVar8 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "cVar8 = DAT_00089978[1];" (assignment_expression "cVar8 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(cVar8 == ' ')" ( (binary_expression "cVar8 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "cVar8 = DAT_00089978[1];" (assignment_expression "cVar8 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }" if (parenthesized_expression "(cVar8 != ',')" ( (binary_expression "cVar8 != ','" identifier != (char_literal "','" ' character ')) )) (compound_statement "{\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);" (assignment_expression "uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5)" identifier = (call_expression "dcgettext(0,"expected comma after name `%s\' in .size directive",5)" identifier (argument_list "(0,"expected comma after name `%s\' in .size directive",5)" ( number_literal , (string_literal ""expected comma after name `%s\' in .size directive"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar5,local_34);" (call_expression "FUN_0002bd60(uVar5,local_34)" identifier (argument_list "(uVar5,local_34)" ( identifier , identifier ))) ;) (expression_statement "*pcVar2 = cVar4;" (assignment_expression "*pcVar2 = cVar4" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000221d0(0,&local_30,1);" (call_expression "FUN_000221d0(0,&local_30,1)" identifier (argument_list "(0,&local_30,1)" ( number_literal , (pointer_expression "&local_30" & identifier) , number_literal ))) ;) (if_statement "if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }" if (parenthesized_expression "((char)local_20 == '\x01')" ( (binary_expression "(char)local_20 == '\x01'" (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }" { (expression_statement "uVar5 = dcgettext(0,"missing expression in .size directive",5);" (assignment_expression "uVar5 = dcgettext(0,"missing expression in .size directive",5)" identifier = (call_expression "dcgettext(0,"missing expression in .size directive",5)" identifier (argument_list "(0,"missing expression in .size directive",5)" ( number_literal , (string_literal ""missing expression in .size directive"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar5);" (call_expression "FUN_0002bd60(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "local_20 = CONCAT31(local_20._1_3_,2);" (assignment_expression "local_20 = CONCAT31(local_20._1_3_,2)" identifier = (call_expression "CONCAT31(local_20._1_3_,2)" identifier (argument_list "(local_20._1_3_,2)" ( (field_expression "local_20._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) })) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar6 = FUN_0003a9e0(local_34);" (assignment_expression "uVar6 = FUN_0003a9e0(local_34)" identifier = (call_expression "FUN_0003a9e0(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (expression_statement "uVar5 = local_28;" (assignment_expression "uVar5 = local_28" identifier = identifier) ;) (expression_statement "*pcVar2 = cVar4;" (assignment_expression "*pcVar2 = cVar4" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (if_statement "if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" if (parenthesized_expression "((char)local_20 == '\x02')" ( (binary_expression "(char)local_20 == '\x02'" (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }" { (expression_statement "iVar7 = FUN_0003bdf0(uVar6);" (assignment_expression "iVar7 = FUN_0003bdf0(uVar6)" identifier = (call_expression "FUN_0003bdf0(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" * (cast_expression "(undefined4 *)(iVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar3;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar3" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (if_statement "if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 4) != 0)" ( (binary_expression "*(int *)(iVar7 + 4) != 0" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }" { (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "free(*(void **)(iVar7 + 4));" (call_expression "free(*(void **)(iVar7 + 4))" identifier (argument_list "(*(void **)(iVar7 + 4))" ( (pointer_expression "*(void **)(iVar7 + 4)" * (cast_expression "(void **)(iVar7 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" else (compound_statement "{\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" { (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "uVar5 = xmalloc(0x14);" (assignment_expression "uVar5 = xmalloc(0x14)" identifier = (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" identifier = (call_expression "FUN_0003be90(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "puVar1 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*puVar1 = local_30;" (assignment_expression "*puVar1 = local_30" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_2c;" (assignment_expression "puVar1[1] = local_2c" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_28;" (assignment_expression "puVar1[2] = local_28" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_24;" (assignment_expression "puVar1[3] = local_24" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[4] = local_20;" (assignment_expression "puVar1[4] = local_20" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 = (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 (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (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 ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_000546b0(void)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000546b0(void)" (identifier "FUN_000546b0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char cVar8;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x546b9;\n  cVar4 = FUN_000220a0(&local_34);\n  pcVar2 = DAT_00089978;\n  *DAT_00089978 = cVar4;\n  cVar8 = *DAT_00089978;\n  if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }\n  DAT_00089978 = DAT_00089978 + 1;\n  FUN_000221d0(0,&local_30,1);\n  if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }\n  *pcVar2 = '\0';\n  uVar6 = FUN_0003a9e0(local_34);\n  uVar3 = local_24;\n  uVar5 = local_28;\n  *pcVar2 = cVar4;\n  if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }\n  FUN_0002e4e0();\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x546b9;" (assignment_expression "uStack_14 = 0x546b9" (identifier "uStack_14") (= "=") (number_literal "0x546b9")) (; ";")) (expression_statement "cVar4 = FUN_000220a0(&local_34);" (assignment_expression "cVar4 = FUN_000220a0(&local_34)" (identifier "cVar4") (= "=") (call_expression "FUN_000220a0(&local_34)" (identifier "FUN_000220a0") (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "pcVar2 = DAT_00089978;" (assignment_expression "pcVar2 = DAT_00089978" (identifier "pcVar2") (= "=") (identifier "DAT_00089978")) (; ";")) (expression_statement "*DAT_00089978 = cVar4;" (assignment_expression "*DAT_00089978 = cVar4" (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978")) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "cVar8 = *DAT_00089978;" (assignment_expression "cVar8 = *DAT_00089978" (identifier "cVar8") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (if_statement "if (cVar8 == '\"') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" (if "if") (parenthesized_expression "(cVar8 == '\"')" (( "(") (binary_expression "cVar8 == '\"'" (identifier "cVar8") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" ({ "{") (expression_statement "cVar8 = DAT_00089978[1];" (assignment_expression "cVar8 = DAT_00089978[1]" (identifier "cVar8") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (cVar8 == ' ') {\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" (if "if") (parenthesized_expression "(cVar8 == ' ')" (( "(") (binary_expression "cVar8 == ' '" (identifier "cVar8") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    cVar8 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" ({ "{") (expression_statement "cVar8 = DAT_00089978[1];" (assignment_expression "cVar8 = DAT_00089978[1]" (identifier "cVar8") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (cVar8 != ',') {\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }" (if "if") (parenthesized_expression "(cVar8 != ',')" (( "(") (binary_expression "cVar8 != ','" (identifier "cVar8") (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    *pcVar2 = '\0';\n    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);\n    FUN_0002bd60(uVar5,local_34);\n    *pcVar2 = cVar4;\n    FUN_0002e290();\n    return;\n  }" ({ "{") (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);" (assignment_expression "uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"expected comma after name `%s\' in .size directive",5)" (identifier "dcgettext") (argument_list "(0,"expected comma after name `%s\' in .size directive",5)" (( "(") (number_literal "0") (, ",") (string_literal ""expected comma after name `%s\' in .size directive"" (" """) (string_content "expected comma after name `%s") (escape_sequence "\'") (string_content " in .size directive") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar5,local_34);" (call_expression "FUN_0002bd60(uVar5,local_34)" (identifier "FUN_0002bd60") (argument_list "(uVar5,local_34)" (( "(") (identifier "uVar5") (, ",") (identifier "local_34") () ")"))) (; ";")) (expression_statement "*pcVar2 = cVar4;" (assignment_expression "*pcVar2 = cVar4" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" (identifier "FUN_0002e290") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_000221d0(0,&local_30,1);" (call_expression "FUN_000221d0(0,&local_30,1)" (identifier "FUN_000221d0") (argument_list "(0,&local_30,1)" (( "(") (number_literal "0") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if ((char)local_20 == '\x01') {\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }" (if "if") (parenthesized_expression "((char)local_20 == '\x01')" (( "(") (binary_expression "(char)local_20 == '\x01'" (cast_expression "(char)local_20" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_20")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n    uVar5 = dcgettext(0,"missing expression in .size directive",5);\n    FUN_0002bd60(uVar5);\n    local_20 = CONCAT31(local_20._1_3_,2);\n    local_28 = 0;\n    local_24 = 0;\n  }" ({ "{") (expression_statement "uVar5 = dcgettext(0,"missing expression in .size directive",5);" (assignment_expression "uVar5 = dcgettext(0,"missing expression in .size directive",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"missing expression in .size directive",5)" (identifier "dcgettext") (argument_list "(0,"missing expression in .size directive",5)" (( "(") (number_literal "0") (, ",") (string_literal ""missing expression in .size directive"" (" """) (string_content "missing expression in .size directive") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar5);" (call_expression "FUN_0002bd60(uVar5)" (identifier "FUN_0002bd60") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "local_20 = CONCAT31(local_20._1_3_,2);" (assignment_expression "local_20 = CONCAT31(local_20._1_3_,2)" (identifier "local_20") (= "=") (call_expression "CONCAT31(local_20._1_3_,2)" (identifier "CONCAT31") (argument_list "(local_20._1_3_,2)" (( "(") (field_expression "local_20._1_3_" (identifier "local_20") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar6 = FUN_0003a9e0(local_34);" (assignment_expression "uVar6 = FUN_0003a9e0(local_34)" (identifier "uVar6") (= "=") (call_expression "FUN_0003a9e0(local_34)" (identifier "FUN_0003a9e0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")")))) (; ";")) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" (identifier "uVar3") (= "=") (identifier "local_24")) (; ";")) (expression_statement "uVar5 = local_28;" (assignment_expression "uVar5 = local_28" (identifier "uVar5") (= "=") (identifier "local_28")) (; ";")) (expression_statement "*pcVar2 = cVar4;" (assignment_expression "*pcVar2 = cVar4" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (identifier "cVar4")) (; ";")) (if_statement "if ((char)local_20 == '\x02') {\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }\n  else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" (if "if") (parenthesized_expression "((char)local_20 == '\x02')" (( "(") (binary_expression "(char)local_20 == '\x02'" (cast_expression "(char)local_20" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_20")) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n    iVar7 = FUN_0003bdf0(uVar6);\n    *(undefined4 *)(iVar7 + 0x28) = uVar5;\n    *(undefined4 *)(iVar7 + 0x2c) = uVar3;\n    iVar7 = FUN_0003be90(uVar6);\n    if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }\n  }" ({ "{") (expression_statement "iVar7 = FUN_0003bdf0(uVar6);" (assignment_expression "iVar7 = FUN_0003bdf0(uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0003bdf0(uVar6)" (identifier "FUN_0003bdf0") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x28)" (( "(") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar3;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar3" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0003be90(uVar6)" (identifier "FUN_0003be90") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (*(int *)(iVar7 + 4) != 0) {\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 4) != 0" (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = FUN_0003be90(uVar6);\n      free(*(void **)(iVar7 + 4));\n      iVar7 = FUN_0003be90(uVar6);\n      *(undefined4 *)(iVar7 + 4) = 0;\n    }" ({ "{") (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0003be90(uVar6)" (identifier "FUN_0003be90") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "free(*(void **)(iVar7 + 4));" (call_expression "free(*(void **)(iVar7 + 4))" (identifier "free") (argument_list "(*(void **)(iVar7 + 4))" (( "(") (pointer_expression "*(void **)(iVar7 + 4)" (* "*") (cast_expression "(void **)(iVar7 + 4)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0003be90(uVar6)" (identifier "FUN_0003be90") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" (else "else") (compound_statement "{\n    iVar7 = FUN_0003be90(uVar6);\n    uVar5 = xmalloc(0x14);\n    *(undefined4 *)(iVar7 + 4) = uVar5;\n    iVar7 = FUN_0003be90(uVar6);\n    puVar1 = *(undefined4 **)(iVar7 + 4);\n    *puVar1 = local_30;\n    puVar1[1] = local_2c;\n    puVar1[2] = local_28;\n    puVar1[3] = local_24;\n    puVar1[4] = local_20;\n  }" ({ "{") (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0003be90(uVar6)" (identifier "FUN_0003be90") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "uVar5 = xmalloc(0x14);" (assignment_expression "uVar5 = xmalloc(0x14)" (identifier "uVar5") (= "=") (call_expression "xmalloc(0x14)" (identifier "xmalloc") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar7 = FUN_0003be90(uVar6);" (assignment_expression "iVar7 = FUN_0003be90(uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0003be90(uVar6)" (identifier "FUN_0003be90") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar1 = *(undefined4 **)(iVar7 + 4)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*puVar1 = local_30;" (assignment_expression "*puVar1 = local_30" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar1[1] = local_2c;" (assignment_expression "puVar1[1] = local_2c" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar1[2] = local_28;" (assignment_expression "puVar1[2] = local_28" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "puVar1[3] = local_24;" (assignment_expression "puVar1[3] = local_24" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar1[4] = local_20;" (assignment_expression "puVar1[4] = local_20" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_20")) (; ";")) (} "}")))) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(int ignore)

{
  char *pcVar1;
  type_1 uVar2;
  type_1 uVar3;
  char cVar4;
  char *pcVar5;
  type_2 *s;
  type_3 *peVar6;
  type_4 *peVar7;
  type_5 *paVar8;
  char var_2;
  char *name;
  type_4 exp;
  
  cVar4 = var_1(&name);
  pcVar1 = var_3;
  *var_3 = cVar4;
  var_2 = *var_3;
  if (var_2 == '\"') {
    var_2 = var_3[1];
    var_3 = var_3 + 1;
  }
  if (var_2 == ' ') {
    var_2 = var_3[1];
    var_3 = var_3 + 1;
  }
  if (var_2 != ',') {
    *pcVar1 = '\0';
    pcVar5 = (char *)var_4(0,"expected comma after name `%s\' in .size directive",5);
    var_5(pcVar5,name);
    *pcVar1 = cVar4;
    var_6();
    return;
  }
  var_3 = var_3 + 1;
  var_7(0,&exp,expr_normal);
  if (exp._16_1_ == '\x01') {
    pcVar5 = (char *)var_4(0,"missing expression in .size directive",5);
    var_5(pcVar5);
    exp._16_1_ = 2;
    exp.X_add_number._0_4_ = 0;
    exp.X_add_number._4_4_ = 0;
  }
  *pcVar1 = '\0';
  s = var_8(name);
  uVar3 = exp.X_add_number._4_4_;
  uVar2 = (type_1)exp.X_add_number;
  *pcVar1 = cVar4;
  if (exp._16_1_ == '\x02') {
    paVar8 = var_9(s);
    *(type_1 *)&paVar8[1].value = uVar2;
    *(type_1 *)((int)&paVar8[1].value + 4) = uVar3;
    peVar6 = var_10(s);
    if (peVar6->size != (type_4 *)0x0) {
      peVar6 = var_10(s);
      var_11(peVar6->size);
      peVar6 = var_10(s);
      peVar6->size = (type_4 *)0x0;
    }
  }
  else {
    peVar6 = var_10(s);
    peVar7 = (type_4 *)var_12(0x14);
    peVar6->size = peVar7;
    peVar6 = var_10(s);
    peVar7 = peVar6->size;
    peVar7->X_add_symbol = exp.X_add_symbol;
    peVar7->X_op_symbol = exp.X_op_symbol;
    *(type_1 *)&peVar7->X_add_number = (type_1)exp.X_add_number;
    *(type_1 *)((int)&peVar7->X_add_number + 4) = exp.X_add_number._4_4_;
    *(type_6 *)&peVar7->field_0x10 = exp._16_2_;
    peVar7->X_md = exp.X_md;
  }
  var_13();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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: (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: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) 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)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(void)

{
  undefined4 *puVar1;
  char *pcVar2;
  undefined4 uVar3;
  char cVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  int iVar7;
  char cVar8;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x546b9;
  cVar4 = FUN_000220a0(&local_34);
  pcVar2 = DAT_00089978;
  *DAT_00089978 = cVar4;
  cVar8 = *DAT_00089978;
  if (cVar8 == '\"') {
    cVar8 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if (cVar8 == ' ') {
    cVar8 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if (cVar8 != ',') {
    *pcVar2 = '\0';
    uVar5 = dcgettext(0,"expected comma after name `%s\' in .size directive",5);
    FUN_0002bd60(uVar5,local_34);
    *pcVar2 = cVar4;
    FUN_0002e290();
    return;
  }
  DAT_00089978 = DAT_00089978 + 1;
  FUN_000221d0(0,&local_30,1);
  if ((char)local_20 == '\x01') {
    uVar5 = dcgettext(0,"missing expression in .size directive",5);
    FUN_0002bd60(uVar5);
    local_20 = CONCAT31(local_20._1_3_,2);
    local_28 = 0;
    local_24 = 0;
  }
  *pcVar2 = '\0';
  uVar6 = FUN_0003a9e0(local_34);
  uVar3 = local_24;
  uVar5 = local_28;
  *pcVar2 = cVar4;
  if ((char)local_20 == '\x02') {
    iVar7 = FUN_0003bdf0(uVar6);
    *(undefined4 *)(iVar7 + 0x28) = uVar5;
    *(undefined4 *)(iVar7 + 0x2c) = uVar3;
    iVar7 = FUN_0003be90(uVar6);
    if (*(int *)(iVar7 + 4) != 0) {
      iVar7 = FUN_0003be90(uVar6);
      free(*(void **)(iVar7 + 4));
      iVar7 = FUN_0003be90(uVar6);
      *(undefined4 *)(iVar7 + 4) = 0;
    }
  }
  else {
    iVar7 = FUN_0003be90(uVar6);
    uVar5 = xmalloc(0x14);
    *(undefined4 *)(iVar7 + 4) = uVar5;
    iVar7 = FUN_0003be90(uVar6);
    puVar1 = *(undefined4 **)(iVar7 + 4);
    *puVar1 = local_30;
    puVar1[1] = local_2c;
    puVar1[2] = local_28;
    puVar1[3] = local_24;
    puVar1[4] = local_20;
  }
  FUN_0002e4e0();
  return;
}

