
int _obstack_begin_worker(obstack *h,size_t size,size_t alignment)

{
  _obstack_chunk *p_Var1;
  int iVar2;
  char *pcVar3;
  
  if (alignment == 0) {
    alignment = 8;
  }
  if (size == 0) {
    size = 0xfe8;
  }
  h->chunk_size = size;
  h->alignment_mask = alignment - 1;
  p_Var1 = (_obstack_chunk *)call_chunkfun(h,size);
  h->chunk = p_Var1;
  if (p_Var1 != (_obstack_chunk *)0x0) {
    pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);
    h->object_base = pcVar3;
    h->next_free = pcVar3;
    pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);
    p_Var1->limit = pcVar3;
    h->chunk_limit = pcVar3;
    p_Var1->prev = (_obstack_chunk *)0x0;
    h->field_0x28 = h->field_0x28 & 0x9f;
    return 1;
  }
  iVar2 = (**(code **)PTR_obstack_alloc_failed_handler_0002d228)();
  return iVar2;
}



undefined4 FUN_00019f40(int *param_1,int param_2,int param_3)

{
  int *piVar1;
  undefined4 uVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  code *pcVar6;
  
  if (param_3 == 0) {
    param_3 = 8;
  }
  if (param_2 == 0) {
    param_2 = 0xfe8;
  }
  *param_1 = param_2;
  param_1[6] = param_3 + -1;
  piVar1 = (int *)FUN_00019eb0(param_1);
  param_1[1] = (int)piVar1;
  if (piVar1 != (int *)0x0) {
    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;
    param_1[2] = uVar4;
    param_1[3] = uVar4;
    iVar3 = *param_1;
    *piVar1 = (int)piVar1 + iVar3;
    param_1[4] = (int)piVar1 + iVar3;
    piVar1[1] = 0;
    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;
    return 1;
  }
  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;
  (*pcVar6)();
  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);
  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);
  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);
  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));
  return uVar2;
}


lui gp,0x2
addiu gp,gp,-0x4e60
addu gp,gp,t9
addiu sp,sp,-0x28
sw ra,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
sw gp,0x10(sp)
or s0,a0,zero
bne a2,zero,0x00019f74
_or s1,a2,zero
li s1,0x8
bne a1,zero,0x00019f80
_nop
li a1,0xfe8
sw a1,0x0(s0)
addiu s2,s1,-0x1
sw s2,0x18(s0)
or a0,s0,zero
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x6150
bal 0x00019eb0
_nop
lw gp,0x10(sp)
beq v0,zero,0x0001a004
_sw v0,0x4(s0)
addiu a2,v0,0x8
addu a2,a2,s2
subu s1,zero,s1
and a2,a2,s1
sw a2,0x8(s0)
sw a2,0xc(s0)
lw v1,0x0(s0)
addu v1,v0,v1
sw v1,0x0(v0)
sw v1,0x10(s0)
sw zero,0x4(v0)
lbu v0,0x28(s0)
ins v0,zero,0x6,0x1
ins v0,zero,0x5,0x1
sb v0,0x28(s0)
li v0,0x1
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
lw v0,-0x7eb8(gp)
lw t9,0x0(v0)
jalr t9
_nop
(translation_unit "undefined4 FUN_00019f40(int *param_1,int param_2,int param_3)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_00019f40(int *param_1,int param_2,int param_3)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}" type_identifier (function_declarator "FUN_00019f40(int *param_1,int param_2,int param_3)" identifier (parameter_list "(int *param_1,int param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (if_statement "if (param_3 == 0) {\n    param_3 = 8;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    param_3 = 8;\n  }" { (expression_statement "param_3 = 8;" (assignment_expression "param_3 = 8" identifier = number_literal) ;) })) (if_statement "if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    param_2 = 0xfe8;\n  }" { (expression_statement "param_2 = 0xfe8;" (assignment_expression "param_2 = 0xfe8" identifier = number_literal) ;) })) (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[6] = param_3 + -1;" (assignment_expression "param_1[6] = param_3 + -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_3 + -1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_00019eb0(param_1);" (assignment_expression "piVar1 = (int *)FUN_00019eb0(param_1)" identifier = (cast_expression "(int *)FUN_00019eb0(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019eb0(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "param_1[1] = (int)piVar1;" (assignment_expression "param_1[1] = (int)piVar1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }" { (expression_statement "uVar4 = (int)piVar1 + param_3 + 7 & -param_3;" (assignment_expression "uVar4 = (int)piVar1 + param_3 + 7 & -param_3" identifier = (binary_expression "(int)piVar1 + param_3 + 7 & -param_3" (binary_expression "(int)piVar1 + param_3 + 7" (binary_expression "(int)piVar1 + param_3" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) & (unary_expression "-param_3" - identifier))) ;) (expression_statement "param_1[2] = uVar4;" (assignment_expression "param_1[2] = uVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = uVar4;" (assignment_expression "param_1[3] = uVar4" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*piVar1 = (int)piVar1 + iVar3;" (assignment_expression "*piVar1 = (int)piVar1 + iVar3" (pointer_expression "*piVar1" * identifier) = (binary_expression "(int)piVar1 + iVar3" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "param_1[4] = (int)piVar1 + iVar3;" (assignment_expression "param_1[4] = (int)piVar1 + iVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "(int)piVar1 + iVar3" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;" (assignment_expression "*(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 10) & 0x9f" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) & number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;" (assignment_expression "pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228" identifier = (pointer_expression "*(code **)PTR_obstack_alloc_failed_handler_0002d228" * (cast_expression "(code **)PTR_obstack_alloc_failed_handler_0002d228" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = **(undefined4 **)(pcVar6 + 0x13340);" (assignment_expression "uVar5 = **(undefined4 **)(pcVar6 + 0x13340)" identifier = (pointer_expression "**(undefined4 **)(pcVar6 + 0x13340)" * (pointer_expression "*(undefined4 **)(pcVar6 + 0x13340)" * (cast_expression "(undefined4 **)(pcVar6 + 0x13340)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x13340)" ( (binary_expression "pcVar6 + 0x13340" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);" (assignment_expression "uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" identifier = (call_expression "(**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x1331c))" ( (pointer_expression "**(code **)(pcVar6 + 0x1331c)" * (pointer_expression "*(code **)(pcVar6 + 0x1331c)" * (cast_expression "(code **)(pcVar6 + 0x1331c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x1331c)" ( (binary_expression "pcVar6 + 0x1331c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" ( number_literal , (binary_expression "*(int *)(pcVar6 + 0x13104) + -0x3730" (pointer_expression "*(int *)(pcVar6 + 0x13104)" * (cast_expression "(int *)(pcVar6 + 0x13104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x13104)" ( (binary_expression "pcVar6 + 0x13104" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);" (call_expression "(**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x13254))" ( (pointer_expression "**(code **)(pcVar6 + 0x13254)" * (pointer_expression "*(code **)(pcVar6 + 0x13254)" * (cast_expression "(code **)(pcVar6 + 0x13254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x13254)" ( (binary_expression "pcVar6 + 0x13254" identifier + number_literal) ))))) )) (argument_list "(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar6 + 0x13104) + -0x3a78" (pointer_expression "*(int *)(pcVar6 + 0x13104)" * (cast_expression "(int *)(pcVar6 + 0x13104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x13104)" ( (binary_expression "pcVar6 + 0x13104" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));" (assignment_expression "uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190))" identifier = (call_expression "(**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190))" (parenthesized_expression "(**(code **)(pcVar6 + 0x132c8))" ( (pointer_expression "**(code **)(pcVar6 + 0x132c8)" * (pointer_expression "*(code **)(pcVar6 + 0x132c8)" * (cast_expression "(code **)(pcVar6 + 0x132c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x132c8)" ( (binary_expression "pcVar6 + 0x132c8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(pcVar6 + 0x13190))" ( (pointer_expression "**(undefined4 **)(pcVar6 + 0x13190)" * (pointer_expression "*(undefined4 **)(pcVar6 + 0x13190)" * (cast_expression "(undefined4 **)(pcVar6 + 0x13190)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x13190)" ( (binary_expression "pcVar6 + 0x13190" identifier + number_literal) ))))) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "int _obstack_begin_worker(obstack *h,size_t size,size_t alignment)\n\n{\n  _obstack_chunk *p_Var1;\n  int iVar2;\n  char *pcVar3;\n  \n  if (alignment == 0) {\n    alignment = 8;\n  }\n  if (size == 0) {\n    size = 0xfe8;\n  }\n  h->chunk_size = size;\n  h->alignment_mask = alignment - 1;\n  p_Var1 = (_obstack_chunk *)call_chunkfun(h,size);\n  h->chunk = p_Var1;\n  if (p_Var1 != (_obstack_chunk *)0x0) {\n    pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);\n    h->object_base = pcVar3;\n    h->next_free = pcVar3;\n    pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);\n    p_Var1->limit = pcVar3;\n    h->chunk_limit = pcVar3;\n    p_Var1->prev = (_obstack_chunk *)0x0;\n    h->field_0x28 = h->field_0x28 & 0x9f;\n    return 1;\n  }\n  iVar2 = (**(code **)PTR_obstack_alloc_failed_handler_0002d228)();\n  return iVar2;\n}\n\n" (function_definition "int _obstack_begin_worker(obstack *h,size_t size,size_t alignment)\n\n{\n  _obstack_chunk *p_Var1;\n  int iVar2;\n  char *pcVar3;\n  \n  if (alignment == 0) {\n    alignment = 8;\n  }\n  if (size == 0) {\n    size = 0xfe8;\n  }\n  h->chunk_size = size;\n  h->alignment_mask = alignment - 1;\n  p_Var1 = (_obstack_chunk *)call_chunkfun(h,size);\n  h->chunk = p_Var1;\n  if (p_Var1 != (_obstack_chunk *)0x0) {\n    pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);\n    h->object_base = pcVar3;\n    h->next_free = pcVar3;\n    pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);\n    p_Var1->limit = pcVar3;\n    h->chunk_limit = pcVar3;\n    p_Var1->prev = (_obstack_chunk *)0x0;\n    h->field_0x28 = h->field_0x28 & 0x9f;\n    return 1;\n  }\n  iVar2 = (**(code **)PTR_obstack_alloc_failed_handler_0002d228)();\n  return iVar2;\n}" primitive_type (function_declarator "_obstack_begin_worker(obstack *h,size_t size,size_t alignment)" identifier (parameter_list "(obstack *h,size_t size,size_t alignment)" ( (parameter_declaration "obstack *h" type_identifier (pointer_declarator "*h" * identifier)) , (parameter_declaration "size_t size" primitive_type identifier) , (parameter_declaration "size_t alignment" primitive_type identifier) ))) (compound_statement "{\n  _obstack_chunk *p_Var1;\n  int iVar2;\n  char *pcVar3;\n  \n  if (alignment == 0) {\n    alignment = 8;\n  }\n  if (size == 0) {\n    size = 0xfe8;\n  }\n  h->chunk_size = size;\n  h->alignment_mask = alignment - 1;\n  p_Var1 = (_obstack_chunk *)call_chunkfun(h,size);\n  h->chunk = p_Var1;\n  if (p_Var1 != (_obstack_chunk *)0x0) {\n    pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);\n    h->object_base = pcVar3;\n    h->next_free = pcVar3;\n    pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);\n    p_Var1->limit = pcVar3;\n    h->chunk_limit = pcVar3;\n    p_Var1->prev = (_obstack_chunk *)0x0;\n    h->field_0x28 = h->field_0x28 & 0x9f;\n    return 1;\n  }\n  iVar2 = (**(code **)PTR_obstack_alloc_failed_handler_0002d228)();\n  return iVar2;\n}" { (declaration "_obstack_chunk *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (if_statement "if (alignment == 0) {\n    alignment = 8;\n  }" if (parenthesized_expression "(alignment == 0)" ( (binary_expression "alignment == 0" identifier == number_literal) )) (compound_statement "{\n    alignment = 8;\n  }" { (expression_statement "alignment = 8;" (assignment_expression "alignment = 8" identifier = number_literal) ;) })) (if_statement "if (size == 0) {\n    size = 0xfe8;\n  }" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (compound_statement "{\n    size = 0xfe8;\n  }" { (expression_statement "size = 0xfe8;" (assignment_expression "size = 0xfe8" identifier = number_literal) ;) })) (expression_statement "h->chunk_size = size;" (assignment_expression "h->chunk_size = size" (field_expression "h->chunk_size" identifier -> field_identifier) = identifier) ;) (expression_statement "h->alignment_mask = alignment - 1;" (assignment_expression "h->alignment_mask = alignment - 1" (field_expression "h->alignment_mask" identifier -> field_identifier) = (binary_expression "alignment - 1" identifier - number_literal)) ;) (expression_statement "p_Var1 = (_obstack_chunk *)call_chunkfun(h,size);" (assignment_expression "p_Var1 = (_obstack_chunk *)call_chunkfun(h,size)" identifier = (cast_expression "(_obstack_chunk *)call_chunkfun(h,size)" ( (type_descriptor "_obstack_chunk *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "call_chunkfun(h,size)" identifier (argument_list "(h,size)" ( identifier , identifier ))))) ;) (expression_statement "h->chunk = p_Var1;" (assignment_expression "h->chunk = p_Var1" (field_expression "h->chunk" identifier -> field_identifier) = identifier) ;) (if_statement "if (p_Var1 != (_obstack_chunk *)0x0) {\n    pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);\n    h->object_base = pcVar3;\n    h->next_free = pcVar3;\n    pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);\n    p_Var1->limit = pcVar3;\n    h->chunk_limit = pcVar3;\n    p_Var1->prev = (_obstack_chunk *)0x0;\n    h->field_0x28 = h->field_0x28 & 0x9f;\n    return 1;\n  }" if (parenthesized_expression "(p_Var1 != (_obstack_chunk *)0x0)" ( (binary_expression "p_Var1 != (_obstack_chunk *)0x0" identifier != (cast_expression "(_obstack_chunk *)0x0" ( (type_descriptor "_obstack_chunk *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);\n    h->object_base = pcVar3;\n    h->next_free = pcVar3;\n    pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);\n    p_Var1->limit = pcVar3;\n    h->chunk_limit = pcVar3;\n    p_Var1->prev = (_obstack_chunk *)0x0;\n    h->field_0x28 = h->field_0x28 & 0x9f;\n    return 1;\n  }" { (expression_statement "pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment);" (assignment_expression "pcVar3 = (char *)((int)&p_Var1->prev + alignment + 3 & -alignment)" identifier = (cast_expression "(char *)((int)&p_Var1->prev + alignment + 3 & -alignment)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p_Var1->prev + alignment + 3 & -alignment)" ( (binary_expression "(int)&p_Var1->prev + alignment + 3 & -alignment" (binary_expression "(int)&p_Var1->prev + alignment + 3" (binary_expression "(int)&p_Var1->prev + alignment" (cast_expression "(int)&p_Var1->prev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var1->prev" & (field_expression "p_Var1->prev" identifier -> field_identifier))) + identifier) + number_literal) & (unary_expression "-alignment" - identifier)) )))) ;) (expression_statement "h->object_base = pcVar3;" (assignment_expression "h->object_base = pcVar3" (field_expression "h->object_base" identifier -> field_identifier) = identifier) ;) (expression_statement "h->next_free = pcVar3;" (assignment_expression "h->next_free = pcVar3" (field_expression "h->next_free" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size);" (assignment_expression "pcVar3 = (char *)((int)&p_Var1->limit + h->chunk_size)" identifier = (cast_expression "(char *)((int)&p_Var1->limit + h->chunk_size)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p_Var1->limit + h->chunk_size)" ( (binary_expression "(int)&p_Var1->limit + h->chunk_size" (cast_expression "(int)&p_Var1->limit" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var1->limit" & (field_expression "p_Var1->limit" identifier -> field_identifier))) + (field_expression "h->chunk_size" identifier -> field_identifier)) )))) ;) (expression_statement "p_Var1->limit = pcVar3;" (assignment_expression "p_Var1->limit = pcVar3" (field_expression "p_Var1->limit" identifier -> field_identifier) = identifier) ;) (expression_statement "h->chunk_limit = pcVar3;" (assignment_expression "h->chunk_limit = pcVar3" (field_expression "h->chunk_limit" identifier -> field_identifier) = identifier) ;) (expression_statement "p_Var1->prev = (_obstack_chunk *)0x0;" (assignment_expression "p_Var1->prev = (_obstack_chunk *)0x0" (field_expression "p_Var1->prev" identifier -> field_identifier) = (cast_expression "(_obstack_chunk *)0x0" ( (type_descriptor "_obstack_chunk *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "h->field_0x28 = h->field_0x28 & 0x9f;" (assignment_expression "h->field_0x28 = h->field_0x28 & 0x9f" (field_expression "h->field_0x28" identifier -> field_identifier) = (binary_expression "h->field_0x28 & 0x9f" (field_expression "h->field_0x28" identifier -> field_identifier) & number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = (**(code **)PTR_obstack_alloc_failed_handler_0002d228)();" (assignment_expression "iVar2 = (**(code **)PTR_obstack_alloc_failed_handler_0002d228)()" identifier = (call_expression "(**(code **)PTR_obstack_alloc_failed_handler_0002d228)()" (parenthesized_expression "(**(code **)PTR_obstack_alloc_failed_handler_0002d228)" ( (pointer_expression "**(code **)PTR_obstack_alloc_failed_handler_0002d228" * (pointer_expression "*(code **)PTR_obstack_alloc_failed_handler_0002d228" * (cast_expression "(code **)PTR_obstack_alloc_failed_handler_0002d228" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "undefined4 FUN_00019f40(int *param_1,int param_2,int param_3)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_00019f40(int *param_1,int param_2,int param_3)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}" type_identifier (function_declarator "FUN_00019f40(int *param_1,int param_2,int param_3)" identifier (parameter_list "(int *param_1,int param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (if_statement "if (param_3 == 0) {\n    param_3 = 8;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    param_3 = 8;\n  }" { (expression_statement "param_3 = 8;" (assignment_expression "param_3 = 8" identifier = number_literal) ;) })) (if_statement "if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    param_2 = 0xfe8;\n  }" { (expression_statement "param_2 = 0xfe8;" (assignment_expression "param_2 = 0xfe8" identifier = number_literal) ;) })) (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[6] = param_3 + -1;" (assignment_expression "param_1[6] = param_3 + -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_3 + -1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_00019eb0(param_1);" (assignment_expression "piVar1 = (int *)FUN_00019eb0(param_1)" identifier = (cast_expression "(int *)FUN_00019eb0(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019eb0(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "param_1[1] = (int)piVar1;" (assignment_expression "param_1[1] = (int)piVar1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }" { (expression_statement "uVar4 = (int)piVar1 + param_3 + 7 & -param_3;" (assignment_expression "uVar4 = (int)piVar1 + param_3 + 7 & -param_3" identifier = (binary_expression "(int)piVar1 + param_3 + 7 & -param_3" (binary_expression "(int)piVar1 + param_3 + 7" (binary_expression "(int)piVar1 + param_3" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) & (unary_expression "-param_3" - identifier))) ;) (expression_statement "param_1[2] = uVar4;" (assignment_expression "param_1[2] = uVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = uVar4;" (assignment_expression "param_1[3] = uVar4" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*piVar1 = (int)piVar1 + iVar3;" (assignment_expression "*piVar1 = (int)piVar1 + iVar3" (pointer_expression "*piVar1" * identifier) = (binary_expression "(int)piVar1 + iVar3" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "param_1[4] = (int)piVar1 + iVar3;" (assignment_expression "param_1[4] = (int)piVar1 + iVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "(int)piVar1 + iVar3" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;" (assignment_expression "*(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 10) & 0x9f" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) & number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;" (assignment_expression "pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228" identifier = (pointer_expression "*(code **)PTR_obstack_alloc_failed_handler_0002d228" * (cast_expression "(code **)PTR_obstack_alloc_failed_handler_0002d228" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = **(undefined4 **)(pcVar6 + 0x13340);" (assignment_expression "uVar5 = **(undefined4 **)(pcVar6 + 0x13340)" identifier = (pointer_expression "**(undefined4 **)(pcVar6 + 0x13340)" * (pointer_expression "*(undefined4 **)(pcVar6 + 0x13340)" * (cast_expression "(undefined4 **)(pcVar6 + 0x13340)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x13340)" ( (binary_expression "pcVar6 + 0x13340" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);" (assignment_expression "uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" identifier = (call_expression "(**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x1331c))" ( (pointer_expression "**(code **)(pcVar6 + 0x1331c)" * (pointer_expression "*(code **)(pcVar6 + 0x1331c)" * (cast_expression "(code **)(pcVar6 + 0x1331c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x1331c)" ( (binary_expression "pcVar6 + 0x1331c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" ( number_literal , (binary_expression "*(int *)(pcVar6 + 0x13104) + -0x3730" (pointer_expression "*(int *)(pcVar6 + 0x13104)" * (cast_expression "(int *)(pcVar6 + 0x13104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x13104)" ( (binary_expression "pcVar6 + 0x13104" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);" (call_expression "(**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x13254))" ( (pointer_expression "**(code **)(pcVar6 + 0x13254)" * (pointer_expression "*(code **)(pcVar6 + 0x13254)" * (cast_expression "(code **)(pcVar6 + 0x13254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x13254)" ( (binary_expression "pcVar6 + 0x13254" identifier + number_literal) ))))) )) (argument_list "(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar6 + 0x13104) + -0x3a78" (pointer_expression "*(int *)(pcVar6 + 0x13104)" * (cast_expression "(int *)(pcVar6 + 0x13104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x13104)" ( (binary_expression "pcVar6 + 0x13104" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));" (assignment_expression "uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190))" identifier = (call_expression "(**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190))" (parenthesized_expression "(**(code **)(pcVar6 + 0x132c8))" ( (pointer_expression "**(code **)(pcVar6 + 0x132c8)" * (pointer_expression "*(code **)(pcVar6 + 0x132c8)" * (cast_expression "(code **)(pcVar6 + 0x132c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x132c8)" ( (binary_expression "pcVar6 + 0x132c8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(pcVar6 + 0x13190))" ( (pointer_expression "**(undefined4 **)(pcVar6 + 0x13190)" * (pointer_expression "*(undefined4 **)(pcVar6 + 0x13190)" * (cast_expression "(undefined4 **)(pcVar6 + 0x13190)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x13190)" ( (binary_expression "pcVar6 + 0x13190" identifier + number_literal) ))))) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) & (unary_expression - IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00019f40(int *param_1,int param_2,int param_3)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}" (type_identifier "undefined4") (function_declarator "FUN_00019f40(int *param_1,int param_2,int param_3)" (identifier "FUN_00019f40") (parameter_list "(int *param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  \n  if (param_3 == 0) {\n    param_3 = 8;\n  }\n  if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }\n  *param_1 = param_2;\n  param_1[6] = param_3 + -1;\n  piVar1 = (int *)FUN_00019eb0(param_1);\n  param_1[1] = (int)piVar1;\n  if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }\n  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;\n  (*pcVar6)();\n  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);\n  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);\n  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);\n  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));\n  return uVar2;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (if_statement "if (param_3 == 0) {\n    param_3 = 8;\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_3 = 8;\n  }" ({ "{") (expression_statement "param_3 = 8;" (assignment_expression "param_3 = 8" (identifier "param_3") (= "=") (number_literal "8")) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n    param_2 = 0xfe8;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_2 = 0xfe8;\n  }" ({ "{") (expression_statement "param_2 = 0xfe8;" (assignment_expression "param_2 = 0xfe8" (identifier "param_2") (= "=") (number_literal "0xfe8")) (; ";")) (} "}"))) (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_1[6] = param_3 + -1;" (assignment_expression "param_1[6] = param_3 + -1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "param_3 + -1" (identifier "param_3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar1 = (int *)FUN_00019eb0(param_1);" (assignment_expression "piVar1 = (int *)FUN_00019eb0(param_1)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_00019eb0(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019eb0(param_1)" (identifier "FUN_00019eb0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "param_1[1] = (int)piVar1;" (assignment_expression "param_1[1] = (int)piVar1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1"))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;\n    param_1[2] = uVar4;\n    param_1[3] = uVar4;\n    iVar3 = *param_1;\n    *piVar1 = (int)piVar1 + iVar3;\n    param_1[4] = (int)piVar1 + iVar3;\n    piVar1[1] = 0;\n    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;\n    return 1;\n  }" ({ "{") (expression_statement "uVar4 = (int)piVar1 + param_3 + 7 & -param_3;" (assignment_expression "uVar4 = (int)piVar1 + param_3 + 7 & -param_3" (identifier "uVar4") (= "=") (binary_expression "(int)piVar1 + param_3 + 7 & -param_3" (binary_expression "(int)piVar1 + param_3 + 7" (binary_expression "(int)piVar1 + param_3" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (+ "+") (identifier "param_3")) (+ "+") (number_literal "7")) (& "&") (unary_expression "-param_3" (- "-") (identifier "param_3")))) (; ";")) (expression_statement "param_1[2] = uVar4;" (assignment_expression "param_1[2] = uVar4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "param_1[3] = uVar4;" (assignment_expression "param_1[3] = uVar4" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" (identifier "iVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*piVar1 = (int)piVar1 + iVar3;" (assignment_expression "*piVar1 = (int)piVar1 + iVar3" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "(int)piVar1 + iVar3" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "param_1[4] = (int)piVar1 + iVar3;" (assignment_expression "param_1[4] = (int)piVar1 + iVar3" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(int)piVar1 + iVar3" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;" (assignment_expression "*(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f" (pointer_expression "*(byte *)(param_1 + 10)" (* "*") (cast_expression "(byte *)(param_1 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 10) & 0x9f" (pointer_expression "*(byte *)(param_1 + 10)" (* "*") (cast_expression "(byte *)(param_1 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0x9f"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;" (assignment_expression "pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)PTR_obstack_alloc_failed_handler_0002d228" (* "*") (cast_expression "(code **)PTR_obstack_alloc_failed_handler_0002d228" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_obstack_alloc_failed_handler_0002d228")))) (; ";")) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = **(undefined4 **)(pcVar6 + 0x13340);" (assignment_expression "uVar5 = **(undefined4 **)(pcVar6 + 0x13340)" (identifier "uVar5") (= "=") (pointer_expression "**(undefined4 **)(pcVar6 + 0x13340)" (* "*") (pointer_expression "*(undefined4 **)(pcVar6 + 0x13340)" (* "*") (cast_expression "(undefined4 **)(pcVar6 + 0x13340)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x13340)" (( "(") (binary_expression "pcVar6 + 0x13340" (identifier "pcVar6") (+ "+") (number_literal "0x13340")) () ")")))))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);" (assignment_expression "uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x1331c))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x1331c)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x1331c)" (* "*") (cast_expression "(code **)(pcVar6 + 0x1331c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x1331c)" (( "(") (binary_expression "pcVar6 + 0x1331c" (identifier "pcVar6") (+ "+") (number_literal "0x1331c")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar6 + 0x13104) + -0x3730" (pointer_expression "*(int *)(pcVar6 + 0x13104)" (* "*") (cast_expression "(int *)(pcVar6 + 0x13104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x13104)" (( "(") (binary_expression "pcVar6 + 0x13104" (identifier "pcVar6") (+ "+") (number_literal "0x13104")) () ")")))) (+ "+") (number_literal "-0x3730")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);" (call_expression "(**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x13254))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x13254)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x13254)" (* "*") (cast_expression "(code **)(pcVar6 + 0x13254)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x13254)" (( "(") (binary_expression "pcVar6 + 0x13254" (identifier "pcVar6") (+ "+") (number_literal "0x13254")) () ")"))))) () ")")) (argument_list "(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2)" (( "(") (identifier "uVar5") (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(pcVar6 + 0x13104) + -0x3a78" (pointer_expression "*(int *)(pcVar6 + 0x13104)" (* "*") (cast_expression "(int *)(pcVar6 + 0x13104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x13104)" (( "(") (binary_expression "pcVar6 + 0x13104" (identifier "pcVar6") (+ "+") (number_literal "0x13104")) () ")")))) (+ "+") (number_literal "-0x3a78")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));" (assignment_expression "uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190))" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190))" (parenthesized_expression "(**(code **)(pcVar6 + 0x132c8))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x132c8)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x132c8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x132c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x132c8)" (( "(") (binary_expression "pcVar6 + 0x132c8" (identifier "pcVar6") (+ "+") (number_literal "0x132c8")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(pcVar6 + 0x13190))" (( "(") (pointer_expression "**(undefined4 **)(pcVar6 + 0x13190)" (* "*") (pointer_expression "*(undefined4 **)(pcVar6 + 0x13190)" (* "*") (cast_expression "(undefined4 **)(pcVar6 + 0x13190)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x13190)" (( "(") (binary_expression "pcVar6 + 0x13190" (identifier "pcVar6") (+ "+") (number_literal "0x13190")) () ")"))))) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

int function_1(type_1 *h,size_t var_2,size_t var_1)

{
  type_2 *var_4;
  int iVar2;
  char *pcVar3;
  
  if (var_1 == 0) {
    var_1 = 8;
  }
  if (var_2 == 0) {
    var_2 = 0xfe8;
  }
  h->chunk_size = var_2;
  h->alignment_mask = var_1 - 1;
  var_4 = (type_2 *)var_3(h,var_2);
  h->chunk = var_4;
  if (var_4 != (type_2 *)0x0) {
    pcVar3 = (char *)((int)&var_4->prev + var_1 + 3 & -var_1);
    h->object_base = pcVar3;
    h->next_free = pcVar3;
    pcVar3 = (char *)((int)&var_4->limit + h->chunk_size);
    var_4->limit = pcVar3;
    h->chunk_limit = pcVar3;
    var_4->prev = (type_2 *)0x0;
    h->field_0x28 = h->field_0x28 & 0x9f;
    return 1;
  }
  iVar2 = (**(type_3 **)PTR_obstack_alloc_failed_handler_0002d228)();
  return iVar2;
}


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

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

{
  int *piVar1;
  undefined4 uVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  code *pcVar6;
  
  if (param_3 == 0) {
    param_3 = 8;
  }
  if (param_2 == 0) {
    param_2 = 0xfe8;
  }
  *param_1 = param_2;
  param_1[6] = param_3 + -1;
  piVar1 = (int *)FUN_00019eb0(param_1);
  param_1[1] = (int)piVar1;
  if (piVar1 != (int *)0x0) {
    uVar4 = (int)piVar1 + param_3 + 7 & -param_3;
    param_1[2] = uVar4;
    param_1[3] = uVar4;
    iVar3 = *param_1;
    *piVar1 = (int)piVar1 + iVar3;
    param_1[4] = (int)piVar1 + iVar3;
    piVar1[1] = 0;
    *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0x9f;
    return 1;
  }
  pcVar6 = *(code **)PTR_obstack_alloc_failed_handler_0002d228;
  (*pcVar6)();
  uVar5 = **(undefined4 **)(pcVar6 + 0x13340);
  uVar2 = (**(code **)(pcVar6 + 0x1331c))(0,*(int *)(pcVar6 + 0x13104) + -0x3730,5);
  (**(code **)(pcVar6 + 0x13254))(uVar5,1,*(int *)(pcVar6 + 0x13104) + -0x3a78,uVar2);
  uVar2 = (**(code **)(pcVar6 + 0x132c8))(**(undefined4 **)(pcVar6 + 0x13190));
  return uVar2;
}

