
void raise_error_unexpected_syntax(int token)

{
  undefined *puVar1;
  int iVar2;
  char *pcVar3;
  char buf [16];
  char msg [64];
  
  puVar1 = PTR_DAT_0012a178;
  pcVar3 = *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);
  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {
    pcVar3 = buf;
    (*(code *)PTR___sprintf_chk_0012ac60)
              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,
               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));
  }
  iVar2 = (*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3);
  if (token != -1) {
    if (token < 4) {
      (*(code *)PTR___sprintf_chk_0012ac60)
                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,
                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));
    }
    else {
      (*(code *)PTR___sprintf_chk_0012ac60)
                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)
                );
      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)
      ;
    }
  }
  pcVar3 = PTR_UINT_0012a18c + 0x78f0;
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =
       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);
  ash_msg_and_raise_error(pcVar3,msg);
}



void FUN_000760e0(int param_1)

{
  int iVar1;
  undefined *puVar2;
  undefined1 *puVar3;
  undefined1 auStack_6c [16];
  undefined1 auStack_5c [64];
  undefined4 local_1c;
  
  puVar2 = PTR_DAT_0012a178;
  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;
  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);
  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {
    puVar3 = auStack_6c;
    (*(code *)PTR___sprintf_chk_0012ac60)
              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,
               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));
  }
  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)
  ;
  if (param_1 != -1) {
    if (param_1 < 4) {
      (*(code *)PTR___sprintf_chk_0012ac60)
                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,
                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));
    }
    else {
      (*(code *)PTR___sprintf_chk_0012ac60)
                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,
                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));
      (*(code *)PTR___sprintf_chk_0012ac60)
                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);
    }
  }
  puVar2 = PTR_UINT_0012a18c + 0x78f0;
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =
       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);
  FUN_0006ee68(puVar2,auStack_5c);
}


lui gp,0xc
addiu gp,gp,-0x3f90
addu gp,gp,t9
lw v0,-0x7fd8(gp)
addiu sp,sp,-0x90
lw v1,-0x7004(gp)
sw s0,0x7c(sp)
sw s1,0x80(sp)
or s1,a0,zero
lb v0,-0x4c3e(v0)
lw s0,-0x7fd8(gp)
lw a0,0x0(v1)
sll v1,v0,0x2
sw gp,0x18(sp)
addiu s0,s0,-0x6870
sw s2,0x84(sp)
slti v0,v0,0x4
sw ra,0x8c(sp)
addu v1,s0,v1
sw s3,0x88(sp)
sw a0,0x74(sp)
beq v0,zero,0x000761d8
_lw s2,0x0(v1)
lw a3,-0x7fc4(gp)
addiu s3,sp,0x34
lw t9,-0x74f0(gp)
li a2,0x40
li a1,0x1
sw s2,0x10(sp)
addiu a3,a3,0x78d0
jalr t9
_or a0,s3,zero
li v1,-0x1
lw gp,0x18(sp)
beq s1,v1,0x000761a8
_or s2,v0,zero
sll v0,s1,0x2
slti s1,s1,0x4
addu s0,s0,v0
beq s1,zero,0x00076204
_lw s0,0x0(s0)
lw a3,-0x7fc4(gp)
li a2,-0x1
lw t9,-0x74f0(gp)
li a1,0x1
addu a0,s3,s2
sw s0,0x10(sp)
jalr t9
_addiu a3,a3,0x78e0
lw gp,0x18(sp)
lw v0,-0x7fd8(gp)
or a1,s3,zero
lw a0,-0x7fc4(gp)
lw t9,-0x793c(gp)
lw v1,-0x5ff0(v0)
addiu a0,a0,0x78f0
lw v0,-0x7904(gp)
addiu t9,t9,-0x1198
lw v1,0x4(v1)
lw v0,0x0(v0)
bal 0x0006ee68
_sw v1,0xc(v0)
lw a3,-0x7fc4(gp)
li a2,0x10
lw t9,-0x74f0(gp)
li a1,0x1
sw s2,0x10(sp)
addiu s2,sp,0x24
addiu a3,a3,0x2db8
jalr t9
_or a0,s2,zero
b 0x0007613c
_lw gp,0x18(sp)
lw a3,-0x7fc4(gp)
li a2,0x10
lw t9,-0x74f0(gp)
li a1,0x1
sw s0,0x10(sp)
addiu s0,sp,0x24
addiu a3,a3,0x2db8
jalr t9
_or a0,s0,zero
li a2,-0x1
lw gp,0x18(sp)
li a1,0x1
addu a0,s3,s2
sw s0,0x10(sp)
lw a3,-0x7fc4(gp)
lw t9,-0x74f0(gp)
jalr t9
_addiu a3,a3,0x78e0
b 0x000761a8
_lw gp,0x18(sp)
(translation_unit "void FUN_000760e0(int param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}\n\n" (function_definition "void FUN_000760e0(int param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}" primitive_type (function_declarator "FUN_000760e0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 auStack_6c [16];" type_identifier (array_declarator "auStack_6c [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_5c [64];" type_identifier (array_declarator "auStack_5c [64]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (expression_statement "puVar2 = PTR_DAT_0012a178;" (assignment_expression "puVar2 = PTR_DAT_0012a178" identifier = identifier) ;) (expression_statement "local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(undefined4 *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(undefined4 *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);" (assignment_expression "puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" identifier = (pointer_expression "*(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" * (cast_expression "(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" identifier + (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ])) * number_literal)) + number_literal) ))))) ;) (if_statement "if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" if (parenthesized_expression "(3 < (char)PTR_DAT_0012a178[-0x4c3e])" ( (binary_expression "3 < (char)PTR_DAT_0012a178[-0x4c3e]" number_literal < (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ]))) )) (compound_statement "{\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" { (expression_statement "puVar3 = auStack_6c;" (assignment_expression "puVar3 = auStack_6c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x2db8" identifier + number_literal) , (pointer_expression "*(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" * (cast_expression "(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" identifier + (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ])) * number_literal)) + number_literal) )))) ))) ;) })) (expression_statement "iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;" (assignment_expression "iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" identifier = (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }" if (parenthesized_expression "(param_1 != -1)" ( (binary_expression "param_1 != -1" identifier != number_literal) )) (compound_statement "{\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }" { (if_statement "if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" if (parenthesized_expression "(param_1 < 4)" ( (binary_expression "param_1 < 4" identifier < number_literal) )) (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" ( (binary_expression "auStack_5c + iVar1" identifier + identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78e0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" * (cast_expression "(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + param_1 * 4 + -0x6870)" ( (binary_expression "puVar2 + param_1 * 4 + -0x6870" (binary_expression "puVar2 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) )))) ))) ;) }) (else_clause "else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" else (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x2db8" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" * (cast_expression "(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + param_1 * 4 + -0x6870)" ( (binary_expression "puVar2 + param_1 * 4 + -0x6870" (binary_expression "puVar2 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c)" ( (binary_expression "auStack_5c + iVar1" identifier + identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78e0" identifier + number_literal) , identifier ))) ;) }))) })) (expression_statement "puVar2 = PTR_UINT_0012a18c + 0x78f0;" (assignment_expression "puVar2 = PTR_UINT_0012a18c + 0x78f0" identifier = (binary_expression "PTR_UINT_0012a18c + 0x78f0" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);" (assignment_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (pointer_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" * (cast_expression "(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" ( (binary_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc" (pointer_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c" * (cast_expression "(int *)PTR_ash_ptr_to_globals_misc_0012a84c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" * (cast_expression "(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" ( (binary_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4" (pointer_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0)" * (cast_expression "(int *)(PTR_DAT_0012a178 + -0x5ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0012a178 + -0x5ff0)" ( (binary_expression "PTR_DAT_0012a178 + -0x5ff0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "FUN_0006ee68(puVar2,auStack_5c);" (call_expression "FUN_0006ee68(puVar2,auStack_5c)" identifier (argument_list "(puVar2,auStack_5c)" ( identifier , identifier ))) ;) })))
(translation_unit "void raise_error_unexpected_syntax(int token)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  char *pcVar3;\n  char buf [16];\n  char msg [64];\n  \n  puVar1 = PTR_DAT_0012a178;\n  pcVar3 = *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    pcVar3 = buf;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar2 = (*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3);\n  if (token != -1) {\n    if (token < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }\n  }\n  pcVar3 = PTR_UINT_0012a18c + 0x78f0;\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  ash_msg_and_raise_error(pcVar3,msg);\n}\n\n" (function_definition "void raise_error_unexpected_syntax(int token)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  char *pcVar3;\n  char buf [16];\n  char msg [64];\n  \n  puVar1 = PTR_DAT_0012a178;\n  pcVar3 = *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    pcVar3 = buf;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar2 = (*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3);\n  if (token != -1) {\n    if (token < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }\n  }\n  pcVar3 = PTR_UINT_0012a18c + 0x78f0;\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  ash_msg_and_raise_error(pcVar3,msg);\n}" primitive_type (function_declarator "raise_error_unexpected_syntax(int token)" identifier (parameter_list "(int token)" ( (parameter_declaration "int token" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  char *pcVar3;\n  char buf [16];\n  char msg [64];\n  \n  puVar1 = PTR_DAT_0012a178;\n  pcVar3 = *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    pcVar3 = buf;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar2 = (*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3);\n  if (token != -1) {\n    if (token < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }\n  }\n  pcVar3 = PTR_UINT_0012a18c + 0x78f0;\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  ash_msg_and_raise_error(pcVar3,msg);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char buf [16];" primitive_type (array_declarator "buf [16]" identifier [ number_literal ]) ;) (declaration "char msg [64];" primitive_type (array_declarator "msg [64]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR_DAT_0012a178;" (assignment_expression "puVar1 = PTR_DAT_0012a178" identifier = identifier) ;) (expression_statement "pcVar3 = *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);" (assignment_expression "pcVar3 = *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" identifier = (pointer_expression "*(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" * (cast_expression "(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" identifier + (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ])) * number_literal)) + number_literal) ))))) ;) (if_statement "if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    pcVar3 = buf;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" if (parenthesized_expression "(3 < (char)PTR_DAT_0012a178[-0x4c3e])" ( (binary_expression "3 < (char)PTR_DAT_0012a178[-0x4c3e]" number_literal < (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ]))) )) (compound_statement "{\n    pcVar3 = buf;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" { (expression_statement "pcVar3 = buf;" (assignment_expression "pcVar3 = buf" identifier = identifier) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n              (pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x2db8" identifier + number_literal) , (pointer_expression "*(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" * (cast_expression "(char **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" identifier + (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ])) * number_literal)) + number_literal) )))) ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3);" (assignment_expression "iVar2 = (*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3)" identifier = (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(msg,1,0x40,PTR_UINT_0012a18c + 0x78d0,pcVar3)" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (token != -1) {\n    if (token < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }\n  }" if (parenthesized_expression "(token != -1)" ( (binary_expression "token != -1" identifier != number_literal) )) (compound_statement "{\n    if (token < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }\n  }" { (if_statement "if (token < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }" if (parenthesized_expression "(token < 4)" ( (binary_expression "token < 4" identifier < number_literal) )) (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar1 + token * 4 + -0x6870))" ( (binary_expression "msg + iVar2" identifier + identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78e0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar1 + token * 4 + -0x6870)" * (cast_expression "(undefined4 *)(puVar1 + token * 4 + -0x6870)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + token * 4 + -0x6870)" ( (binary_expression "puVar1 + token * 4 + -0x6870" (binary_expression "puVar1 + token * 4" identifier + (binary_expression "token * 4" identifier * number_literal)) + number_literal) )))) ))) ;) }) (else_clause "else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }" else (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );\n      (*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                );" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                )" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buf,1,0x10,PTR_UINT_0012a18c + 0x2db8,*(undefined4 *)(puVar1 + token * 4 + -0x6870)\n                )" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x2db8" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar1 + token * 4 + -0x6870)" * (cast_expression "(undefined4 *)(puVar1 + token * 4 + -0x6870)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + token * 4 + -0x6870)" ( (binary_expression "puVar1 + token * 4 + -0x6870" (binary_expression "puVar1 + token * 4" identifier + (binary_expression "token * 4" identifier * number_literal)) + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)\n      ;" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(msg + iVar2,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,buf)" ( (binary_expression "msg + iVar2" identifier + identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78e0" identifier + number_literal) , identifier ))) ;) }))) })) (expression_statement "pcVar3 = PTR_UINT_0012a18c + 0x78f0;" (assignment_expression "pcVar3 = PTR_UINT_0012a18c + 0x78f0" identifier = (binary_expression "PTR_UINT_0012a18c + 0x78f0" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);" (assignment_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (pointer_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" * (cast_expression "(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" ( (binary_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc" (pointer_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c" * (cast_expression "(int *)PTR_ash_ptr_to_globals_misc_0012a84c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" * (cast_expression "(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" ( (binary_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4" (pointer_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0)" * (cast_expression "(int *)(PTR_DAT_0012a178 + -0x5ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0012a178 + -0x5ff0)" ( (binary_expression "PTR_DAT_0012a178 + -0x5ff0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ash_msg_and_raise_error(pcVar3,msg);" (call_expression "ash_msg_and_raise_error(pcVar3,msg)" identifier (argument_list "(pcVar3,msg)" ( identifier , identifier ))) ;) })))
(translation_unit "void FUN_000760e0(int param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    \n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}\n\n" (function_definition "void FUN_000760e0(int param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    \n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}" primitive_type (function_declarator "FUN_000760e0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    \n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 auStack_6c [16];" type_identifier (array_declarator "auStack_6c [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_5c [64];" type_identifier (array_declarator "auStack_5c [64]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (expression_statement "puVar2 = PTR_DAT_0012a178;" (assignment_expression "puVar2 = PTR_DAT_0012a178" identifier = identifier) ;) (expression_statement "local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(undefined4 *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(undefined4 *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);" (assignment_expression "puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" identifier = (pointer_expression "*(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" * (cast_expression "(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" identifier + (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ])) * number_literal)) + number_literal) ))))) ;) (if_statement "if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" if (parenthesized_expression "(3 < (char)PTR_DAT_0012a178[-0x4c3e])" ( (binary_expression "3 < (char)PTR_DAT_0012a178[-0x4c3e]" number_literal < (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ]))) )) (compound_statement "{\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" { (expression_statement "puVar3 = auStack_6c;" (assignment_expression "puVar3 = auStack_6c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x2db8" identifier + number_literal) , (pointer_expression "*(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" * (cast_expression "(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" ( (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" identifier + (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" identifier [ number_literal ])) * number_literal)) + number_literal) )))) ))) ;) })) (expression_statement "iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;" (assignment_expression "iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" identifier = (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }" if (parenthesized_expression "(param_1 != -1)" ( (binary_expression "param_1 != -1" identifier != number_literal) )) (compound_statement "{\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }" { (if_statement "if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" if (parenthesized_expression "(param_1 < 4)" ( (binary_expression "param_1 < 4" identifier < number_literal) )) (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" ( (binary_expression "auStack_5c + iVar1" identifier + identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78e0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" * (cast_expression "(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + param_1 * 4 + -0x6870)" ( (binary_expression "puVar2 + param_1 * 4 + -0x6870" (binary_expression "puVar2 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) )))) ))) ;) }) (else_clause "else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" else (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" ( identifier , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x2db8" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" * (cast_expression "(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + param_1 * 4 + -0x6870)" ( (binary_expression "puVar2 + param_1 * 4 + -0x6870" (binary_expression "puVar2 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" * (cast_expression "(code *)PTR___sprintf_chk_0012ac60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c)" ( (binary_expression "auStack_5c + iVar1" identifier + identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_0012a18c + 0x78e0" identifier + number_literal) , identifier ))) ;) }))) })) (expression_statement "puVar2 = PTR_UINT_0012a18c + 0x78f0;" (assignment_expression "puVar2 = PTR_UINT_0012a18c + 0x78f0" identifier = (binary_expression "PTR_UINT_0012a18c + 0x78f0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);" (assignment_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (pointer_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" * (cast_expression "(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" ( (binary_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc" (pointer_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c" * (cast_expression "(int *)PTR_ash_ptr_to_globals_misc_0012a84c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" * (cast_expression "(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" ( (binary_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4" (pointer_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0)" * (cast_expression "(int *)(PTR_DAT_0012a178 + -0x5ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0012a178 + -0x5ff0)" ( (binary_expression "PTR_DAT_0012a178 + -0x5ff0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "FUN_0006ee68(puVar2,auStack_5c);" (call_expression "FUN_0006ee68(puVar2,auStack_5c)" identifier (argument_list "(puVar2,auStack_5c)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT , LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "void FUN_000760e0(int param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    \n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}" (primitive_type "void") (function_declarator "FUN_000760e0(int param_1)" (identifier "FUN_000760e0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  undefined1 *puVar3;\n  undefined1 auStack_6c [16];\n  undefined1 auStack_5c [64];\n  undefined4 local_1c;\n  \n  puVar2 = PTR_DAT_0012a178;\n  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;\n  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);\n  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }\n  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;\n  if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }\n  puVar2 = PTR_UINT_0012a18c + 0x78f0;\n                    \n  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);\n  FUN_0006ee68(puVar2,auStack_5c);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 auStack_6c [16];" (type_identifier "undefined1") (array_declarator "auStack_6c [16]" (identifier "auStack_6c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 auStack_5c [64];" (type_identifier "undefined1") (array_declarator "auStack_5c [64]" (identifier "auStack_5c") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (expression_statement "puVar2 = PTR_DAT_0012a178;" (assignment_expression "puVar2 = PTR_DAT_0012a178" (identifier "puVar2") (= "=") (identifier "PTR_DAT_0012a178")) (; ";")) (expression_statement "local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c" (identifier "local_1c") (= "=") (pointer_expression "*(undefined4 *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(undefined4 *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (expression_statement "puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);" (assignment_expression "puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (* "*") (cast_expression "(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (( "(") (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" (identifier "PTR_DAT_0012a178") (+ "+") (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" (identifier "PTR_DAT_0012a178") ([ "[") (number_literal "-0x4c3e") (] "]"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x6870")) () ")"))))) (; ";")) (if_statement "if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" (if "if") (parenthesized_expression "(3 < (char)PTR_DAT_0012a178[-0x4c3e])" (( "(") (binary_expression "3 < (char)PTR_DAT_0012a178[-0x4c3e]" (number_literal "3") (< "<") (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" (identifier "PTR_DAT_0012a178") ([ "[") (number_literal "-0x4c3e") (] "]")))) () ")")) (compound_statement "{\n    puVar3 = auStack_6c;\n    (*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));\n  }" ({ "{") (expression_statement "puVar3 = auStack_6c;" (assignment_expression "puVar3 = auStack_6c" (identifier "puVar3") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" (* "*") (cast_expression "(code *)PTR___sprintf_chk_0012ac60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_0012ac60"))) () ")")) (argument_list "(puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870))" (( "(") (identifier "puVar3") (, ",") (number_literal "1") (, ",") (number_literal "0x10") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x2db8" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x2db8")) (, ",") (pointer_expression "*(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (* "*") (cast_expression "(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870)" (( "(") (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870" (binary_expression "PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4" (identifier "PTR_DAT_0012a178") (+ "+") (binary_expression "(char)PTR_DAT_0012a178[-0x4c3e] * 4" (cast_expression "(char)PTR_DAT_0012a178[-0x4c3e]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "PTR_DAT_0012a178[-0x4c3e]" (identifier "PTR_DAT_0012a178") ([ "[") (number_literal "-0x4c3e") (] "]"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x6870")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)\n  ;" (assignment_expression "iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" (* "*") (cast_expression "(code *)PTR___sprintf_chk_0012ac60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_0012ac60"))) () ")")) (argument_list "(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)" (( "(") (identifier "auStack_5c") (, ",") (number_literal "1") (, ",") (number_literal "0x40") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x78d0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x78d0")) (, ",") (identifier "puVar3") () ")")))) (; ";")) (if_statement "if (param_1 != -1) {\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }" (if "if") (parenthesized_expression "(param_1 != -1)" (( "(") (binary_expression "param_1 != -1" (identifier "param_1") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }\n  }" ({ "{") (if_statement "if (param_1 < 4) {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" (if "if") (parenthesized_expression "(param_1 < 4)" (( "(") (binary_expression "param_1 < 4" (identifier "param_1") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n    }" ({ "{") (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" (* "*") (cast_expression "(code *)PTR___sprintf_chk_0012ac60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_0012ac60"))) () ")")) (argument_list "(auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (( "(") (binary_expression "auStack_5c + iVar1" (identifier "auStack_5c") (+ "+") (identifier "iVar1")) (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x78e0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x78e0")) (, ",") (pointer_expression "*(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" (* "*") (cast_expression "(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + param_1 * 4 + -0x6870)" (( "(") (binary_expression "puVar2 + param_1 * 4 + -0x6870" (binary_expression "puVar2 + param_1 * 4" (identifier "puVar2") (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x6870")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));\n      (*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);\n    }" ({ "{") (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" (* "*") (cast_expression "(code *)PTR___sprintf_chk_0012ac60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_0012ac60"))) () ")")) (argument_list "(auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,\n                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870))" (( "(") (identifier "auStack_6c") (, ",") (number_literal "1") (, ",") (number_literal "0x10") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x2db8" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x2db8")) (, ",") (pointer_expression "*(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" (* "*") (cast_expression "(undefined4 *)(puVar2 + param_1 * 4 + -0x6870)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + param_1 * 4 + -0x6870)" (( "(") (binary_expression "puVar2 + param_1 * 4 + -0x6870" (binary_expression "puVar2 + param_1 * 4" (identifier "puVar2") (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x6870")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);" (call_expression "(*(code *)PTR___sprintf_chk_0012ac60)\n                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0012ac60)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_0012ac60" (* "*") (cast_expression "(code *)PTR___sprintf_chk_0012ac60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_0012ac60"))) () ")")) (argument_list "(auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c)" (( "(") (binary_expression "auStack_5c + iVar1" (identifier "auStack_5c") (+ "+") (identifier "iVar1")) (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x78e0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x78e0")) (, ",") (identifier "auStack_6c") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar2 = PTR_UINT_0012a18c + 0x78f0;" (assignment_expression "puVar2 = PTR_UINT_0012a18c + 0x78f0" (identifier "puVar2") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x78f0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x78f0"))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);" (assignment_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =\n       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (pointer_expression "*(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" (* "*") (cast_expression "(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc)" (( "(") (binary_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc" (pointer_expression "*(int *)PTR_ash_ptr_to_globals_misc_0012a84c" (* "*") (cast_expression "(int *)PTR_ash_ptr_to_globals_misc_0012a84c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ash_ptr_to_globals_misc_0012a84c"))) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4)" (( "(") (binary_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4" (pointer_expression "*(int *)(PTR_DAT_0012a178 + -0x5ff0)" (* "*") (cast_expression "(int *)(PTR_DAT_0012a178 + -0x5ff0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0012a178 + -0x5ff0)" (( "(") (binary_expression "PTR_DAT_0012a178 + -0x5ff0" (identifier "PTR_DAT_0012a178") (+ "+") (number_literal "-0x5ff0")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "FUN_0006ee68(puVar2,auStack_5c);" (call_expression "FUN_0006ee68(puVar2,auStack_5c)" (identifier "FUN_0006ee68") (argument_list "(puVar2,auStack_5c)" (( "(") (identifier "puVar2") (, ",") (identifier "auStack_5c") () ")"))) (; ";")) (} "}")))

void function_1(int var_3)

{
  type_1 *var_6;
  int var_5;
  char *pcVar3;
  char buf [16];
  char var_4 [64];
  
  var_6 = var_1;
  pcVar3 = *(char **)(var_1 + (char)var_1[-0x4c3e] * 4 + -0x6870);
  if (3 < (char)var_1[-0x4c3e]) {
    pcVar3 = buf;
    (*(type_2 *)PTR___sprintf_chk_0012ac60)
              (pcVar3,1,0x10,var_2 + 0x2db8,
               *(char **)(var_1 + (char)var_1[-0x4c3e] * 4 + -0x6870));
  }
  var_5 = (*(type_2 *)PTR___sprintf_chk_0012ac60)(var_4,1,0x40,var_2 + 0x78d0,pcVar3);
  if (var_3 != -1) {
    if (var_3 < 4) {
      (*(type_2 *)PTR___sprintf_chk_0012ac60)
                (var_4 + var_5,1,0xffffffff,var_2 + 0x78e0,
                 *(type_3 *)(var_6 + var_3 * 4 + -0x6870));
    }
    else {
      (*(type_2 *)PTR___sprintf_chk_0012ac60)
                (buf,1,0x10,var_2 + 0x2db8,*(type_3 *)(var_6 + var_3 * 4 + -0x6870)
                );
      (*(type_2 *)PTR___sprintf_chk_0012ac60)(var_4 + var_5,1,0xffffffff,var_2 + 0x78e0,buf)
      ;
    }
  }
  pcVar3 = var_2 + 0x78f0;
                    /* WARNING: Subroutine does not return */
  *(type_3 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =
       *(type_3 *)(*(int *)(var_1 + -0x5ff0) + 4);
  var_7(pcVar3,var_4);
}


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

void MASKED(int param_1)

{
  int iVar1;
  undefined *puVar2;
  undefined1 *puVar3;
  undefined1 auStack_6c [16];
  undefined1 auStack_5c [64];
  undefined4 local_1c;
  
  puVar2 = PTR_DAT_0012a178;
  local_1c = *(undefined4 *)PTR___stack_chk_guard_0012b14c;
  puVar3 = *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870);
  if (3 < (char)PTR_DAT_0012a178[-0x4c3e]) {
    puVar3 = auStack_6c;
    (*(code *)PTR___sprintf_chk_0012ac60)
              (puVar3,1,0x10,PTR_UINT_0012a18c + 0x2db8,
               *(undefined1 **)(PTR_DAT_0012a178 + (char)PTR_DAT_0012a178[-0x4c3e] * 4 + -0x6870));
  }
  iVar1 = (*(code *)PTR___sprintf_chk_0012ac60)(auStack_5c,1,0x40,PTR_UINT_0012a18c + 0x78d0,puVar3)
  ;
  if (param_1 != -1) {
    if (param_1 < 4) {
      (*(code *)PTR___sprintf_chk_0012ac60)
                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,
                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));
    }
    else {
      (*(code *)PTR___sprintf_chk_0012ac60)
                (auStack_6c,1,0x10,PTR_UINT_0012a18c + 0x2db8,
                 *(undefined4 *)(puVar2 + param_1 * 4 + -0x6870));
      (*(code *)PTR___sprintf_chk_0012ac60)
                (auStack_5c + iVar1,1,0xffffffff,PTR_UINT_0012a18c + 0x78e0,auStack_6c);
    }
  }
  puVar2 = PTR_UINT_0012a18c + 0x78f0;
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(*(int *)PTR_ash_ptr_to_globals_misc_0012a84c + 0xc) =
       *(undefined4 *)(*(int *)(PTR_DAT_0012a178 + -0x5ff0) + 4);
  FUN_0006ee68(puVar2,auStack_5c);
}

