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

string * anon_unknown.dwarf_91258a::Target_arm<true>::aeabi_enum_name
                   (string *__return_storage_ptr__,uint value)

{
  char buffer [100];
  
}



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

int * __regparm3 FUN_0011afa0(int *param_1,uint param_2)

{
  char *__s;
  char *pcVar1;
  size_t sVar2;
  uint uVar3;
  uint uVar4;
  uint *puVar5;
  uint *puVar6;
  bool bVar7;
  uint local_80 [27];
  undefined4 uStack_14;
  
  uStack_14 = 0x11afb0;
  if (param_2 < 4) {
    __s = (&PTR_s__005d4de0)[param_2];
    *param_1 = (int)(param_1 + 2);
    pcVar1 = (char *)0xffffffff;
    if (__s != (char *)0x0) {
      sVar2 = strlen(__s);
      pcVar1 = __s + sVar2;
    }
    FUN_00072b90(param_1,__s,pcVar1,0);
    return param_1;
  }
  sprintf((char *)local_80,"<unknown value %u>",param_2);
  *param_1 = (int)(param_1 + 2);
  puVar6 = local_80;
  do {
    puVar5 = puVar6;
    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;
    uVar4 = uVar3 & 0x80808080;
    puVar6 = puVar5 + 1;
  } while (uVar4 == 0);
  bVar7 = (uVar3 & 0x8080) == 0;
  if (bVar7) {
    uVar4 = uVar4 >> 0x10;
  }
  if (bVar7) {
    puVar6 = (uint *)((int)puVar5 + 6);
  }
  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))
               ,0);
  return param_1;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
MOV ESI,EAX
ADD EAX,0x8
PUSH EBX
CALL 0x00050b50
ADD EBX,0x4cf050
SUB ESP,0x8c
MOV dword ptr [EBP + 0xffffff74],EAX
CMP EDX,0x3
JA 0x0011b000
MOV EDI,dword ptr [EBX + EDX*0x4 + 0xfffeade0]
MOV dword ptr [ESI],EAX
MOV EAX,0xffffffff
TEST EDI,EDI
JZ 0x0011afe7
SUB ESP,0xc
PUSH EDI
CALL 0x00039330
ADD ESP,0x10
ADD EAX,EDI
PUSH 0x0
PUSH EAX
PUSH EDI
PUSH ESI
CALL 0x00072b90
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffe7d39d]
LEA EDI,[EBP + -0x7c]
PUSH EDX
PUSH EAX
PUSH EDI
CALL 0x00039390
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EDX,EDI
MOV dword ptr [ESI],EAX
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
LEA EAX,[ECX + 0xfefefeff]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x0011b01e
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA ECX,[EDX + 0x2]
CMOVZ EDX,ECX
MOV EBX,EAX
ADD BL,AL
SBB EDX,0x3
ADD ESP,0x10
PUSH 0x0
PUSH EDX
PUSH EDI
PUSH ESI
CALL 0x00072b90
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint * __regparm3 FUN_0011afa0(int *param_1,uint param_2)\n\n{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}\n\n" comment (function_definition "int * __regparm3 FUN_0011afa0(int *param_1,uint param_2)\n\n{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_0011afa0(int *param_1,uint param_2)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_0011afa0(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint local_80 [27];" type_identifier (array_declarator "local_80 [27]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x11afb0;" (assignment_expression "uStack_14 = 0x11afb0" identifier = number_literal) ;) (if_statement "if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }" if (parenthesized_expression "(param_2 < 4)" ( (binary_expression "param_2 < 4" identifier < number_literal) )) (compound_statement "{\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }" { (expression_statement "__s = (&PTR_s__005d4de0)[param_2];" (assignment_expression "__s = (&PTR_s__005d4de0)[param_2]" identifier = (subscript_expression "(&PTR_s__005d4de0)[param_2]" (parenthesized_expression "(&PTR_s__005d4de0)" ( (pointer_expression "&PTR_s__005d4de0" & identifier) )) [ identifier ])) ;) (expression_statement "*param_1 = (int)(param_1 + 2);" (assignment_expression "*param_1 = (int)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(param_1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar1 = (char *)0xffffffff;" (assignment_expression "pcVar1 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }" { (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar1 = __s + sVar2;" (assignment_expression "pcVar1 = __s + sVar2" identifier = (binary_expression "__s + sVar2" identifier + identifier)) ;) })) (expression_statement "FUN_00072b90(param_1,__s,pcVar1,0);" (call_expression "FUN_00072b90(param_1,__s,pcVar1,0)" identifier (argument_list "(param_1,__s,pcVar1,0)" ( identifier , identifier , identifier , number_literal ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "sprintf((char *)local_80,"<unknown value %u>",param_2);" (call_expression "sprintf((char *)local_80,"<unknown value %u>",param_2)" identifier (argument_list "((char *)local_80,"<unknown value %u>",param_2)" ( (cast_expression "(char *)local_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""<unknown value %u>"" " string_content ") , identifier ))) ;) (expression_statement "*param_1 = (int)(param_1 + 2);" (assignment_expression "*param_1 = (int)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(param_1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "puVar6 = local_80;" (assignment_expression "puVar6 = local_80" identifier = identifier) ;) (do_statement "do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);" do (compound_statement "{\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  }" { (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (expression_statement "uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;" (assignment_expression "uVar3 = *puVar5 + 0xfefefeff & ~*puVar5" identifier = (binary_expression "*puVar5 + 0xfefefeff & ~*puVar5" (binary_expression "*puVar5 + 0xfefefeff" (pointer_expression "*puVar5" * identifier) + number_literal) & (unary_expression "~*puVar5" ~ (pointer_expression "*puVar5" * identifier)))) ;) (expression_statement "uVar4 = uVar3 & 0x80808080;" (assignment_expression "uVar4 = uVar3 & 0x80808080" identifier = (binary_expression "uVar3 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar6 = puVar5 + 1;" (assignment_expression "puVar6 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) ;) (expression_statement "bVar7 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar7 = (uVar3 & 0x8080) == 0" identifier = (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" ( (binary_expression "uVar3 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    uVar4 = uVar4 >> 0x10;\n  }" { (expression_statement "uVar4 = uVar4 >> 0x10;" (assignment_expression "uVar4 = uVar4 >> 0x10" identifier = (binary_expression "uVar4 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }" { (expression_statement "puVar6 = (uint *)((int)puVar5 + 6);" (assignment_expression "puVar6 = (uint *)((int)puVar5 + 6)" identifier = (cast_expression "(uint *)((int)puVar5 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);" (call_expression "FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0)" identifier (argument_list "(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0)" ( identifier , identifier , (cast_expression "(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))" ( (binary_expression "(int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar4,(byte)uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar4,(byte)uVar4)" identifier (argument_list "((byte)uVar4,(byte)uVar4)" ( (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) ))) , number_literal ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nstring * anon_unknown.dwarf_91258a::Target_arm<true>::aeabi_enum_name\n                   (string *__return_storage_ptr__,uint value)\n\n{\n  char buffer [100];\n  \n}\n\n" comment (ERROR "string * anon_unknown.dwarf_91258a::Target_arm<true>::aeabi_enum_name\n                   (string *__return_storage_ptr__,uint value)" (binary_expression "string * anon_unknown.dwarf_91258a::Target_arm<true>::aeabi_enum_name\n                   (string *__return_storage_ptr__,uint value)" (binary_expression "string * anon_unknown.dwarf_91258a::Target_arm<true" (binary_expression "string * anon_unknown.dwarf_91258a" identifier * (field_expression "anon_unknown.dwarf_91258a" identifier . field_identifier)) (ERROR "::Target_arm" : : identifier) < true) > (ERROR "::" : :) (call_expression "aeabi_enum_name\n                   (string *__return_storage_ptr__,uint value)" identifier (argument_list "(string *__return_storage_ptr__,uint value)" ( (binary_expression "string *__return_storage_ptr__" identifier * identifier) , (ERROR "uint" identifier) identifier ))))) (compound_statement "{\n  char buffer [100];\n  \n}" { (declaration "char buffer [100];" primitive_type (array_declarator "buffer [100]" identifier [ number_literal ]) ;) }))
(translation_unit "int * __regparm3 FUN_0011afa0(int *param_1,uint param_2)\n\n{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}\n\n" (function_definition "int * __regparm3 FUN_0011afa0(int *param_1,uint param_2)\n\n{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_0011afa0(int *param_1,uint param_2)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_0011afa0(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint local_80 [27];" type_identifier (array_declarator "local_80 [27]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x11afb0;" (assignment_expression "uStack_14 = 0x11afb0" identifier = number_literal) ;) (if_statement "if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }" if (parenthesized_expression "(param_2 < 4)" ( (binary_expression "param_2 < 4" identifier < number_literal) )) (compound_statement "{\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }" { (expression_statement "__s = (&PTR_s__005d4de0)[param_2];" (assignment_expression "__s = (&PTR_s__005d4de0)[param_2]" identifier = (subscript_expression "(&PTR_s__005d4de0)[param_2]" (parenthesized_expression "(&PTR_s__005d4de0)" ( (pointer_expression "&PTR_s__005d4de0" & identifier) )) [ identifier ])) ;) (expression_statement "*param_1 = (int)(param_1 + 2);" (assignment_expression "*param_1 = (int)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(param_1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar1 = (char *)0xffffffff;" (assignment_expression "pcVar1 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }" { (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar1 = __s + sVar2;" (assignment_expression "pcVar1 = __s + sVar2" identifier = (binary_expression "__s + sVar2" identifier + identifier)) ;) })) (expression_statement "FUN_00072b90(param_1,__s,pcVar1,0);" (call_expression "FUN_00072b90(param_1,__s,pcVar1,0)" identifier (argument_list "(param_1,__s,pcVar1,0)" ( identifier , identifier , identifier , number_literal ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "sprintf((char *)local_80,"<unknown value %u>",param_2);" (call_expression "sprintf((char *)local_80,"<unknown value %u>",param_2)" identifier (argument_list "((char *)local_80,"<unknown value %u>",param_2)" ( (cast_expression "(char *)local_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""<unknown value %u>"" " string_content ") , identifier ))) ;) (expression_statement "*param_1 = (int)(param_1 + 2);" (assignment_expression "*param_1 = (int)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(param_1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "puVar6 = local_80;" (assignment_expression "puVar6 = local_80" identifier = identifier) ;) (do_statement "do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);" do (compound_statement "{\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  }" { (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (expression_statement "uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;" (assignment_expression "uVar3 = *puVar5 + 0xfefefeff & ~*puVar5" identifier = (binary_expression "*puVar5 + 0xfefefeff & ~*puVar5" (binary_expression "*puVar5 + 0xfefefeff" (pointer_expression "*puVar5" * identifier) + number_literal) & (unary_expression "~*puVar5" ~ (pointer_expression "*puVar5" * identifier)))) ;) (expression_statement "uVar4 = uVar3 & 0x80808080;" (assignment_expression "uVar4 = uVar3 & 0x80808080" identifier = (binary_expression "uVar3 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar6 = puVar5 + 1;" (assignment_expression "puVar6 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) ;) (expression_statement "bVar7 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar7 = (uVar3 & 0x8080) == 0" identifier = (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" ( (binary_expression "uVar3 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    uVar4 = uVar4 >> 0x10;\n  }" { (expression_statement "uVar4 = uVar4 >> 0x10;" (assignment_expression "uVar4 = uVar4 >> 0x10" identifier = (binary_expression "uVar4 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }" { (expression_statement "puVar6 = (uint *)((int)puVar5 + 6);" (assignment_expression "puVar6 = (uint *)((int)puVar5 + 6)" identifier = (cast_expression "(uint *)((int)puVar5 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 6)" ( (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);" (call_expression "FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0)" identifier (argument_list "(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0)" ( identifier , identifier , (cast_expression "(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))" ( (binary_expression "(int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar4,(byte)uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar4,(byte)uVar4)" identifier (argument_list "((byte)uVar4,(byte)uVar4)" ( (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) ))) , number_literal ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ))) ))) , LIT ))) ;) (return_statement return IDENT ;) })))
(function_definition "int * __regparm3 FUN_0011afa0(int *param_1,uint param_2)\n\n{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}" (primitive_type "int") (pointer_declarator "* __regparm3 FUN_0011afa0(int *param_1,uint param_2)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0011afa0(int *param_1,uint param_2)" (identifier "FUN_0011afa0") (parameter_list "(int *param_1,uint param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")")))) (compound_statement "{\n  char *__s;\n  char *pcVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  bool bVar7;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x11afb0;\n  if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }\n  sprintf((char *)local_80,"<unknown value %u>",param_2);\n  *param_1 = (int)(param_1 + 2);\n  puVar6 = local_80;\n  do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);\n  bVar7 = (uVar3 & 0x8080) == 0;\n  if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }\n  if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }\n  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);\n  return param_1;\n}" ({ "{") (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "uint local_80 [27];" (type_identifier "uint") (array_declarator "local_80 [27]" (identifier "local_80") ([ "[") (number_literal "27") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x11afb0;" (assignment_expression "uStack_14 = 0x11afb0" (identifier "uStack_14") (= "=") (number_literal "0x11afb0")) (; ";")) (if_statement "if (param_2 < 4) {\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }" (if "if") (parenthesized_expression "(param_2 < 4)" (( "(") (binary_expression "param_2 < 4" (identifier "param_2") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    __s = (&PTR_s__005d4de0)[param_2];\n    *param_1 = (int)(param_1 + 2);\n    pcVar1 = (char *)0xffffffff;\n    if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }\n    FUN_00072b90(param_1,__s,pcVar1,0);\n    return param_1;\n  }" ({ "{") (expression_statement "__s = (&PTR_s__005d4de0)[param_2];" (assignment_expression "__s = (&PTR_s__005d4de0)[param_2]" (identifier "__s") (= "=") (subscript_expression "(&PTR_s__005d4de0)[param_2]" (parenthesized_expression "(&PTR_s__005d4de0)" (( "(") (pointer_expression "&PTR_s__005d4de0" (& "&") (identifier "PTR_s__005d4de0")) () ")")) ([ "[") (identifier "param_2") (] "]"))) (; ";")) (expression_statement "*param_1 = (int)(param_1 + 2);" (assignment_expression "*param_1 = (int)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)(param_1 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pcVar1 = (char *)0xffffffff;" (assignment_expression "pcVar1 = (char *)0xffffffff" (identifier "pcVar1") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (__s != (char *)0x0) {\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }" (if "if") (parenthesized_expression "(__s != (char *)0x0)" (( "(") (binary_expression "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      sVar2 = strlen(__s);\n      pcVar1 = __s + sVar2;\n    }" ({ "{") (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" (identifier "sVar2") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "pcVar1 = __s + sVar2;" (assignment_expression "pcVar1 = __s + sVar2" (identifier "pcVar1") (= "=") (binary_expression "__s + sVar2" (identifier "__s") (+ "+") (identifier "sVar2"))) (; ";")) (} "}"))) (expression_statement "FUN_00072b90(param_1,__s,pcVar1,0);" (call_expression "FUN_00072b90(param_1,__s,pcVar1,0)" (identifier "FUN_00072b90") (argument_list "(param_1,__s,pcVar1,0)" (( "(") (identifier "param_1") (, ",") (identifier "__s") (, ",") (identifier "pcVar1") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "sprintf((char *)local_80,"<unknown value %u>",param_2);" (call_expression "sprintf((char *)local_80,"<unknown value %u>",param_2)" (identifier "sprintf") (argument_list "((char *)local_80,"<unknown value %u>",param_2)" (( "(") (cast_expression "(char *)local_80" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_80")) (, ",") (string_literal ""<unknown value %u>"" (" """) (string_content "<unknown value %u>") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*param_1 = (int)(param_1 + 2);" (assignment_expression "*param_1 = (int)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)(param_1 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar6 = local_80;" (assignment_expression "puVar6 = local_80" (identifier "puVar6") (= "=") (identifier "local_80")) (; ";")) (do_statement "do {\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  } while (uVar4 == 0);" (do "do") (compound_statement "{\n    puVar5 = puVar6;\n    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;\n    uVar4 = uVar3 & 0x80808080;\n    puVar6 = puVar5 + 1;\n  }" ({ "{") (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" (identifier "puVar5") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;" (assignment_expression "uVar3 = *puVar5 + 0xfefefeff & ~*puVar5" (identifier "uVar3") (= "=") (binary_expression "*puVar5 + 0xfefefeff & ~*puVar5" (binary_expression "*puVar5 + 0xfefefeff" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar5" (~ "~") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))))) (; ";")) (expression_statement "uVar4 = uVar3 & 0x80808080;" (assignment_expression "uVar4 = uVar3 & 0x80808080" (identifier "uVar4") (= "=") (binary_expression "uVar3 & 0x80808080" (identifier "uVar3") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar6 = puVar5 + 1;" (assignment_expression "puVar6 = puVar5 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar7 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar7 = (uVar3 & 0x8080) == 0" (identifier "bVar7") (= "=") (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" (( "(") (binary_expression "uVar3 & 0x8080" (identifier "uVar3") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar7) {\n    uVar4 = uVar4 >> 0x10;\n  }" (if "if") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (compound_statement "{\n    uVar4 = uVar4 >> 0x10;\n  }" ({ "{") (expression_statement "uVar4 = uVar4 >> 0x10;" (assignment_expression "uVar4 = uVar4 >> 0x10" (identifier "uVar4") (= "=") (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar7) {\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }" (if "if") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (compound_statement "{\n    puVar6 = (uint *)((int)puVar5 + 6);\n  }" ({ "{") (expression_statement "puVar6 = (uint *)((int)puVar5 + 6);" (assignment_expression "puVar6 = (uint *)((int)puVar5 + 6)" (identifier "puVar6") (= "=") (cast_expression "(uint *)((int)puVar5 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 6)" (( "(") (binary_expression "(int)puVar5 + 6" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0);" (call_expression "FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0)" (identifier "FUN_00072b90") (argument_list "(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))\n               ,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_80") (, ",") (cast_expression "(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))" (( "(") (binary_expression "(int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar4,(byte)uVar4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar4,(byte)uVar4)" (identifier "CARRY1") (argument_list "((byte)uVar4,(byte)uVar4)" (( "(") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) (, ",") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) () ")"))))) () ")"))) () ")"))) (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

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

string * anon_unknown.dwarf_91258a::Target_arm<true>::aeabi_enum_name
                   (string *__return_storage_ptr__,uint value)

{
  char buffer [100];
  
}


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

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

int * __regparm3 MASKED(int *param_1,uint param_2)

{
  char *__s;
  char *pcVar1;
  size_t sVar2;
  uint uVar3;
  uint uVar4;
  uint *puVar5;
  uint *puVar6;
  bool bVar7;
  uint local_80 [27];
  undefined4 uStack_14;
  
  uStack_14 = 0x11afb0;
  if (param_2 < 4) {
    __s = (&PTR_s__005d4de0)[param_2];
    *param_1 = (int)(param_1 + 2);
    pcVar1 = (char *)0xffffffff;
    if (__s != (char *)0x0) {
      sVar2 = strlen(__s);
      pcVar1 = __s + sVar2;
    }
    FUN_00072b90(param_1,__s,pcVar1,0);
    return param_1;
  }
  sprintf((char *)local_80,"<unknown value %u>",param_2);
  *param_1 = (int)(param_1 + 2);
  puVar6 = local_80;
  do {
    puVar5 = puVar6;
    uVar3 = *puVar5 + 0xfefefeff & ~*puVar5;
    uVar4 = uVar3 & 0x80808080;
    puVar6 = puVar5 + 1;
  } while (uVar4 == 0);
  bVar7 = (uVar3 & 0x8080) == 0;
  if (bVar7) {
    uVar4 = uVar4 >> 0x10;
  }
  if (bVar7) {
    puVar6 = (uint *)((int)puVar5 + 6);
  }
  FUN_00072b90(param_1,local_80,(char *)((int)puVar6 + (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)))
               ,0);
  return param_1;
}

