
void ignore_signal(int sig)

{
  uint uVar1;
  undefined1 *handler;
  int iVar2;
  int *piVar3;
  
  if (sig == 0) {
    iVar2 = 0;
    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;
LAB_0008949c:
    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);
  }
  else {
    if (2 < sig - 0x80U) {
      if (sig < 0x80) {
        iVar2 = sig * 4;
        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);
        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {
          handler = set_signal_handler(sig,(undefined1 *)0x0);
          *piVar3 = (int)handler;
          set_signal_handler(sig,handler);
          if (*piVar3 == 1) {
            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;
            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;
            goto LAB_000894ac;
          }
        }
      }
      else {
        iVar2 = sig << 2;
      }
      goto LAB_0008949c;
    }
    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);
    if ((uVar1 & 0x40) == 0) {
      change_signal(sig,(char *)0x1);
      return;
    }
  }
LAB_000894ac:
  if ((uVar1 & 0x42) != 0) {
    return;
  }
  if ((uVar1 & 8) == 0) {
    set_signal_handler(sig,(undefined1 *)0x1);
  }
LAB_000894ec:
  change_signal(sig,(char *)0x1);
  return;
}



void ignore_signal(int param_1)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  
  if (param_1 == 0) {
    iVar3 = 0;
    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;
LAB_0008949c:
    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);
  }
  else {
    if (2 < param_1 - 0x80U) {
      if (param_1 < 0x80) {
        iVar3 = param_1 * 4;
        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);
        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {
          iVar2 = set_signal_handler(param_1,0);
          *piVar4 = iVar2;
          set_signal_handler(param_1,iVar2);
          if (*piVar4 == 1) {
            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;
            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;
            goto LAB_000894ac;
          }
        }
      }
      else {
        iVar3 = param_1 << 2;
      }
      goto LAB_0008949c;
    }
    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);
    if ((uVar1 & 0x40) == 0) {
      FUN_00087bbc(param_1,1);
      return;
    }
  }
LAB_000894ac:
  if ((uVar1 & 0x42) != 0) {
    return;
  }
  if ((uVar1 & 8) == 0) {
    set_signal_handler(param_1,1);
  }
LAB_000894ec:
  FUN_00087bbc(param_1,1);
  return;
}


lui gp,0xc
addiu gp,gp,0x311c
addu gp,gp,t9
addiu sp,sp,-0x28
sw gp,0x10(sp)
sw s0,0x18(sp)
or s0,a0,zero
sw ra,0x24(sp)
sw s2,0x20(sp)
beq a0,zero,0x00089488
_sw s1,0x1c(sp)
addiu v0,a0,-0x80
sltiu v0,v0,0x3
bne v0,zero,0x00089510
_slti v0,a0,0x80
beq v0,zero,0x000895a4
_lw s2,-0x71e4(gp)
sll s1,a0,0x2
lw v0,-0x7f1c(gp)
addu s2,s2,s1
lw v1,0x0(s2)
beq v1,v0,0x00089558
_lw t9,-0x7cf8(gp)
b 0x0008949c
_lw v0,-0x73ec(gp)
lw v0,-0x73ec(gp)
lw v1,-0x6fbc(v0)
andi v1,v1,0x40
beq v1,zero,0x000894e8
_or s1,zero,zero
addiu v0,v0,-0x6fbc
addu v0,v0,s1
lw v0,0x0(v0)
andi v1,v0,0x42
beq v1,zero,0x000894c8
_lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
andi v0,v0,0x8
bne v0,zero,0x000894ec
_lw t9,-0x72a8(gp)
lw t9,-0x7cf8(gp)
li a1,0x1
bal 0x0008d1a4
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x72a8(gp)
or a0,s0,zero
lw ra,0x24(sp)
li a1,0x1
lw s2,0x20(sp)
lw s1,0x1c(sp)
addiu t9,t9,0x7bbc
lw s0,0x18(sp)
b 0x00087bbc
_addiu sp,sp,0x28
lw v1,-0x73ec(gp)
sll v0,a0,0x2
addiu v1,v1,-0x6fbc
addu v0,v0,v1
lw v0,0x0(v0)
andi v1,v0,0x40
bne v1,zero,0x000894ac
_andi v1,v0,0x42
lw t9,-0x72a8(gp)
or a0,s0,zero
lw ra,0x24(sp)
li a1,0x1
lw s2,0x20(sp)
lw s1,0x1c(sp)
addiu t9,t9,0x7bbc
lw s0,0x18(sp)
b 0x00087bbc
_addiu sp,sp,0x28
bal 0x0008d1a4
_or a1,zero,zero
or a0,s0,zero
lw gp,0x10(sp)
or a1,v0,zero
lw t9,-0x7cf8(gp)
bal 0x0008d1a4
_sw v0,0x0(s2)
li v0,0x1
lw v1,0x0(s2)
bne v1,v0,0x00089480
_lw gp,0x10(sp)
lw v0,-0x73ec(gp)
addiu v0,v0,-0x6fbc
addu s1,v0,s1
lw v0,0x0(s1)
ori v0,v0,0x2
b 0x000894a8
_sw v0,0x0(s1)
lw v0,-0x73ec(gp)
b 0x0008949c
_sll s1,a0,0x2
(translation_unit "void ignore_signal(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}\n\n" (function_definition "void ignore_signal(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}" primitive_type (function_declarator "ignore_signal(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (if_statement "if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;" if (parenthesized_expression "((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0)" ( (binary_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0" (parenthesized_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40)" ( (binary_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40" (pointer_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + -0x6fbc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000894ec;" goto statement_identifier ;)) (labeled_statement "LAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);" statement_identifier : (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" identifier = (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" identifier + identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" else (compound_statement "{\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" { (if_statement "if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }" if (parenthesized_expression "(2 < param_1 - 0x80U)" ( (binary_expression "2 < param_1 - 0x80U" number_literal < (binary_expression "param_1 - 0x80U" identifier - number_literal)) )) (compound_statement "{\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }" { (if_statement "if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }" if (parenthesized_expression "(param_1 < 0x80)" ( (binary_expression "param_1 < 0x80" identifier < number_literal) )) (compound_statement "{\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }" { (expression_statement "iVar3 = param_1 * 4;" (assignment_expression "iVar3 = param_1 * 4" identifier = (binary_expression "param_1 * 4" identifier * number_literal)) ;) (expression_statement "piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);" (assignment_expression "piVar4 = (int *)(PTR_original_signals_0014535c + iVar3)" identifier = (cast_expression "(int *)(PTR_original_signals_0014535c + iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_original_signals_0014535c + iVar3)" ( (binary_expression "PTR_original_signals_0014535c + iVar3" identifier + identifier) )))) ;) (if_statement "if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" if (parenthesized_expression "((undefined *)*piVar4 == PTR_initialize_traps_00144624)" ( (binary_expression "(undefined *)*piVar4 == PTR_initialize_traps_00144624" (cast_expression "(undefined *)*piVar4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier)) == identifier) )) (compound_statement "{\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" { (expression_statement "iVar2 = set_signal_handler(param_1,0);" (assignment_expression "iVar2 = set_signal_handler(param_1,0)" identifier = (call_expression "set_signal_handler(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "set_signal_handler(param_1,iVar2);" (call_expression "set_signal_handler(param_1,iVar2)" identifier (argument_list "(param_1,iVar2)" ( identifier , identifier ))) ;) (if_statement "if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" if (parenthesized_expression "(*piVar4 == 1)" ( (binary_expression "*piVar4 == 1" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" { (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2" identifier = (binary_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" identifier + identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;" (assignment_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" identifier + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000894ac;" goto statement_identifier ;) })) })) }) (else_clause "else {\n        iVar3 = param_1 << 2;\n      }" else (compound_statement "{\n        iVar3 = param_1 << 2;\n      }" { (expression_statement "iVar3 = param_1 << 2;" (assignment_expression "iVar3 = param_1 << 2" identifier = (binary_expression "param_1 << 2" identifier << number_literal)) ;) }))) (goto_statement "goto LAB_0008949c;" goto statement_identifier ;) })) (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" identifier = (pointer_expression "*(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + param_1 * 4 + -0x6fbc" (binary_expression "PTR___environ_00145154 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }" if (parenthesized_expression "((uVar1 & 0x40) == 0)" ( (binary_expression "(uVar1 & 0x40) == 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_00087bbc(param_1,1);\n      return;\n    }" { (expression_statement "FUN_00087bbc(param_1,1);" (call_expression "FUN_00087bbc(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) }))) (labeled_statement "LAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }" statement_identifier : (if_statement "if ((uVar1 & 0x42) != 0) {\n    return;\n  }" if (parenthesized_expression "((uVar1 & 0x42) != 0)" ( (binary_expression "(uVar1 & 0x42) != 0" (parenthesized_expression "(uVar1 & 0x42)" ( (binary_expression "uVar1 & 0x42" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (if_statement "if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    set_signal_handler(param_1,1);\n  }" { (expression_statement "set_signal_handler(param_1,1);" (call_expression "set_signal_handler(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) })) (labeled_statement "LAB_000894ec:\n  FUN_00087bbc(param_1,1);" statement_identifier : (expression_statement "FUN_00087bbc(param_1,1);" (call_expression "FUN_00087bbc(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void ignore_signal(int sig)\n\n{\n  uint uVar1;\n  undefined1 *handler;\n  int iVar2;\n  int *piVar3;\n  \n  if (sig == 0) {\n    iVar2 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);\n  }\n  else {\n    if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(sig,(undefined1 *)0x1);\n  }\nLAB_000894ec:\n  change_signal(sig,(char *)0x1);\n  return;\n}\n\n" (function_definition "void ignore_signal(int sig)\n\n{\n  uint uVar1;\n  undefined1 *handler;\n  int iVar2;\n  int *piVar3;\n  \n  if (sig == 0) {\n    iVar2 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);\n  }\n  else {\n    if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(sig,(undefined1 *)0x1);\n  }\nLAB_000894ec:\n  change_signal(sig,(char *)0x1);\n  return;\n}" primitive_type (function_declarator "ignore_signal(int sig)" identifier (parameter_list "(int sig)" ( (parameter_declaration "int sig" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined1 *handler;\n  int iVar2;\n  int *piVar3;\n  \n  if (sig == 0) {\n    iVar2 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);\n  }\n  else {\n    if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(sig,(undefined1 *)0x1);\n  }\nLAB_000894ec:\n  change_signal(sig,(char *)0x1);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined1 *handler;" type_identifier (pointer_declarator "*handler" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (if_statement "if (sig == 0) {\n    iVar2 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);\n  }\n  else {\n    if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }\n  }" if (parenthesized_expression "(sig == 0)" ( (binary_expression "sig == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;" if (parenthesized_expression "((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0)" ( (binary_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0" (parenthesized_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40)" ( (binary_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40" (pointer_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + -0x6fbc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000894ec;" goto statement_identifier ;)) (labeled_statement "LAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);" statement_identifier : (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" identifier = (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar2 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar2 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar2" identifier + identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n    if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }\n  }" else (compound_statement "{\n    if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }\n  }" { (if_statement "if (2 < sig - 0x80U) {\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }" if (parenthesized_expression "(2 < sig - 0x80U)" ( (binary_expression "2 < sig - 0x80U" number_literal < (binary_expression "sig - 0x80U" identifier - number_literal)) )) (compound_statement "{\n      if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }\n      goto LAB_0008949c;\n    }" { (if_statement "if (sig < 0x80) {\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar2 = sig << 2;\n      }" if (parenthesized_expression "(sig < 0x80)" ( (binary_expression "sig < 0x80" identifier < number_literal) )) (compound_statement "{\n        iVar2 = sig * 4;\n        piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);\n        if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }" { (expression_statement "iVar2 = sig * 4;" (assignment_expression "iVar2 = sig * 4" identifier = (binary_expression "sig * 4" identifier * number_literal)) ;) (expression_statement "piVar3 = (int *)(PTR_original_signals_0014535c + iVar2);" (assignment_expression "piVar3 = (int *)(PTR_original_signals_0014535c + iVar2)" identifier = (cast_expression "(int *)(PTR_original_signals_0014535c + iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_original_signals_0014535c + iVar2)" ( (binary_expression "PTR_original_signals_0014535c + iVar2" identifier + identifier) )))) ;) (if_statement "if ((undefined *)*piVar3 == PTR_initialize_traps_00144624) {\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" if (parenthesized_expression "((undefined *)*piVar3 == PTR_initialize_traps_00144624)" ( (binary_expression "(undefined *)*piVar3 == PTR_initialize_traps_00144624" (cast_expression "(undefined *)*piVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier)) == identifier) )) (compound_statement "{\n          handler = set_signal_handler(sig,(undefined1 *)0x0);\n          *piVar3 = (int)handler;\n          set_signal_handler(sig,handler);\n          if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" { (expression_statement "handler = set_signal_handler(sig,(undefined1 *)0x0);" (assignment_expression "handler = set_signal_handler(sig,(undefined1 *)0x0)" identifier = (call_expression "set_signal_handler(sig,(undefined1 *)0x0)" identifier (argument_list "(sig,(undefined1 *)0x0)" ( identifier , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "*piVar3 = (int)handler;" (assignment_expression "*piVar3 = (int)handler" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)handler" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "set_signal_handler(sig,handler);" (call_expression "set_signal_handler(sig,handler)" identifier (argument_list "(sig,handler)" ( identifier , identifier ))) ;) (if_statement "if (*piVar3 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" if (parenthesized_expression "(*piVar3 == 1)" ( (binary_expression "*piVar3 == 1" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" { (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2;" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2" identifier = (binary_expression "*(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) | 2" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar2 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar2 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar2" identifier + identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1;" (assignment_expression "*(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc) = uVar1" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar2 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar2 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar2 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar2" identifier + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000894ac;" goto statement_identifier ;) })) })) }) (else_clause "else {\n        iVar2 = sig << 2;\n      }" else (compound_statement "{\n        iVar2 = sig << 2;\n      }" { (expression_statement "iVar2 = sig << 2;" (assignment_expression "iVar2 = sig << 2" identifier = (binary_expression "sig << 2" identifier << number_literal)) ;) }))) (goto_statement "goto LAB_0008949c;" goto statement_identifier ;) })) (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc)" identifier = (pointer_expression "*(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + sig * 4 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + sig * 4 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + sig * 4 + -0x6fbc" (binary_expression "PTR___environ_00145154 + sig * 4" identifier + (binary_expression "sig * 4" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x40) == 0) {\n      change_signal(sig,(char *)0x1);\n      return;\n    }" if (parenthesized_expression "((uVar1 & 0x40) == 0)" ( (binary_expression "(uVar1 & 0x40) == 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      change_signal(sig,(char *)0x1);\n      return;\n    }" { (expression_statement "change_signal(sig,(char *)0x1);" (call_expression "change_signal(sig,(char *)0x1)" identifier (argument_list "(sig,(char *)0x1)" ( identifier , (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (return_statement "return;" return ;) })) }))) (labeled_statement "LAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }" statement_identifier : (if_statement "if ((uVar1 & 0x42) != 0) {\n    return;\n  }" if (parenthesized_expression "((uVar1 & 0x42) != 0)" ( (binary_expression "(uVar1 & 0x42) != 0" (parenthesized_expression "(uVar1 & 0x42)" ( (binary_expression "uVar1 & 0x42" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (if_statement "if ((uVar1 & 8) == 0) {\n    set_signal_handler(sig,(undefined1 *)0x1);\n  }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    set_signal_handler(sig,(undefined1 *)0x1);\n  }" { (expression_statement "set_signal_handler(sig,(undefined1 *)0x1);" (call_expression "set_signal_handler(sig,(undefined1 *)0x1)" identifier (argument_list "(sig,(undefined1 *)0x1)" ( identifier , (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (labeled_statement "LAB_000894ec:\n  change_signal(sig,(char *)0x1);" statement_identifier : (expression_statement "change_signal(sig,(char *)0x1);" (call_expression "change_signal(sig,(char *)0x1)" identifier (argument_list "(sig,(char *)0x1)" ( identifier , (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void ignore_signal(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}\n\n" (function_definition "void ignore_signal(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}" primitive_type (function_declarator "ignore_signal(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (if_statement "if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;" if (parenthesized_expression "((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0)" ( (binary_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0" (parenthesized_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40)" ( (binary_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40" (pointer_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + -0x6fbc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000894ec;" goto statement_identifier ;)) (labeled_statement "LAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);" statement_identifier : (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" identifier = (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" identifier + identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" else (compound_statement "{\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" { (if_statement "if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }" if (parenthesized_expression "(2 < param_1 - 0x80U)" ( (binary_expression "2 < param_1 - 0x80U" number_literal < (binary_expression "param_1 - 0x80U" identifier - number_literal)) )) (compound_statement "{\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }" { (if_statement "if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }" if (parenthesized_expression "(param_1 < 0x80)" ( (binary_expression "param_1 < 0x80" identifier < number_literal) )) (compound_statement "{\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }" { (expression_statement "iVar3 = param_1 * 4;" (assignment_expression "iVar3 = param_1 * 4" identifier = (binary_expression "param_1 * 4" identifier * number_literal)) ;) (expression_statement "piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);" (assignment_expression "piVar4 = (int *)(PTR_original_signals_0014535c + iVar3)" identifier = (cast_expression "(int *)(PTR_original_signals_0014535c + iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_original_signals_0014535c + iVar3)" ( (binary_expression "PTR_original_signals_0014535c + iVar3" identifier + identifier) )))) ;) (if_statement "if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" if (parenthesized_expression "((undefined *)*piVar4 == PTR_initialize_traps_00144624)" ( (binary_expression "(undefined *)*piVar4 == PTR_initialize_traps_00144624" (cast_expression "(undefined *)*piVar4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier)) == identifier) )) (compound_statement "{\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" { (expression_statement "iVar2 = set_signal_handler(param_1,0);" (assignment_expression "iVar2 = set_signal_handler(param_1,0)" identifier = (call_expression "set_signal_handler(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "set_signal_handler(param_1,iVar2);" (call_expression "set_signal_handler(param_1,iVar2)" identifier (argument_list "(param_1,iVar2)" ( identifier , identifier ))) ;) (if_statement "if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" if (parenthesized_expression "(*piVar4 == 1)" ( (binary_expression "*piVar4 == 1" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" { (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2" identifier = (binary_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" identifier + identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;" (assignment_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" identifier + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000894ac;" goto statement_identifier ;) })) })) }) (else_clause "else {\n        iVar3 = param_1 << 2;\n      }" else (compound_statement "{\n        iVar3 = param_1 << 2;\n      }" { (expression_statement "iVar3 = param_1 << 2;" (assignment_expression "iVar3 = param_1 << 2" identifier = (binary_expression "param_1 << 2" identifier << number_literal)) ;) }))) (goto_statement "goto LAB_0008949c;" goto statement_identifier ;) })) (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" identifier = (pointer_expression "*(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" * (cast_expression "(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" ( (binary_expression "PTR___environ_00145154 + param_1 * 4 + -0x6fbc" (binary_expression "PTR___environ_00145154 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }" if (parenthesized_expression "((uVar1 & 0x40) == 0)" ( (binary_expression "(uVar1 & 0x40) == 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_00087bbc(param_1,1);\n      return;\n    }" { (expression_statement "FUN_00087bbc(param_1,1);" (call_expression "FUN_00087bbc(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) }))) (labeled_statement "LAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }" statement_identifier : (if_statement "if ((uVar1 & 0x42) != 0) {\n    return;\n  }" if (parenthesized_expression "((uVar1 & 0x42) != 0)" ( (binary_expression "(uVar1 & 0x42) != 0" (parenthesized_expression "(uVar1 & 0x42)" ( (binary_expression "uVar1 & 0x42" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (if_statement "if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    set_signal_handler(param_1,1);\n  }" { (expression_statement "set_signal_handler(param_1,1);" (call_expression "set_signal_handler(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) })) (labeled_statement "LAB_000894ec:\n  FUN_00087bbc(param_1,1);" statement_identifier : (expression_statement "FUN_00087bbc(param_1,1);" (call_expression "FUN_00087bbc(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;)) (return_statement return ;) })))
(function_definition "void ignore_signal(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}" (primitive_type "void") (function_declarator "ignore_signal(int param_1)" (identifier "ignore_signal") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  \n  if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }\nLAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }\n  if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }\nLAB_000894ec:\n  FUN_00087bbc(param_1,1);\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (if_statement "if (param_1 == 0) {\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }\n  else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = 0;\n    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;\nLAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;" (if "if") (parenthesized_expression "((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0)" (( "(") (binary_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0" (parenthesized_expression "(*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40)" (( "(") (binary_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40" (pointer_expression "*(uint *)(PTR___environ_00145154 + -0x6fbc)" (* "*") (cast_expression "(uint *)(PTR___environ_00145154 + -0x6fbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___environ_00145154 + -0x6fbc)" (( "(") (binary_expression "PTR___environ_00145154 + -0x6fbc" (identifier "PTR___environ_00145154") (+ "+") (number_literal "-0x6fbc")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000894ec;" (goto "goto") (statement_identifier "LAB_000894ec") (; ";"))) (labeled_statement "LAB_0008949c:\n    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);" (statement_identifier "LAB_0008949c") (: ":") (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (* "*") (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" (( "(") (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" (identifier "PTR___environ_00145154") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "-0x6fbc")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }\n    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);\n    if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }\n  }" ({ "{") (if_statement "if (2 < param_1 - 0x80U) {\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }" (if "if") (parenthesized_expression "(2 < param_1 - 0x80U)" (( "(") (binary_expression "2 < param_1 - 0x80U" (number_literal "2") (< "<") (binary_expression "param_1 - 0x80U" (identifier "param_1") (- "-") (number_literal "0x80U"))) () ")")) (compound_statement "{\n      if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }\n      goto LAB_0008949c;\n    }" ({ "{") (if_statement "if (param_1 < 0x80) {\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }\n      else {\n        iVar3 = param_1 << 2;\n      }" (if "if") (parenthesized_expression "(param_1 < 0x80)" (( "(") (binary_expression "param_1 < 0x80" (identifier "param_1") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n        iVar3 = param_1 * 4;\n        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);\n        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar3 = param_1 * 4;" (assignment_expression "iVar3 = param_1 * 4" (identifier "iVar3") (= "=") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) (; ";")) (expression_statement "piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);" (assignment_expression "piVar4 = (int *)(PTR_original_signals_0014535c + iVar3)" (identifier "piVar4") (= "=") (cast_expression "(int *)(PTR_original_signals_0014535c + iVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_original_signals_0014535c + iVar3)" (( "(") (binary_expression "PTR_original_signals_0014535c + iVar3" (identifier "PTR_original_signals_0014535c") (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (if_statement "if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" (if "if") (parenthesized_expression "((undefined *)*piVar4 == PTR_initialize_traps_00144624)" (( "(") (binary_expression "(undefined *)*piVar4 == PTR_initialize_traps_00144624" (cast_expression "(undefined *)*piVar4" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (== "==") (identifier "PTR_initialize_traps_00144624")) () ")")) (compound_statement "{\n          iVar2 = set_signal_handler(param_1,0);\n          *piVar4 = iVar2;\n          set_signal_handler(param_1,iVar2);\n          if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }\n        }" ({ "{") (expression_statement "iVar2 = set_signal_handler(param_1,0);" (assignment_expression "iVar2 = set_signal_handler(param_1,0)" (identifier "iVar2") (= "=") (call_expression "set_signal_handler(param_1,0)" (identifier "set_signal_handler") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*piVar4 = iVar2;" (assignment_expression "*piVar4 = iVar2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "set_signal_handler(param_1,iVar2);" (call_expression "set_signal_handler(param_1,iVar2)" (identifier "set_signal_handler") (argument_list "(param_1,iVar2)" (( "(") (identifier "param_1") (, ",") (identifier "iVar2") () ")"))) (; ";")) (if_statement "if (*piVar4 == 1) {\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" (if "if") (parenthesized_expression "(*piVar4 == 1)" (( "(") (binary_expression "*piVar4 == 1" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;\n            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;\n            goto LAB_000894ac;\n          }" ({ "{") (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2" (identifier "uVar1") (= "=") (binary_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (* "*") (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" (( "(") (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" (identifier "PTR___environ_00145154") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "-0x6fbc")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;" (assignment_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1" (pointer_expression "*(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (* "*") (cast_expression "(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___environ_00145154 + iVar3 + -0x6fbc)" (( "(") (binary_expression "PTR___environ_00145154 + iVar3 + -0x6fbc" (binary_expression "PTR___environ_00145154 + iVar3" (identifier "PTR___environ_00145154") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "-0x6fbc")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (goto_statement "goto LAB_000894ac;" (goto "goto") (statement_identifier "LAB_000894ac") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        iVar3 = param_1 << 2;\n      }" (else "else") (compound_statement "{\n        iVar3 = param_1 << 2;\n      }" ({ "{") (expression_statement "iVar3 = param_1 << 2;" (assignment_expression "iVar3 = param_1 << 2" (identifier "iVar3") (= "=") (binary_expression "param_1 << 2" (identifier "param_1") (<< "<<") (number_literal "2"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0008949c;" (goto "goto") (statement_identifier "LAB_0008949c") (; ";")) (} "}"))) (expression_statement "uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);" (assignment_expression "uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" (* "*") (cast_expression "(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___environ_00145154 + param_1 * 4 + -0x6fbc)" (( "(") (binary_expression "PTR___environ_00145154 + param_1 * 4 + -0x6fbc" (binary_expression "PTR___environ_00145154 + param_1 * 4" (identifier "PTR___environ_00145154") (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x6fbc")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 0x40) == 0) {\n      FUN_00087bbc(param_1,1);\n      return;\n    }" (if "if") (parenthesized_expression "((uVar1 & 0x40) == 0)" (( "(") (binary_expression "(uVar1 & 0x40) == 0" (parenthesized_expression "(uVar1 & 0x40)" (( "(") (binary_expression "uVar1 & 0x40" (identifier "uVar1") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00087bbc(param_1,1);\n      return;\n    }" ({ "{") (expression_statement "FUN_00087bbc(param_1,1);" (call_expression "FUN_00087bbc(param_1,1)" (identifier "FUN_00087bbc") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000894ac:\n  if ((uVar1 & 0x42) != 0) {\n    return;\n  }" (statement_identifier "LAB_000894ac") (: ":") (if_statement "if ((uVar1 & 0x42) != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "((uVar1 & 0x42) != 0)" (( "(") (binary_expression "(uVar1 & 0x42) != 0" (parenthesized_expression "(uVar1 & 0x42)" (( "(") (binary_expression "uVar1 & 0x42" (identifier "uVar1") (& "&") (number_literal "0x42")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (if_statement "if ((uVar1 & 8) == 0) {\n    set_signal_handler(param_1,1);\n  }" (if "if") (parenthesized_expression "((uVar1 & 8) == 0)" (( "(") (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" (( "(") (binary_expression "uVar1 & 8" (identifier "uVar1") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    set_signal_handler(param_1,1);\n  }" ({ "{") (expression_statement "set_signal_handler(param_1,1);" (call_expression "set_signal_handler(param_1,1)" (identifier "set_signal_handler") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000894ec:\n  FUN_00087bbc(param_1,1);" (statement_identifier "LAB_000894ec") (: ":") (expression_statement "FUN_00087bbc(param_1,1);" (call_expression "FUN_00087bbc(param_1,1)" (identifier "FUN_00087bbc") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)) right: (number_literal))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (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 (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (return_statement)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (return_statement))))

void MASKED(int param_1)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  
  if (param_1 == 0) {
    iVar3 = 0;
    if ((*(uint *)(PTR___environ_00145154 + -0x6fbc) & 0x40) == 0) goto LAB_000894ec;
LAB_0008949c:
    uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc);
  }
  else {
    if (2 < param_1 - 0x80U) {
      if (param_1 < 0x80) {
        iVar3 = param_1 * 4;
        piVar4 = (int *)(PTR_original_signals_0014535c + iVar3);
        if ((undefined *)*piVar4 == PTR_initialize_traps_00144624) {
          iVar2 = set_signal_handler(param_1,0);
          *piVar4 = iVar2;
          set_signal_handler(param_1,iVar2);
          if (*piVar4 == 1) {
            uVar1 = *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) | 2;
            *(uint *)(PTR___environ_00145154 + iVar3 + -0x6fbc) = uVar1;
            goto LAB_000894ac;
          }
        }
      }
      else {
        iVar3 = param_1 << 2;
      }
      goto LAB_0008949c;
    }
    uVar1 = *(uint *)(PTR___environ_00145154 + param_1 * 4 + -0x6fbc);
    if ((uVar1 & 0x40) == 0) {
      FUN_00087bbc(param_1,1);
      return;
    }
  }
LAB_000894ac:
  if ((uVar1 & 0x42) != 0) {
    return;
  }
  if ((uVar1 & 8) == 0) {
    set_signal_handler(param_1,1);
  }
LAB_000894ec:
  FUN_00087bbc(param_1,1);
  return;
}

