
BcStatus zdc_parse_mem(uint8_t inst,_Bool name,_Bool store)

{
  undefined *puVar1;
  BcStatus BVar2;
  undefined3 in_register_00000014;
  undefined3 in_register_00000018;
  int iVar3;
  uint8_t uStack_25;
  int iStack_24;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  iVar3 = *(int *)PTR_ptr_to_globals_0012a304;
  iStack_24 = *(int *)PTR___stack_chk_guard_0012b14c;
  uStack_25 = inst;
  bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);
  if (((CONCAT31(in_register_00000014,name) == 0) ||
      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&
     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)) {
    uStack_25 = '=';
    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);
    uStack_25 = '\x1a';
    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);
    uStack_25 = '1';
    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);
    BVar2 = BC_STATUS_SUCCESS;
    if (iStack_24 != *(int *)puVar1) goto LAB_00025800;
  }
  else if (iStack_24 != *(int *)puVar1) {
LAB_00025800:
    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
    return BVar2;
  }
  return BVar2;
}



int FUN_000256c0(undefined1 param_1,int param_2,int param_3)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined1 local_25;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  iVar3 = *(int *)PTR_DAT_0012a304;
  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;
  local_25 = param_1;
  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {
    local_25 = 0x3d;
    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
    local_25 = 0x1a;
    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
    local_25 = 0x31;
    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
    iVar2 = 0;
    if (local_24 != *(int *)puVar1) goto LAB_00025800;
  }
  else if (local_24 != *(int *)puVar1) {
LAB_00025800:
    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
    return iVar3;
  }
  return iVar2;
}


lui gp,0x11
addiu gp,gp,-0x3570
addu gp,gp,t9
lw v0,-0x7e4c(gp)
addiu sp,sp,-0x40
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s0,0x24(sp)
lw s3,-0x7004(gp)
lw s2,0x0(v0)
lw s0,-0x7ef8(gp)
sw s1,0x28(sp)
addiu s1,sp,0x1b
sw s5,0x38(sp)
or s5,a1,zero
sw gp,0x10(sp)
addiu s0,s0,-0x250
sw s4,0x34(sp)
li a1,0x1
sw ra,0x3c(sp)
or s4,a2,zero
lw v0,0x2c(s2)
or a2,s1,zero
lw v1,0x0(s3)
or t9,s0,zero
sb a0,0x1b(sp)
or a0,v0,zero
sw v1,0x1c(sp)
bal 0x0001fdb0
_nop
beq s5,zero,0x0002578c
_lw gp,0x10(sp)
lw t9,-0x7ef8(gp)
addiu t9,t9,0x5634
bal 0x00025634
_nop
beq v0,zero,0x0002578c
_lw gp,0x10(sp)
lw a0,0x1c(sp)
lw v1,0x0(s3)
bne a0,v1,0x00025800
_lw t9,-0x7088(gp)
lw ra,0x3c(sp)
lw s5,0x38(sp)
lw s4,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x40
beq s4,zero,0x00025758
_or v0,zero,zero
lw a0,0x2c(s2)
li v0,0x3d
li a1,0x1
or a2,s1,zero
or t9,s0,zero
bal 0x0001fdb0
_sb v0,0x1b(sp)
li v0,0x1a
lw a0,0x2c(s2)
li a1,0x1
or a2,s1,zero
or t9,s0,zero
bal 0x0001fdb0
_sb v0,0x1b(sp)
li v0,0x31
lw a0,0x2c(s2)
li a1,0x1
or a2,s1,zero
or t9,s0,zero
bal 0x0001fdb0
_sb v0,0x1b(sp)
or v0,zero,zero
lw a0,0x1c(sp)
lw v1,0x0(s3)
beq a0,v1,0x00025768
_lw gp,0x10(sp)
lw t9,-0x7088(gp)
jalr t9
_nop
(translation_unit "int FUN_000256c0(undefined1 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_000256c0(undefined1 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_000256c0(undefined1 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined1 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined1 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 local_25;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR_DAT_0012a304;" (assignment_expression "iVar3 = *(int *)PTR_DAT_0012a304" identifier = (pointer_expression "*(int *)PTR_DAT_0012a304" * (cast_expression "(int *)PTR_DAT_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_25 = param_1;" (assignment_expression "local_25 = param_1" identifier = identifier) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (if_statement "if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" if (parenthesized_expression "(((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0))" ( (binary_expression "((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)" (parenthesized_expression "((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0))" ( (binary_expression "(param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = FUN_00025634(), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_00025634(), iVar2 == 0" (assignment_expression "iVar2 = FUN_00025634()" identifier = (call_expression "FUN_00025634()" identifier (argument_list "()" ( )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar2 = 0, param_3 != 0)" ( (comma_expression "iVar2 = 0, param_3 != 0" (assignment_expression "iVar2 = 0" identifier = number_literal) , (binary_expression "param_3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }" { (expression_statement "local_25 = 0x3d;" (assignment_expression "local_25 = 0x3d" identifier = number_literal) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (expression_statement "local_25 = 0x1a;" (assignment_expression "local_25 = 0x1a" identifier = number_literal) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (expression_statement "local_25 = 0x31;" (assignment_expression "local_25 = 0x31" identifier = number_literal) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (local_24 != *(int *)puVar1) goto LAB_00025800;" if (parenthesized_expression "(local_24 != *(int *)puVar1)" ( (binary_expression "local_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (goto_statement "goto LAB_00025800;" goto statement_identifier ;)) }) (else_clause "else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" else (if_statement "if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" if (parenthesized_expression "(local_24 != *(int *)puVar1)" ( (binary_expression "local_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" { (labeled_statement "LAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar3;" return identifier ;) })))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "BcStatus zdc_parse_mem(uint8_t inst,_Bool name,_Bool store)\n\n{\n  undefined *puVar1;\n  BcStatus BVar2;\n  undefined3 in_register_00000014;\n  undefined3 in_register_00000018;\n  int iVar3;\n  uint8_t uStack_25;\n  int iStack_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_ptr_to_globals_0012a304;\n  iStack_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  uStack_25 = inst;\n  bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n  if (((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&\n     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)) {\n    uStack_25 = '=';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '\x1a';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '1';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    BVar2 = BC_STATUS_SUCCESS;\n    if (iStack_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (iStack_24 != *(int *)puVar1) {\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }\n  return BVar2;\n}\n\n" (function_definition "BcStatus zdc_parse_mem(uint8_t inst,_Bool name,_Bool store)\n\n{\n  undefined *puVar1;\n  BcStatus BVar2;\n  undefined3 in_register_00000014;\n  undefined3 in_register_00000018;\n  int iVar3;\n  uint8_t uStack_25;\n  int iStack_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_ptr_to_globals_0012a304;\n  iStack_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  uStack_25 = inst;\n  bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n  if (((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&\n     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)) {\n    uStack_25 = '=';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '\x1a';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '1';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    BVar2 = BC_STATUS_SUCCESS;\n    if (iStack_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (iStack_24 != *(int *)puVar1) {\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }\n  return BVar2;\n}" type_identifier (function_declarator "zdc_parse_mem(uint8_t inst,_Bool name,_Bool store)" identifier (parameter_list "(uint8_t inst,_Bool name,_Bool store)" ( (parameter_declaration "uint8_t inst" primitive_type identifier) , (parameter_declaration "_Bool name" type_identifier identifier) , (parameter_declaration "_Bool store" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  BcStatus BVar2;\n  undefined3 in_register_00000014;\n  undefined3 in_register_00000018;\n  int iVar3;\n  uint8_t uStack_25;\n  int iStack_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_ptr_to_globals_0012a304;\n  iStack_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  uStack_25 = inst;\n  bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n  if (((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&\n     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)) {\n    uStack_25 = '=';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '\x1a';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '1';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    BVar2 = BC_STATUS_SUCCESS;\n    if (iStack_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (iStack_24 != *(int *)puVar1) {\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }\n  return BVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "BcStatus BVar2;" type_identifier identifier ;) (declaration "undefined3 in_register_00000014;" type_identifier identifier ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint8_t uStack_25;" primitive_type identifier ;) (declaration "int iStack_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR_ptr_to_globals_0012a304;" (assignment_expression "iVar3 = *(int *)PTR_ptr_to_globals_0012a304" identifier = (pointer_expression "*(int *)PTR_ptr_to_globals_0012a304" * (cast_expression "(int *)PTR_ptr_to_globals_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iStack_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iStack_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uStack_25 = inst;" (assignment_expression "uStack_25 = inst" identifier = identifier) ;) (expression_statement "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);" (call_expression "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" identifier (argument_list "(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" ( (pointer_expression "*(BcVec **)(iVar3 + 0x2c)" * (cast_expression "(BcVec **)(iVar3 + 0x2c)" ( (type_descriptor "BcVec **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&uStack_25" & identifier) ))) ;) (if_statement "if (((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&\n     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)) {\n    uStack_25 = '=';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '\x1a';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '1';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    BVar2 = BC_STATUS_SUCCESS;\n    if (iStack_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (iStack_24 != *(int *)puVar1) {\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }" if (parenthesized_expression "(((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&\n     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0))" ( (binary_expression "((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)) &&\n     (BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)" (parenthesized_expression "((CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS))" ( (binary_expression "(CONCAT31(in_register_00000014,name) == 0) ||\n      (BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)" (parenthesized_expression "(CONCAT31(in_register_00000014,name) == 0)" ( (binary_expression "CONCAT31(in_register_00000014,name) == 0" (call_expression "CONCAT31(in_register_00000014,name)" identifier (argument_list "(in_register_00000014,name)" ( identifier , identifier ))) == number_literal) )) || (parenthesized_expression "(BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS)" ( (comma_expression "BVar2 = zdc_parse_register(), BVar2 == BC_STATUS_SUCCESS" (assignment_expression "BVar2 = zdc_parse_register()" identifier = (call_expression "zdc_parse_register()" identifier (argument_list "()" ( )))) , (binary_expression "BVar2 == BC_STATUS_SUCCESS" identifier == identifier)) ))) )) && (parenthesized_expression "(BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0)" ( (comma_expression "BVar2 = BC_STATUS_SUCCESS, CONCAT31(in_register_00000018,store) != 0" (assignment_expression "BVar2 = BC_STATUS_SUCCESS" identifier = identifier) , (binary_expression "CONCAT31(in_register_00000018,store) != 0" (call_expression "CONCAT31(in_register_00000018,store)" identifier (argument_list "(in_register_00000018,store)" ( identifier , identifier ))) != number_literal)) ))) )) (compound_statement "{\n    uStack_25 = '=';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '\x1a';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    uStack_25 = '1';\n    bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);\n    BVar2 = BC_STATUS_SUCCESS;\n    if (iStack_24 != *(int *)puVar1) goto LAB_00025800;\n  }" { (expression_statement "uStack_25 = '=';" (assignment_expression "uStack_25 = '='" identifier = (char_literal "'='" ' character ')) ;) (expression_statement "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);" (call_expression "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" identifier (argument_list "(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" ( (pointer_expression "*(BcVec **)(iVar3 + 0x2c)" * (cast_expression "(BcVec **)(iVar3 + 0x2c)" ( (type_descriptor "BcVec **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&uStack_25" & identifier) ))) ;) (expression_statement "uStack_25 = '\x1a';" (assignment_expression "uStack_25 = '\x1a'" identifier = (char_literal "'\x1a'" ' escape_sequence ')) ;) (expression_statement "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);" (call_expression "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" identifier (argument_list "(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" ( (pointer_expression "*(BcVec **)(iVar3 + 0x2c)" * (cast_expression "(BcVec **)(iVar3 + 0x2c)" ( (type_descriptor "BcVec **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&uStack_25" & identifier) ))) ;) (expression_statement "uStack_25 = '1';" (assignment_expression "uStack_25 = '1'" identifier = (char_literal "'1'" ' character ')) ;) (expression_statement "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25);" (call_expression "bc_vec_npush(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" identifier (argument_list "(*(BcVec **)(iVar3 + 0x2c),1,&uStack_25)" ( (pointer_expression "*(BcVec **)(iVar3 + 0x2c)" * (cast_expression "(BcVec **)(iVar3 + 0x2c)" ( (type_descriptor "BcVec **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&uStack_25" & identifier) ))) ;) (expression_statement "BVar2 = BC_STATUS_SUCCESS;" (assignment_expression "BVar2 = BC_STATUS_SUCCESS" identifier = identifier) ;) (if_statement "if (iStack_24 != *(int *)puVar1) goto LAB_00025800;" if (parenthesized_expression "(iStack_24 != *(int *)puVar1)" ( (binary_expression "iStack_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (goto_statement "goto LAB_00025800;" goto statement_identifier ;)) }) (else_clause "else if (iStack_24 != *(int *)puVar1) {\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }" else (if_statement "if (iStack_24 != *(int *)puVar1) {\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }" if (parenthesized_expression "(iStack_24 != *(int *)puVar1)" ( (binary_expression "iStack_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\nLAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return BVar2;\n  }" { (labeled_statement "LAB_00025800:\n    BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "BVar2 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return BVar2;" return identifier ;) })))) (return_statement "return BVar2;" return identifier ;) })))
(translation_unit "int FUN_000256c0(undefined1 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_000256c0(undefined1 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_000256c0(undefined1 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined1 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined1 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 local_25;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR_DAT_0012a304;" (assignment_expression "iVar3 = *(int *)PTR_DAT_0012a304" identifier = (pointer_expression "*(int *)PTR_DAT_0012a304" * (cast_expression "(int *)PTR_DAT_0012a304" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_25 = param_1;" (assignment_expression "local_25 = param_1" identifier = identifier) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (if_statement "if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" if (parenthesized_expression "(((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0))" ( (binary_expression "((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)" (parenthesized_expression "((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0))" ( (binary_expression "(param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = FUN_00025634(), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_00025634(), iVar2 == 0" (assignment_expression "iVar2 = FUN_00025634()" identifier = (call_expression "FUN_00025634()" identifier (argument_list "()" ( )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar2 = 0, param_3 != 0)" ( (comma_expression "iVar2 = 0, param_3 != 0" (assignment_expression "iVar2 = 0" identifier = number_literal) , (binary_expression "param_3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }" { (expression_statement "local_25 = 0x3d;" (assignment_expression "local_25 = 0x3d" identifier = number_literal) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (expression_statement "local_25 = 0x1a;" (assignment_expression "local_25 = 0x1a" identifier = number_literal) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (expression_statement "local_25 = 0x31;" (assignment_expression "local_25 = 0x31" identifier = number_literal) ;) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , number_literal , (pointer_expression "&local_25" & identifier) ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (local_24 != *(int *)puVar1) goto LAB_00025800;" if (parenthesized_expression "(local_24 != *(int *)puVar1)" ( (binary_expression "local_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (goto_statement "goto LAB_00025800;" goto statement_identifier ;)) }) (else_clause "else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" else (if_statement "if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" if (parenthesized_expression "(local_24 != *(int *)puVar1)" ( (binary_expression "local_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" { (labeled_statement "LAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar3;" return identifier ;) })))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) })))) (return_statement return IDENT ;) })))
(function_definition "int FUN_000256c0(undefined1 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "FUN_000256c0(undefined1 param_1,int param_2,int param_3)" (identifier "FUN_000256c0") (parameter_list "(undefined1 param_1,int param_2,int param_3)" (( "(") (parameter_declaration "undefined1 param_1" (type_identifier "undefined1") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 local_25;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  iVar3 = *(int *)PTR_DAT_0012a304;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_25 = param_1;\n  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }\n  return iVar2;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined1 local_25;" (type_identifier "undefined1") (identifier "local_25") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "iVar3 = *(int *)PTR_DAT_0012a304;" (assignment_expression "iVar3 = *(int *)PTR_DAT_0012a304" (identifier "iVar3") (= "=") (pointer_expression "*(int *)PTR_DAT_0012a304" (* "*") (cast_expression "(int *)PTR_DAT_0012a304" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0012a304")))) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (expression_statement "local_25 = param_1;" (assignment_expression "local_25 = param_1" (identifier "local_25") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (identifier "FUN_0001fdb0") (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_25" (& "&") (identifier "local_25")) () ")"))) (; ";")) (if_statement "if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }\n  else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0))" (( "(") (binary_expression "((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)" (parenthesized_expression "((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0))" (( "(") (binary_expression "(param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = FUN_00025634(), iVar2 == 0)" (( "(") (comma_expression "iVar2 = FUN_00025634(), iVar2 == 0" (assignment_expression "iVar2 = FUN_00025634()" (identifier "iVar2") (= "=") (call_expression "FUN_00025634()" (identifier "FUN_00025634") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = 0, param_3 != 0)" (( "(") (comma_expression "iVar2 = 0, param_3 != 0" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (, ",") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    local_25 = 0x3d;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x1a;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    local_25 = 0x31;\n    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);\n    iVar2 = 0;\n    if (local_24 != *(int *)puVar1) goto LAB_00025800;\n  }" ({ "{") (expression_statement "local_25 = 0x3d;" (assignment_expression "local_25 = 0x3d" (identifier "local_25") (= "=") (number_literal "0x3d")) (; ";")) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (identifier "FUN_0001fdb0") (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_25" (& "&") (identifier "local_25")) () ")"))) (; ";")) (expression_statement "local_25 = 0x1a;" (assignment_expression "local_25 = 0x1a" (identifier "local_25") (= "=") (number_literal "0x1a")) (; ";")) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (identifier "FUN_0001fdb0") (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_25" (& "&") (identifier "local_25")) () ")"))) (; ";")) (expression_statement "local_25 = 0x31;" (assignment_expression "local_25 = 0x31" (identifier "local_25") (= "=") (number_literal "0x31")) (; ";")) (expression_statement "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);" (call_expression "FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (identifier "FUN_0001fdb0") (argument_list "(*(undefined4 *)(iVar3 + 0x2c),1,&local_25)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_25" (& "&") (identifier "local_25")) () ")"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_24 != *(int *)puVar1) goto LAB_00025800;" (if "if") (parenthesized_expression "(local_24 != *(int *)puVar1)" (( "(") (binary_expression "local_24 != *(int *)puVar1" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (goto_statement "goto LAB_00025800;" (goto "goto") (statement_identifier "LAB_00025800") (; ";"))) (} "}")) (else_clause "else if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" (else "else") (if_statement "if (local_24 != *(int *)puVar1) {\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(local_24 != *(int *)puVar1)" (( "(") (binary_expression "local_24 != *(int *)puVar1" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\nLAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n    return iVar3;\n  }" ({ "{") (labeled_statement "LAB_00025800:\n    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (statement_identifier "LAB_00025800") (: ":") (expression_statement "iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

type_1 function_1(uint8_t inst,type_2 name,type_2 store)

{
  type_3 *puVar1;
  type_1 var_5;
  type_4 in_register_00000014;
  type_4 in_register_00000018;
  int var_2;
  uint8_t uStack_25;
  int var_7;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  var_2 = *(int *)PTR_ptr_to_globals_0012a304;
  var_7 = *(int *)PTR___stack_chk_guard_0012b14c;
  uStack_25 = inst;
  var_1(*(type_5 **)(var_2 + 0x2c),1,&uStack_25);
  if (((var_3(in_register_00000014,name) == 0) ||
      (var_5 = var_4(), var_5 == var_6)) &&
     (var_5 = var_6, var_3(in_register_00000018,store) != 0)) {
    uStack_25 = '=';
    var_1(*(type_5 **)(var_2 + 0x2c),1,&uStack_25);
    uStack_25 = '\x1a';
    var_1(*(type_5 **)(var_2 + 0x2c),1,&uStack_25);
    uStack_25 = '1';
    var_1(*(type_5 **)(var_2 + 0x2c),1,&uStack_25);
    var_5 = var_6;
    if (var_7 != *(int *)puVar1) goto LAB_00025800;
  }
  else if (var_7 != *(int *)puVar1) {
LAB_00025800:
    var_5 = (*(type_6 *)PTR___stack_chk_fail_0012b0c8)();
    return var_5;
  }
  return var_5;
}


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

int MASKED(undefined1 param_1,int param_2,int param_3)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined1 local_25;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  iVar3 = *(int *)PTR_DAT_0012a304;
  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;
  local_25 = param_1;
  FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
  if (((param_2 == 0) || (iVar2 = FUN_00025634(), iVar2 == 0)) && (iVar2 = 0, param_3 != 0)) {
    local_25 = 0x3d;
    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
    local_25 = 0x1a;
    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
    local_25 = 0x31;
    FUN_0001fdb0(*(undefined4 *)(iVar3 + 0x2c),1,&local_25);
    iVar2 = 0;
    if (local_24 != *(int *)puVar1) goto LAB_00025800;
  }
  else if (local_24 != *(int *)puVar1) {
LAB_00025800:
    iVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
    return iVar3;
  }
  return iVar2;
}

