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

void maybe_set_return_trap(char *command)

{
  size_t sVar1;
  char *pcVar2;
  uint uVar3;
  
  if ((sigmodes[0x43] & 1U) != 0) {
    return;
  }
  sVar1 = strlen(command);
  pcVar2 = (char *)xmalloc(sVar1 + 1);
  pcVar2 = strcpy(pcVar2,command);
  if (((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&
      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps)) {
    free(DAT_0017f22c);
  }
  DAT_0017f22c = (code *)pcVar2;
  uVar3 = sigmodes[0x43] & 0xffffffbfU | 1;
  if (pcVar2 == (char *)0x1) {
    uVar3 = sigmodes[0x43] | 0x41;
  }
  if ((uVar3 & 0x10) != 0) {
    uVar3 = uVar3 | 0x20;
  }
  sigmodes[0x43] = uVar3;
  return;
}



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

void maybe_set_return_trap(char *param_1)

{
  size_t sVar1;
  char *pcVar2;
  uint uVar3;
  
  if ((DAT_001791ec & 1) != 0) {
    return;
  }
  sVar1 = strlen(param_1);
  pcVar2 = (char *)xmalloc(sVar1 + 1);
  pcVar2 = strcpy(pcVar2,param_1);
  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))
     && (DAT_0017f22c != initialize_traps)) {
    free(DAT_0017f22c);
  }
  DAT_0017f22c = (code *)pcVar2;
  uVar3 = DAT_001791ec & 0xffffffbf | 1;
  if (pcVar2 == (char *)0x1) {
    uVar3 = DAT_001791ec | 0x41;
  }
  if ((uVar3 & 0x10) != 0) {
    uVar3 = uVar3 | 0x20;
  }
  DAT_001791ec = uVar3;
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000312b0
ADD EBX,0xe68a8
SUB ESP,0x10
TEST byte ptr [EBX + 0x71ec],0x1
JZ 0x0008b778
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x0002e760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x000ad700
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x28]
PUSH EAX
CALL 0x0002e580
MOV EDX,dword ptr [EBX + 0x71ec]
ADD ESP,0x10
LEA ESI,[EBX + 0xd120]
TEST DL,0x10
JNZ 0x0008b7e3
TEST DL,0x1
JZ 0x0008b7e3
MOV ECX,dword ptr [ESI + 0x10c]
CMP ECX,0x1
JBE 0x0008b7e3
LEA EDI,[EBX + 0xfff17d70]
CMP ECX,EDI
JZ 0x0008b7e3
MOV dword ptr [ESP + 0xc],EAX
SUB ESP,0xc
PUSH ECX
CALL 0x0002e200
ADD ESP,0x10
MOV EDX,dword ptr [EBX + 0x71ec]
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,EDX
AND EDX,0xffffffbf
MOV dword ptr [ESI + 0x10c],EAX
OR ECX,0x41
OR EDX,0x1
CMP EAX,0x1
CMOVZ EDX,ECX
MOV EAX,EDX
OR EAX,0x20
TEST DL,0x10
CMOVNZ EDX,EAX
MOV dword ptr [EBX + 0x71ec],EDX
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid maybe_set_return_trap(char *param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}\n\n" comment (function_definition "void maybe_set_return_trap(char *param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}" primitive_type (function_declarator "maybe_set_return_trap(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (if_statement "if ((DAT_001791ec & 1) != 0) {\n    return;\n  }" if (parenthesized_expression "((DAT_001791ec & 1) != 0)" ( (binary_expression "(DAT_001791ec & 1) != 0" (parenthesized_expression "(DAT_001791ec & 1)" ( (binary_expression "DAT_001791ec & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "sVar1 = strlen(param_1);" (assignment_expression "sVar1 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = strcpy(pcVar2,param_1);" (assignment_expression "pcVar2 = strcpy(pcVar2,param_1)" identifier = (call_expression "strcpy(pcVar2,param_1)" identifier (argument_list "(pcVar2,param_1)" ( identifier , identifier )))) ;) (if_statement "if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }" if (parenthesized_expression "(((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps))" ( (binary_expression "((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)" (parenthesized_expression "((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))" ( (binary_expression "(((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c)" (parenthesized_expression "(((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0))" ( (binary_expression "((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)" (parenthesized_expression "((DAT_001791ec & 0x10) == 0)" ( (binary_expression "(DAT_001791ec & 0x10) == 0" (parenthesized_expression "(DAT_001791ec & 0x10)" ( (binary_expression "DAT_001791ec & 0x10" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((DAT_001791ec & 1) != 0)" ( (binary_expression "(DAT_001791ec & 1) != 0" (parenthesized_expression "(DAT_001791ec & 1)" ( (binary_expression "DAT_001791ec & 1" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((code *)0x1 < DAT_0017f22c)" ( (binary_expression "(code *)0x1 < DAT_0017f22c" (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) && (parenthesized_expression "(DAT_0017f22c != initialize_traps)" ( (binary_expression "DAT_0017f22c != initialize_traps" identifier != identifier) ))) )) (compound_statement "{\n    free(DAT_0017f22c);\n  }" { (expression_statement "free(DAT_0017f22c);" (call_expression "free(DAT_0017f22c)" identifier (argument_list "(DAT_0017f22c)" ( identifier ))) ;) })) (expression_statement "DAT_0017f22c = (code *)pcVar2;" (assignment_expression "DAT_0017f22c = (code *)pcVar2" identifier = (cast_expression "(code *)pcVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar3 = DAT_001791ec & 0xffffffbf | 1;" (assignment_expression "uVar3 = DAT_001791ec & 0xffffffbf | 1" identifier = (binary_expression "DAT_001791ec & 0xffffffbf | 1" (binary_expression "DAT_001791ec & 0xffffffbf" identifier & number_literal) | number_literal)) ;) (if_statement "if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }" if (parenthesized_expression "(pcVar2 == (char *)0x1)" ( (binary_expression "pcVar2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = DAT_001791ec | 0x41;\n  }" { (expression_statement "uVar3 = DAT_001791ec | 0x41;" (assignment_expression "uVar3 = DAT_001791ec | 0x41" identifier = (binary_expression "DAT_001791ec | 0x41" identifier | number_literal)) ;) })) (if_statement "if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }" if (parenthesized_expression "((uVar3 & 0x10) != 0)" ( (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = uVar3 | 0x20;\n  }" { (expression_statement "uVar3 = uVar3 | 0x20;" (assignment_expression "uVar3 = uVar3 | 0x20" identifier = (binary_expression "uVar3 | 0x20" identifier | number_literal)) ;) })) (expression_statement "DAT_001791ec = uVar3;" (assignment_expression "DAT_001791ec = uVar3" identifier = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid maybe_set_return_trap(char *command)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((sigmodes[0x43] & 1U) != 0) {\n    return;\n  }\n  sVar1 = strlen(command);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,command);\n  if (((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = sigmodes[0x43] & 0xffffffbfU | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = sigmodes[0x43] | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  sigmodes[0x43] = uVar3;\n  return;\n}\n\n" comment comment (function_definition "void maybe_set_return_trap(char *command)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((sigmodes[0x43] & 1U) != 0) {\n    return;\n  }\n  sVar1 = strlen(command);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,command);\n  if (((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = sigmodes[0x43] & 0xffffffbfU | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = sigmodes[0x43] | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  sigmodes[0x43] = uVar3;\n  return;\n}" primitive_type (function_declarator "maybe_set_return_trap(char *command)" identifier (parameter_list "(char *command)" ( (parameter_declaration "char *command" primitive_type (pointer_declarator "*command" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((sigmodes[0x43] & 1U) != 0) {\n    return;\n  }\n  sVar1 = strlen(command);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,command);\n  if (((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = sigmodes[0x43] & 0xffffffbfU | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = sigmodes[0x43] | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  sigmodes[0x43] = uVar3;\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (if_statement "if ((sigmodes[0x43] & 1U) != 0) {\n    return;\n  }" if (parenthesized_expression "((sigmodes[0x43] & 1U) != 0)" ( (binary_expression "(sigmodes[0x43] & 1U) != 0" (parenthesized_expression "(sigmodes[0x43] & 1U)" ( (binary_expression "sigmodes[0x43] & 1U" (subscript_expression "sigmodes[0x43]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "sVar1 = strlen(command);" (assignment_expression "sVar1 = strlen(command)" identifier = (call_expression "strlen(command)" identifier (argument_list "(command)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = strcpy(pcVar2,command);" (assignment_expression "pcVar2 = strcpy(pcVar2,command)" identifier = (call_expression "strcpy(pcVar2,command)" identifier (argument_list "(pcVar2,command)" ( identifier , identifier )))) ;) (if_statement "if (((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }" if (parenthesized_expression "(((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps))" ( (binary_expression "((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)) && (DAT_0017f22c != initialize_traps)" (parenthesized_expression "((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c))" ( (binary_expression "(((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&\n      ((code *)0x1 < DAT_0017f22c)" (parenthesized_expression "(((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0))" ( (binary_expression "((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)" (parenthesized_expression "((sigmodes[0x43] & 0x10U) == 0)" ( (binary_expression "(sigmodes[0x43] & 0x10U) == 0" (parenthesized_expression "(sigmodes[0x43] & 0x10U)" ( (binary_expression "sigmodes[0x43] & 0x10U" (subscript_expression "sigmodes[0x43]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((sigmodes[0x43] & 1U) != 0)" ( (binary_expression "(sigmodes[0x43] & 1U) != 0" (parenthesized_expression "(sigmodes[0x43] & 1U)" ( (binary_expression "sigmodes[0x43] & 1U" (subscript_expression "sigmodes[0x43]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((code *)0x1 < DAT_0017f22c)" ( (binary_expression "(code *)0x1 < DAT_0017f22c" (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) && (parenthesized_expression "(DAT_0017f22c != initialize_traps)" ( (binary_expression "DAT_0017f22c != initialize_traps" identifier != identifier) ))) )) (compound_statement "{\n    free(DAT_0017f22c);\n  }" { (expression_statement "free(DAT_0017f22c);" (call_expression "free(DAT_0017f22c)" identifier (argument_list "(DAT_0017f22c)" ( identifier ))) ;) })) (expression_statement "DAT_0017f22c = (code *)pcVar2;" (assignment_expression "DAT_0017f22c = (code *)pcVar2" identifier = (cast_expression "(code *)pcVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar3 = sigmodes[0x43] & 0xffffffbfU | 1;" (assignment_expression "uVar3 = sigmodes[0x43] & 0xffffffbfU | 1" identifier = (binary_expression "sigmodes[0x43] & 0xffffffbfU | 1" (binary_expression "sigmodes[0x43] & 0xffffffbfU" (subscript_expression "sigmodes[0x43]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) (if_statement "if (pcVar2 == (char *)0x1) {\n    uVar3 = sigmodes[0x43] | 0x41;\n  }" if (parenthesized_expression "(pcVar2 == (char *)0x1)" ( (binary_expression "pcVar2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = sigmodes[0x43] | 0x41;\n  }" { (expression_statement "uVar3 = sigmodes[0x43] | 0x41;" (assignment_expression "uVar3 = sigmodes[0x43] | 0x41" identifier = (binary_expression "sigmodes[0x43] | 0x41" (subscript_expression "sigmodes[0x43]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }" if (parenthesized_expression "((uVar3 & 0x10) != 0)" ( (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = uVar3 | 0x20;\n  }" { (expression_statement "uVar3 = uVar3 | 0x20;" (assignment_expression "uVar3 = uVar3 | 0x20" identifier = (binary_expression "uVar3 | 0x20" identifier | number_literal)) ;) })) (expression_statement "sigmodes[0x43] = uVar3;" (assignment_expression "sigmodes[0x43] = uVar3" (subscript_expression "sigmodes[0x43]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void maybe_set_return_trap(char *param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}\n\n" (function_definition "void maybe_set_return_trap(char *param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}" primitive_type (function_declarator "maybe_set_return_trap(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (if_statement "if ((DAT_001791ec & 1) != 0) {\n    return;\n  }" if (parenthesized_expression "((DAT_001791ec & 1) != 0)" ( (binary_expression "(DAT_001791ec & 1) != 0" (parenthesized_expression "(DAT_001791ec & 1)" ( (binary_expression "DAT_001791ec & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "sVar1 = strlen(param_1);" (assignment_expression "sVar1 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = strcpy(pcVar2,param_1);" (assignment_expression "pcVar2 = strcpy(pcVar2,param_1)" identifier = (call_expression "strcpy(pcVar2,param_1)" identifier (argument_list "(pcVar2,param_1)" ( identifier , identifier )))) ;) (if_statement "if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }" if (parenthesized_expression "(((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps))" ( (binary_expression "((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)" (parenthesized_expression "((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))" ( (binary_expression "(((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c)" (parenthesized_expression "(((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0))" ( (binary_expression "((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)" (parenthesized_expression "((DAT_001791ec & 0x10) == 0)" ( (binary_expression "(DAT_001791ec & 0x10) == 0" (parenthesized_expression "(DAT_001791ec & 0x10)" ( (binary_expression "DAT_001791ec & 0x10" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((DAT_001791ec & 1) != 0)" ( (binary_expression "(DAT_001791ec & 1) != 0" (parenthesized_expression "(DAT_001791ec & 1)" ( (binary_expression "DAT_001791ec & 1" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((code *)0x1 < DAT_0017f22c)" ( (binary_expression "(code *)0x1 < DAT_0017f22c" (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) && (parenthesized_expression "(DAT_0017f22c != initialize_traps)" ( (binary_expression "DAT_0017f22c != initialize_traps" identifier != identifier) ))) )) (compound_statement "{\n    free(DAT_0017f22c);\n  }" { (expression_statement "free(DAT_0017f22c);" (call_expression "free(DAT_0017f22c)" identifier (argument_list "(DAT_0017f22c)" ( identifier ))) ;) })) (expression_statement "DAT_0017f22c = (code *)pcVar2;" (assignment_expression "DAT_0017f22c = (code *)pcVar2" identifier = (cast_expression "(code *)pcVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar3 = DAT_001791ec & 0xffffffbf | 1;" (assignment_expression "uVar3 = DAT_001791ec & 0xffffffbf | 1" identifier = (binary_expression "DAT_001791ec & 0xffffffbf | 1" (binary_expression "DAT_001791ec & 0xffffffbf" identifier & number_literal) | number_literal)) ;) (if_statement "if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }" if (parenthesized_expression "(pcVar2 == (char *)0x1)" ( (binary_expression "pcVar2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = DAT_001791ec | 0x41;\n  }" { (expression_statement "uVar3 = DAT_001791ec | 0x41;" (assignment_expression "uVar3 = DAT_001791ec | 0x41" identifier = (binary_expression "DAT_001791ec | 0x41" identifier | number_literal)) ;) })) (if_statement "if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }" if (parenthesized_expression "((uVar3 & 0x10) != 0)" ( (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = uVar3 | 0x20;\n  }" { (expression_statement "uVar3 = uVar3 | 0x20;" (assignment_expression "uVar3 = uVar3 | 0x20" identifier = (binary_expression "uVar3 | 0x20" identifier | number_literal)) ;) })) (expression_statement "DAT_001791ec = uVar3;" (assignment_expression "DAT_001791ec = uVar3" identifier = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return ;) })))
(function_definition "void maybe_set_return_trap(char *param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}" (primitive_type "void") (function_declarator "maybe_set_return_trap(char *param_1)" (identifier "maybe_set_return_trap") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  uint uVar3;\n  \n  if ((DAT_001791ec & 1) != 0) {\n    return;\n  }\n  sVar1 = strlen(param_1);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar2 = strcpy(pcVar2,param_1);\n  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }\n  DAT_0017f22c = (code *)pcVar2;\n  uVar3 = DAT_001791ec & 0xffffffbf | 1;\n  if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }\n  if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }\n  DAT_001791ec = uVar3;\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (if_statement "if ((DAT_001791ec & 1) != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_001791ec & 1) != 0)" (( "(") (binary_expression "(DAT_001791ec & 1) != 0" (parenthesized_expression "(DAT_001791ec & 1)" (( "(") (binary_expression "DAT_001791ec & 1" (identifier "DAT_001791ec") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "sVar1 = strlen(param_1);" (assignment_expression "sVar1 = strlen(param_1)" (identifier "sVar1") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" (identifier "pcVar2") (= "=") (cast_expression "(char *)xmalloc(sVar1 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar1 + 1)" (identifier "xmalloc") (argument_list "(sVar1 + 1)" (( "(") (binary_expression "sVar1 + 1" (identifier "sVar1") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pcVar2 = strcpy(pcVar2,param_1);" (assignment_expression "pcVar2 = strcpy(pcVar2,param_1)" (identifier "pcVar2") (= "=") (call_expression "strcpy(pcVar2,param_1)" (identifier "strcpy") (argument_list "(pcVar2,param_1)" (( "(") (identifier "pcVar2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)) {\n    free(DAT_0017f22c);\n  }" (if "if") (parenthesized_expression "(((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps))" (( "(") (binary_expression "((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))\n     && (DAT_0017f22c != initialize_traps)" (parenthesized_expression "((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))" (( "(") (binary_expression "(((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c)" (parenthesized_expression "(((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0))" (( "(") (binary_expression "((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)" (parenthesized_expression "((DAT_001791ec & 0x10) == 0)" (( "(") (binary_expression "(DAT_001791ec & 0x10) == 0" (parenthesized_expression "(DAT_001791ec & 0x10)" (( "(") (binary_expression "DAT_001791ec & 0x10" (identifier "DAT_001791ec") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_001791ec & 1) != 0)" (( "(") (binary_expression "(DAT_001791ec & 1) != 0" (parenthesized_expression "(DAT_001791ec & 1)" (( "(") (binary_expression "DAT_001791ec & 1" (identifier "DAT_001791ec") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((code *)0x1 < DAT_0017f22c)" (( "(") (binary_expression "(code *)0x1 < DAT_0017f22c" (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (< "<") (identifier "DAT_0017f22c")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_0017f22c != initialize_traps)" (( "(") (binary_expression "DAT_0017f22c != initialize_traps" (identifier "DAT_0017f22c") (!= "!=") (identifier "initialize_traps")) () ")"))) () ")")) (compound_statement "{\n    free(DAT_0017f22c);\n  }" ({ "{") (expression_statement "free(DAT_0017f22c);" (call_expression "free(DAT_0017f22c)" (identifier "free") (argument_list "(DAT_0017f22c)" (( "(") (identifier "DAT_0017f22c") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0017f22c = (code *)pcVar2;" (assignment_expression "DAT_0017f22c = (code *)pcVar2" (identifier "DAT_0017f22c") (= "=") (cast_expression "(code *)pcVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (; ";")) (expression_statement "uVar3 = DAT_001791ec & 0xffffffbf | 1;" (assignment_expression "uVar3 = DAT_001791ec & 0xffffffbf | 1" (identifier "uVar3") (= "=") (binary_expression "DAT_001791ec & 0xffffffbf | 1" (binary_expression "DAT_001791ec & 0xffffffbf" (identifier "DAT_001791ec") (& "&") (number_literal "0xffffffbf")) (| "|") (number_literal "1"))) (; ";")) (if_statement "if (pcVar2 == (char *)0x1) {\n    uVar3 = DAT_001791ec | 0x41;\n  }" (if "if") (parenthesized_expression "(pcVar2 == (char *)0x1)" (( "(") (binary_expression "pcVar2 == (char *)0x1" (identifier "pcVar2") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    uVar3 = DAT_001791ec | 0x41;\n  }" ({ "{") (expression_statement "uVar3 = DAT_001791ec | 0x41;" (assignment_expression "uVar3 = DAT_001791ec | 0x41" (identifier "uVar3") (= "=") (binary_expression "DAT_001791ec | 0x41" (identifier "DAT_001791ec") (| "|") (number_literal "0x41"))) (; ";")) (} "}"))) (if_statement "if ((uVar3 & 0x10) != 0) {\n    uVar3 = uVar3 | 0x20;\n  }" (if "if") (parenthesized_expression "((uVar3 & 0x10) != 0)" (( "(") (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" (( "(") (binary_expression "uVar3 & 0x10" (identifier "uVar3") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = uVar3 | 0x20;\n  }" ({ "{") (expression_statement "uVar3 = uVar3 | 0x20;" (assignment_expression "uVar3 = uVar3 | 0x20" (identifier "uVar3") (= "=") (binary_expression "uVar3 | 0x20" (identifier "uVar3") (| "|") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "DAT_001791ec = uVar3;" (assignment_expression "DAT_001791ec = uVar3" (identifier "DAT_001791ec") (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(char *command)

{
  size_t var_3;
  char *var_8;
  type_1 var_9;
  
  if ((sigmodes[0x43] & 1U) != 0) {
    return;
  }
  var_3 = var_1(command);
  var_8 = (char *)var_2(var_3 + 1);
  var_8 = var_4(var_8,command);
  if (((((sigmodes[0x43] & 0x10U) == 0) && ((sigmodes[0x43] & 1U) != 0)) &&
      ((type_2 *)0x1 < var_5)) && (var_5 != var_6)) {
    var_7(var_5);
  }
  var_5 = (type_2 *)var_8;
  var_9 = sigmodes[0x43] & 0xffffffbfU | 1;
  if (var_8 == (char *)0x1) {
    var_9 = sigmodes[0x43] | 0x41;
  }
  if ((var_9 & 0x10) != 0) {
    var_9 = var_9 | 0x20;
  }
  sigmodes[0x43] = var_9;
  return;
}


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

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

void MASKED(char *param_1)

{
  size_t sVar1;
  char *pcVar2;
  uint uVar3;
  
  if ((DAT_001791ec & 1) != 0) {
    return;
  }
  sVar1 = strlen(param_1);
  pcVar2 = (char *)xmalloc(sVar1 + 1);
  pcVar2 = strcpy(pcVar2,param_1);
  if (((((DAT_001791ec & 0x10) == 0) && ((DAT_001791ec & 1) != 0)) && ((code *)0x1 < DAT_0017f22c))
     && (DAT_0017f22c != initialize_traps)) {
    free(DAT_0017f22c);
  }
  DAT_0017f22c = (code *)pcVar2;
  uVar3 = DAT_001791ec & 0xffffffbf | 1;
  if (pcVar2 == (char *)0x1) {
    uVar3 = DAT_001791ec | 0x41;
  }
  if ((uVar3 & 0x10) != 0) {
    uVar3 = uVar3 | 0x20;
  }
  DAT_001791ec = uVar3;
  return;
}

