
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int getstatus(job *job)

{
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

uint __regparm3 FUN_000521c0(int param_1)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  
  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;
  uVar2 = *(uint *)(uVar3 + 4);
  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {
    while (uVar2 == 0) {
      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {
        return 0;
      }
      uVar2 = *(uint *)(uVar3 - 8);
      uVar3 = uVar3 - 0xc;
    }
  }
  uVar3 = uVar2 >> 8 & 0xff;
  uVar1 = uVar2 & 0x7f;
  if (uVar1 == 0) {
    return uVar3;
  }
  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {
    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;
  }
  return uVar3 + 0x80;
}


PUSH ESI
PUSH EBX
CALL 0x00018a3c
ADD ESI,0x7e859
MOV EBX,dword ptr [EAX + 0xc]
MOV ECX,dword ptr [EAX + 0x14]
LEA EDX,[ECX + ECX*0x1]
ADD EDX,ECX
LEA ECX,[EBX + EDX*0x4 + -0xc]
MOV EDX,dword ptr [ECX + 0x4]
LEA ESI,[ESI + 0xce8]
MOV ESI,dword ptr [ESI]
CMP byte ptr [ESI + 0x3b],0x0
JZ 0x000521ff
TEST EDX,EDX
JNZ 0x000521ff
SUB ECX,0xc
CMP EBX,ECX
JA 0x0005220b
MOV EDX,dword ptr [ECX + 0x4]
TEST EDX,EDX
JZ 0x000521f1
MOVZX EBX,DH
MOV ECX,EDX
AND ECX,0x7f
JNZ 0x00052210
MOV EDX,EBX
MOV EAX,EDX
POP EBX
POP ESI
RET
CMP DL,0x7f
JNZ 0x00052222
MOV ECX,EBX
LEA EDX,[ECX + 0x80]
MOV EAX,EDX
POP EBX
POP ESI
RET
CMP ECX,0x2
JNZ 0x00052217
OR byte ptr [EAX + 0x19],0x1
JMP 0x00052217
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nuint __regparm3 FUN_000521c0(int param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}\n\n" comment (function_definition "uint __regparm3 FUN_000521c0(int param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000521c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;" (assignment_expression "uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc" identifier = (binary_expression "(*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc" (parenthesized_expression "(*(uint *)(param_1 + 0xc) - 0xc)" ( (binary_expression "*(uint *)(param_1 + 0xc) - 0xc" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) - number_literal) )) + (binary_expression "*(int *)(param_1 + 0x14) * 0xc" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "uVar2 = *(uint *)(uVar3 + 4);" (assignment_expression "uVar2 = *(uint *)(uVar3 + 4)" identifier = (pointer_expression "*(uint *)(uVar3 + 4)" * (cast_expression "(uint *)(uVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + 4)" ( (binary_expression "uVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }" if (parenthesized_expression "(*(char *)(DAT_000d1708 + 0x3b) != '\0')" ( (binary_expression "*(char *)(DAT_000d1708 + 0x3b) != '\0'" (pointer_expression "*(char *)(DAT_000d1708 + 0x3b)" * (cast_expression "(char *)(DAT_000d1708 + 0x3b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000d1708 + 0x3b)" ( (binary_expression "DAT_000d1708 + 0x3b" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }" { (while_statement "while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }" while (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }" { (if_statement "if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }" if (parenthesized_expression "(uVar3 - 0xc < *(uint *)(param_1 + 0xc))" ( (binary_expression "uVar3 - 0xc < *(uint *)(param_1 + 0xc)" (binary_expression "uVar3 - 0xc" identifier - number_literal) < (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = *(uint *)(uVar3 - 8);" (assignment_expression "uVar2 = *(uint *)(uVar3 - 8)" identifier = (pointer_expression "*(uint *)(uVar3 - 8)" * (cast_expression "(uint *)(uVar3 - 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 - 8)" ( (binary_expression "uVar3 - 8" identifier - number_literal) ))))) ;) (expression_statement "uVar3 = uVar3 - 0xc;" (assignment_expression "uVar3 = uVar3 - 0xc" identifier = (binary_expression "uVar3 - 0xc" identifier - number_literal)) ;) })) })) (expression_statement "uVar3 = uVar2 >> 8 & 0xff;" (assignment_expression "uVar3 = uVar2 >> 8 & 0xff" identifier = (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar1 = uVar2 & 0x7f;" (assignment_expression "uVar1 = uVar2 & 0x7f" identifier = (binary_expression "uVar2 & 0x7f" identifier & number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    return uVar3;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }" if (parenthesized_expression "(((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2))" ( (binary_expression "((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)" (parenthesized_expression "((char)uVar2 != '\x7f')" ( (binary_expression "(char)uVar2 != '\x7f'" (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x7f'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar3 = uVar1, uVar1 == 2)" ( (comma_expression "uVar3 = uVar1, uVar1 == 2" (assignment_expression "uVar3 = uVar1" identifier = identifier) , (binary_expression "uVar1 == 2" identifier == number_literal)) ))) )) (compound_statement "{\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }" { (expression_statement "*(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;" (assignment_expression "*(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1" (pointer_expression "*(byte *)(param_1 + 0x19)" * (cast_expression "(byte *)(param_1 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x19) | 1" (pointer_expression "*(byte *)(param_1 + 0x19)" * (cast_expression "(byte *)(param_1 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) | number_literal)) ;) })) (return_statement "return uVar3 + 0x80;" return (binary_expression "uVar3 + 0x80" identifier + number_literal) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nint getstatus(job *job)\n\n{\n}\n\n" comment (function_definition "int getstatus(job *job)\n\n{\n}" primitive_type (function_declarator "getstatus(job *job)" identifier (parameter_list "(job *job)" ( (parameter_declaration "job *job" type_identifier (pointer_declarator "*job" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "uint __regparm3 FUN_000521c0(int param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}\n\n" (function_definition "uint __regparm3 FUN_000521c0(int param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000521c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;" (assignment_expression "uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc" identifier = (binary_expression "(*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc" (parenthesized_expression "(*(uint *)(param_1 + 0xc) - 0xc)" ( (binary_expression "*(uint *)(param_1 + 0xc) - 0xc" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) - number_literal) )) + (binary_expression "*(int *)(param_1 + 0x14) * 0xc" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "uVar2 = *(uint *)(uVar3 + 4);" (assignment_expression "uVar2 = *(uint *)(uVar3 + 4)" identifier = (pointer_expression "*(uint *)(uVar3 + 4)" * (cast_expression "(uint *)(uVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + 4)" ( (binary_expression "uVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }" if (parenthesized_expression "(*(char *)(DAT_000d1708 + 0x3b) != '\0')" ( (binary_expression "*(char *)(DAT_000d1708 + 0x3b) != '\0'" (pointer_expression "*(char *)(DAT_000d1708 + 0x3b)" * (cast_expression "(char *)(DAT_000d1708 + 0x3b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000d1708 + 0x3b)" ( (binary_expression "DAT_000d1708 + 0x3b" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }" { (while_statement "while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }" while (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }" { (if_statement "if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }" if (parenthesized_expression "(uVar3 - 0xc < *(uint *)(param_1 + 0xc))" ( (binary_expression "uVar3 - 0xc < *(uint *)(param_1 + 0xc)" (binary_expression "uVar3 - 0xc" identifier - number_literal) < (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = *(uint *)(uVar3 - 8);" (assignment_expression "uVar2 = *(uint *)(uVar3 - 8)" identifier = (pointer_expression "*(uint *)(uVar3 - 8)" * (cast_expression "(uint *)(uVar3 - 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 - 8)" ( (binary_expression "uVar3 - 8" identifier - number_literal) ))))) ;) (expression_statement "uVar3 = uVar3 - 0xc;" (assignment_expression "uVar3 = uVar3 - 0xc" identifier = (binary_expression "uVar3 - 0xc" identifier - number_literal)) ;) })) })) (expression_statement "uVar3 = uVar2 >> 8 & 0xff;" (assignment_expression "uVar3 = uVar2 >> 8 & 0xff" identifier = (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar1 = uVar2 & 0x7f;" (assignment_expression "uVar1 = uVar2 & 0x7f" identifier = (binary_expression "uVar2 & 0x7f" identifier & number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    return uVar3;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }" if (parenthesized_expression "(((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2))" ( (binary_expression "((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)" (parenthesized_expression "((char)uVar2 != '\x7f')" ( (binary_expression "(char)uVar2 != '\x7f'" (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x7f'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar3 = uVar1, uVar1 == 2)" ( (comma_expression "uVar3 = uVar1, uVar1 == 2" (assignment_expression "uVar3 = uVar1" identifier = identifier) , (binary_expression "uVar1 == 2" identifier == number_literal)) ))) )) (compound_statement "{\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }" { (expression_statement "*(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;" (assignment_expression "*(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1" (pointer_expression "*(byte *)(param_1 + 0x19)" * (cast_expression "(byte *)(param_1 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x19) | 1" (pointer_expression "*(byte *)(param_1 + 0x19)" * (cast_expression "(byte *)(param_1 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) | number_literal)) ;) })) (return_statement "return uVar3 + 0x80;" return (binary_expression "uVar3 + 0x80" identifier + number_literal) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) )) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (return_statement return (binary_expression IDENT + LIT) ;) })))
(function_definition "uint __regparm3 FUN_000521c0(int param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000521c0(int param_1)" (identifier "FUN_000521c0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;\n  uVar2 = *(uint *)(uVar3 + 4);\n  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }\n  uVar3 = uVar2 >> 8 & 0xff;\n  uVar1 = uVar2 & 0x7f;\n  if (uVar1 == 0) {\n    return uVar3;\n  }\n  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }\n  return uVar3 + 0x80;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (expression_statement "uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;" (assignment_expression "uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc" (identifier "uVar3") (= "=") (binary_expression "(*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc" (parenthesized_expression "(*(uint *)(param_1 + 0xc) - 0xc)" (( "(") (binary_expression "*(uint *)(param_1 + 0xc) - 0xc" (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (number_literal "0xc")) () ")")) (+ "+") (binary_expression "*(int *)(param_1 + 0x14) * 0xc" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "uVar2 = *(uint *)(uVar3 + 4);" (assignment_expression "uVar2 = *(uint *)(uVar3 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(uVar3 + 4)" (* "*") (cast_expression "(uint *)(uVar3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 + 4)" (( "(") (binary_expression "uVar3 + 4" (identifier "uVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(DAT_000d1708 + 0x3b) != '\0')" (( "(") (binary_expression "*(char *)(DAT_000d1708 + 0x3b) != '\0'" (pointer_expression "*(char *)(DAT_000d1708 + 0x3b)" (* "*") (cast_expression "(char *)(DAT_000d1708 + 0x3b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000d1708 + 0x3b)" (( "(") (binary_expression "DAT_000d1708 + 0x3b" (identifier "DAT_000d1708") (+ "+") (number_literal "0x3b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }\n  }" ({ "{") (while_statement "while (uVar2 == 0) {\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }" (while "while") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }\n      uVar2 = *(uint *)(uVar3 - 8);\n      uVar3 = uVar3 - 0xc;\n    }" ({ "{") (if_statement "if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(uVar3 - 0xc < *(uint *)(param_1 + 0xc))" (( "(") (binary_expression "uVar3 - 0xc < *(uint *)(param_1 + 0xc)" (binary_expression "uVar3 - 0xc" (identifier "uVar3") (- "-") (number_literal "0xc")) (< "<") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(uVar3 - 8);" (assignment_expression "uVar2 = *(uint *)(uVar3 - 8)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(uVar3 - 8)" (* "*") (cast_expression "(uint *)(uVar3 - 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 - 8)" (( "(") (binary_expression "uVar3 - 8" (identifier "uVar3") (- "-") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar3 = uVar3 - 0xc;" (assignment_expression "uVar3 = uVar3 - 0xc" (identifier "uVar3") (= "=") (binary_expression "uVar3 - 0xc" (identifier "uVar3") (- "-") (number_literal "0xc"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar3 = uVar2 >> 8 & 0xff;" (assignment_expression "uVar3 = uVar2 >> 8 & 0xff" (identifier "uVar3") (= "=") (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar1 = uVar2 & 0x7f;" (assignment_expression "uVar1 = uVar2 & 0x7f" (identifier "uVar1") (= "=") (binary_expression "uVar2 & 0x7f" (identifier "uVar2") (& "&") (number_literal "0x7f"))) (; ";")) (if_statement "if (uVar1 == 0) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (if_statement "if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }" (if "if") (parenthesized_expression "(((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2))" (( "(") (binary_expression "((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)" (parenthesized_expression "((char)uVar2 != '\x7f')" (( "(") (binary_expression "(char)uVar2 != '\x7f'" (cast_expression "(char)uVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar2")) (!= "!=") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar3 = uVar1, uVar1 == 2)" (( "(") (comma_expression "uVar3 = uVar1, uVar1 == 2" (assignment_expression "uVar3 = uVar1" (identifier "uVar3") (= "=") (identifier "uVar1")) (, ",") (binary_expression "uVar1 == 2" (identifier "uVar1") (== "==") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;\n  }" ({ "{") (expression_statement "*(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;" (assignment_expression "*(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1" (pointer_expression "*(byte *)(param_1 + 0x19)" (* "*") (cast_expression "(byte *)(param_1 + 0x19)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x19)" (( "(") (binary_expression "param_1 + 0x19" (identifier "param_1") (+ "+") (number_literal "0x19")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0x19) | 1" (pointer_expression "*(byte *)(param_1 + 0x19)" (* "*") (cast_expression "(byte *)(param_1 + 0x19)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x19)" (( "(") (binary_expression "param_1 + 0x19" (identifier "param_1") (+ "+") (number_literal "0x19")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return uVar3 + 0x80;" (return "return") (binary_expression "uVar3 + 0x80" (identifier "uVar3") (+ "+") (number_literal "0x80")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int function_1(type_1 *type_1)

{
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement (binary_expression left: (identifier) right: (number_literal))))))

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

uint __regparm3 MASKED(int param_1)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  
  uVar3 = (*(uint *)(param_1 + 0xc) - 0xc) + *(int *)(param_1 + 0x14) * 0xc;
  uVar2 = *(uint *)(uVar3 + 4);
  if (*(char *)(DAT_000d1708 + 0x3b) != '\0') {
    while (uVar2 == 0) {
      if (uVar3 - 0xc < *(uint *)(param_1 + 0xc)) {
        return 0;
      }
      uVar2 = *(uint *)(uVar3 - 8);
      uVar3 = uVar3 - 0xc;
    }
  }
  uVar3 = uVar2 >> 8 & 0xff;
  uVar1 = uVar2 & 0x7f;
  if (uVar1 == 0) {
    return uVar3;
  }
  if (((char)uVar2 != '\x7f') && (uVar3 = uVar1, uVar1 == 2)) {
    *(byte *)(param_1 + 0x19) = *(byte *)(param_1 + 0x19) | 1;
  }
  return uVar3 + 0x80;
}

