
bfd_boolean pr_variable(void *p,char *name,debug_var_kind kind,bfd_vma val)

{
  bfd_boolean bVar1;
  char *__ptr;
  uint uVar2;
  char ab [22];
  
  bVar1 = substitute_type((pr_handle *)p,name);
  if (bVar1 != 0) {
    __ptr = pop_type((pr_handle *)((long)p + 0x10));
    if (__ptr != (char *)0x0) {
      if (*(int *)((long)p + 8) != 0) {
        uVar2 = 0;
        do {
                    /* WARNING: Load size is inaccurate */
          uVar2 = uVar2 + 1;
          putc(0x20,*p);
        } while (uVar2 < *(uint *)((long)p + 8));
      }
      if (DEBUG_GLOBAL < kind) {
        if (kind < DEBUG_LOCAL) {
                    /* WARNING: Load size is inaccurate */
          fwrite("static ",1,7,*p);
        }
        else if (kind == DEBUG_REGISTER) {
                    /* WARNING: Load size is inaccurate */
          fwrite("register ",1,9,*p);
        }
      }
      sprintf(ab,"0x%lx",val);
                    /* WARNING: Load size is inaccurate */
      fprintf(*p,"%s /* %s */;\n",__ptr,ab);
      free(__ptr);
      return 1;
    }
    bVar1 = 0;
  }
  return bVar1;
}



undefined8 FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)

{
  undefined8 uVar1;
  void *__ptr;
  uint uVar2;
  char acStack_48 [32];
  
  uVar1 = FUN_00127110();
  if ((int)uVar1 != 0) {
    __ptr = (void *)FUN_00126930(param_1 + 2);
    if (__ptr != (void *)0x0) {
      if (*(int *)(param_1 + 1) != 0) {
        uVar2 = 0;
        do {
          uVar2 = uVar2 + 1;
          putc(0x20,(FILE *)*param_1);
        } while (uVar2 < *(uint *)(param_1 + 1));
      }
      if (1 < param_3) {
        if (param_3 < 4) {
          fwrite("static ",1,7,(FILE *)*param_1);
        }
        else if (param_3 == 5) {
          fwrite("register ",1,9,(FILE *)*param_1);
        }
      }
      sprintf(acStack_48,"0x%lx",param_4);
      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);
      free(__ptr);
      return 1;
    }
    uVar1 = 0;
  }
  return uVar1;
}


PUSH R14
PUSH R13
MOV R13,RCX
PUSH R12
MOV R12D,EDX
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x20
CALL 0x00127110
TEST EAX,EAX
JNZ 0x00128320
ADD RSP,0x20
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
LEA RDI,[RBP + 0x10]
CALL 0x00126930
MOV R14,RAX
TEST RAX,RAX
JZ 0x001283f0
MOV EAX,dword ptr [RBP + 0x8]
TEST EAX,EAX
JZ 0x00128356
XOR EBX,EBX
NOP
MOV RSI,qword ptr [RBP]
MOV EDI,0x20
ADD EBX,0x1
CALL 0x00107460
CMP EBX,dword ptr [RBP + 0x8]
JC 0x00128340
CMP R12D,0x2
JC 0x00128382
CMP R12D,0x3
JBE 0x001283d0
CMP R12D,0x5
JNZ 0x00128382
MOV RCX,qword ptr [RBP]
MOV EDX,0x9
MOV ESI,0x1
LEA RDI,[0x1458a0]
CALL 0x00107780
MOV RBX,RSP
MOV RDX,R13
LEA RSI,[0x14789d]
XOR EAX,EAX
MOV RDI,RBX
CALL 0x00107760
MOV RDI,qword ptr [RBP]
MOV RCX,RBX
MOV RDX,R14
LEA RSI,[0x1458aa]
XOR EAX,EAX
CALL 0x00107850
MOV RDI,R14
CALL 0x00107070
ADD RSP,0x20
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV RCX,qword ptr [RBP]
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x14584e]
CALL 0x00107780
JMP 0x00128382
XOR EAX,EAX
JMP 0x0012830e
(translation_unit "undefined8 FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)\n\n{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}\n\n" (function_definition "undefined8 FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)\n\n{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}" type_identifier (function_declarator "FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char acStack_48 [32];" primitive_type (array_declarator "acStack_48 [32]" identifier [ number_literal ]) ;) (expression_statement "uVar1 = FUN_00127110();" (assignment_expression "uVar1 = FUN_00127110()" identifier = (call_expression "FUN_00127110()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }" if (parenthesized_expression "((int)uVar1 != 0)" ( (binary_expression "(int)uVar1 != 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }" { (expression_statement "__ptr = (void *)FUN_00126930(param_1 + 2);" (assignment_expression "__ptr = (void *)FUN_00126930(param_1 + 2)" identifier = (cast_expression "(void *)FUN_00126930(param_1 + 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00126930(param_1 + 2)" identifier (argument_list "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (if_statement "if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }" { (if_statement "if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 1) != 0)" ( (binary_expression "*(int *)(param_1 + 1) != 0" (pointer_expression "*(int *)(param_1 + 1)" * (cast_expression "(int *)(param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));" do (compound_statement "{\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" identifier (argument_list "(0x20,(FILE *)*param_1)" ( number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) }) while (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 1))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 1)" identifier < (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) )) ;) })) (if_statement "if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }" if (parenthesized_expression "(1 < param_3)" ( (binary_expression "1 < param_3" number_literal < identifier) )) (compound_statement "{\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }" { (if_statement "if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" if (parenthesized_expression "(param_3 < 4)" ( (binary_expression "param_3 < 4" identifier < number_literal) )) (compound_statement "{\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }" { (expression_statement "fwrite("static ",1,7,(FILE *)*param_1);" (call_expression "fwrite("static ",1,7,(FILE *)*param_1)" identifier (argument_list "("static ",1,7,(FILE *)*param_1)" ( (string_literal ""static "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) }) (else_clause "else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" else (if_statement "if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" if (parenthesized_expression "(param_3 == 5)" ( (binary_expression "param_3 == 5" identifier == number_literal) )) (compound_statement "{\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" { (expression_statement "fwrite("register ",1,9,(FILE *)*param_1);" (call_expression "fwrite("register ",1,9,(FILE *)*param_1)" identifier (argument_list "("register ",1,9,(FILE *)*param_1)" ( (string_literal ""register "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })))) })) (expression_statement "sprintf(acStack_48,"0x%lx",param_4);" (call_expression "sprintf(acStack_48,"0x%lx",param_4)" identifier (argument_list "(acStack_48,"0x%lx",param_4)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);" (call_expression "fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48)" identifier (argument_list "((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s /* %s */;\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) })) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "bfd_boolean pr_variable(void *p,char *name,debug_var_kind kind,bfd_vma val)\n\n{\n  bfd_boolean bVar1;\n  char *__ptr;\n  uint uVar2;\n  char ab [22];\n  \n  bVar1 = substitute_type((pr_handle *)p,name);\n  if (bVar1 != 0) {\n    __ptr = pop_type((pr_handle *)((long)p + 0x10));\n    if (__ptr != (char *)0x0) {\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }\n    bVar1 = 0;\n  }\n  return bVar1;\n}\n\n" (function_definition "bfd_boolean pr_variable(void *p,char *name,debug_var_kind kind,bfd_vma val)\n\n{\n  bfd_boolean bVar1;\n  char *__ptr;\n  uint uVar2;\n  char ab [22];\n  \n  bVar1 = substitute_type((pr_handle *)p,name);\n  if (bVar1 != 0) {\n    __ptr = pop_type((pr_handle *)((long)p + 0x10));\n    if (__ptr != (char *)0x0) {\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }\n    bVar1 = 0;\n  }\n  return bVar1;\n}" type_identifier (function_declarator "pr_variable(void *p,char *name,debug_var_kind kind,bfd_vma val)" identifier (parameter_list "(void *p,char *name,debug_var_kind kind,bfd_vma val)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "debug_var_kind kind" type_identifier identifier) , (parameter_declaration "bfd_vma val" type_identifier identifier) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  char *__ptr;\n  uint uVar2;\n  char ab [22];\n  \n  bVar1 = substitute_type((pr_handle *)p,name);\n  if (bVar1 != 0) {\n    __ptr = pop_type((pr_handle *)((long)p + 0x10));\n    if (__ptr != (char *)0x0) {\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }\n    bVar1 = 0;\n  }\n  return bVar1;\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char ab [22];" primitive_type (array_declarator "ab [22]" identifier [ number_literal ]) ;) (expression_statement "bVar1 = substitute_type((pr_handle *)p,name);" (assignment_expression "bVar1 = substitute_type((pr_handle *)p,name)" identifier = (call_expression "substitute_type((pr_handle *)p,name)" identifier (argument_list "((pr_handle *)p,name)" ( (cast_expression "(pr_handle *)p" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar1 != 0) {\n    __ptr = pop_type((pr_handle *)((long)p + 0x10));\n    if (__ptr != (char *)0x0) {\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }\n    bVar1 = 0;\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    __ptr = pop_type((pr_handle *)((long)p + 0x10));\n    if (__ptr != (char *)0x0) {\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }\n    bVar1 = 0;\n  }" { (expression_statement "__ptr = pop_type((pr_handle *)((long)p + 0x10));" (assignment_expression "__ptr = pop_type((pr_handle *)((long)p + 0x10))" identifier = (call_expression "pop_type((pr_handle *)((long)p + 0x10))" identifier (argument_list "((pr_handle *)((long)p + 0x10))" ( (cast_expression "(pr_handle *)((long)p + 0x10)" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) ;) (if_statement "if (__ptr != (char *)0x0) {\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }" if (parenthesized_expression "(__ptr != (char *)0x0)" ( (binary_expression "__ptr != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }\n      if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }\n      sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n      fprintf(*p,"%s /* %s */;\n",__ptr,ab);\n      free(__ptr);\n      return 1;\n    }" { (if_statement "if (*(int *)((long)p + 8) != 0) {\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }" if (parenthesized_expression "(*(int *)((long)p + 8) != 0)" ( (binary_expression "*(int *)((long)p + 8) != 0" (pointer_expression "*(int *)((long)p + 8)" * (cast_expression "(int *)((long)p + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 8)" ( (binary_expression "(long)p + 8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        } while (uVar2 < *(uint *)((long)p + 8));" do (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n          uVar2 = uVar2 + 1;\n          putc(0x20,*p);\n        }" { comment (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "putc(0x20,*p);" (call_expression "putc(0x20,*p)" identifier (argument_list "(0x20,*p)" ( number_literal , (pointer_expression "*p" * identifier) ))) ;) }) while (parenthesized_expression "(uVar2 < *(uint *)((long)p + 8))" ( (binary_expression "uVar2 < *(uint *)((long)p + 8)" identifier < (pointer_expression "*(uint *)((long)p + 8)" * (cast_expression "(uint *)((long)p + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 8)" ( (binary_expression "(long)p + 8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) ;) })) (if_statement "if (DEBUG_GLOBAL < kind) {\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }" if (parenthesized_expression "(DEBUG_GLOBAL < kind)" ( (binary_expression "DEBUG_GLOBAL < kind" identifier < identifier) )) (compound_statement "{\n        if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }\n      }" { (if_statement "if (kind < DEBUG_LOCAL) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }\n        else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }" if (parenthesized_expression "(kind < DEBUG_LOCAL)" ( (binary_expression "kind < DEBUG_LOCAL" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n          fwrite("static ",1,7,*p);\n        }" { comment (expression_statement "fwrite("static ",1,7,*p);" (call_expression "fwrite("static ",1,7,*p)" identifier (argument_list "("static ",1,7,*p)" ( (string_literal ""static "" " string_content ") , number_literal , number_literal , (pointer_expression "*p" * identifier) ))) ;) }) (else_clause "else if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }" else (if_statement "if (kind == DEBUG_REGISTER) {\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }" if (parenthesized_expression "(kind == DEBUG_REGISTER)" ( (binary_expression "kind == DEBUG_REGISTER" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n          fwrite("register ",1,9,*p);\n        }" { comment (expression_statement "fwrite("register ",1,9,*p);" (call_expression "fwrite("register ",1,9,*p)" identifier (argument_list "("register ",1,9,*p)" ( (string_literal ""register "" " string_content ") , number_literal , number_literal , (pointer_expression "*p" * identifier) ))) ;) })))) })) (expression_statement "sprintf(ab,"0x%lx",val);" (call_expression "sprintf(ab,"0x%lx",val)" identifier (argument_list "(ab,"0x%lx",val)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) comment (expression_statement "fprintf(*p,"%s /* %s */;\n",__ptr,ab);" (call_expression "fprintf(*p,"%s /* %s */;\n",__ptr,ab)" identifier (argument_list "(*p,"%s /* %s */;\n",__ptr,ab)" ( (pointer_expression "*p" * identifier) , (string_literal ""%s /* %s */;\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) })) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "undefined8 FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)\n\n{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}\n\n" (function_definition "undefined8 FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)\n\n{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}" type_identifier (function_declarator "FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char acStack_48 [32];" primitive_type (array_declarator "acStack_48 [32]" identifier [ number_literal ]) ;) (expression_statement "uVar1 = FUN_00127110();" (assignment_expression "uVar1 = FUN_00127110()" identifier = (call_expression "FUN_00127110()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }" if (parenthesized_expression "((int)uVar1 != 0)" ( (binary_expression "(int)uVar1 != 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }" { (expression_statement "__ptr = (void *)FUN_00126930(param_1 + 2);" (assignment_expression "__ptr = (void *)FUN_00126930(param_1 + 2)" identifier = (cast_expression "(void *)FUN_00126930(param_1 + 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00126930(param_1 + 2)" identifier (argument_list "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (if_statement "if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }" { (if_statement "if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 1) != 0)" ( (binary_expression "*(int *)(param_1 + 1) != 0" (pointer_expression "*(int *)(param_1 + 1)" * (cast_expression "(int *)(param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));" do (compound_statement "{\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" identifier (argument_list "(0x20,(FILE *)*param_1)" ( number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) }) while (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 1))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 1)" identifier < (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) )) ;) })) (if_statement "if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }" if (parenthesized_expression "(1 < param_3)" ( (binary_expression "1 < param_3" number_literal < identifier) )) (compound_statement "{\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }" { (if_statement "if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" if (parenthesized_expression "(param_3 < 4)" ( (binary_expression "param_3 < 4" identifier < number_literal) )) (compound_statement "{\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }" { (expression_statement "fwrite("static ",1,7,(FILE *)*param_1);" (call_expression "fwrite("static ",1,7,(FILE *)*param_1)" identifier (argument_list "("static ",1,7,(FILE *)*param_1)" ( (string_literal ""static "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) }) (else_clause "else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" else (if_statement "if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" if (parenthesized_expression "(param_3 == 5)" ( (binary_expression "param_3 == 5" identifier == number_literal) )) (compound_statement "{\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" { (expression_statement "fwrite("register ",1,9,(FILE *)*param_1);" (call_expression "fwrite("register ",1,9,(FILE *)*param_1)" identifier (argument_list "("register ",1,9,(FILE *)*param_1)" ( (string_literal ""register "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })))) })) (expression_statement "sprintf(acStack_48,"0x%lx",param_4);" (call_expression "sprintf(acStack_48,"0x%lx",param_4)" identifier (argument_list "(acStack_48,"0x%lx",param_4)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);" (call_expression "fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48)" identifier (argument_list "((FILE *)*param_1,"%s ;\n",__ptr,acStack_48)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s ;\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) })) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) }) while (parenthesized_expression ( (binary_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 LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) })))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined8 FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)\n\n{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}" (type_identifier "undefined8") (function_declarator "FUN_001282f0(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)" (identifier "FUN_001282f0") (parameter_list "(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  void *__ptr;\n  uint uVar2;\n  char acStack_48 [32];\n  \n  uVar1 = FUN_00127110();\n  if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }\n  return uVar1;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char acStack_48 [32];" (primitive_type "char") (array_declarator "acStack_48 [32]" (identifier "acStack_48") ([ "[") (number_literal "32") (] "]")) (; ";")) (expression_statement "uVar1 = FUN_00127110();" (assignment_expression "uVar1 = FUN_00127110()" (identifier "uVar1") (= "=") (call_expression "FUN_00127110()" (identifier "FUN_00127110") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int)uVar1 != 0) {\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }" (if "if") (parenthesized_expression "((int)uVar1 != 0)" (( "(") (binary_expression "(int)uVar1 != 0" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    __ptr = (void *)FUN_00126930(param_1 + 2);\n    if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }\n    uVar1 = 0;\n  }" ({ "{") (expression_statement "__ptr = (void *)FUN_00126930(param_1 + 2);" (assignment_expression "__ptr = (void *)FUN_00126930(param_1 + 2)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00126930(param_1 + 2)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00126930(param_1 + 2)" (identifier "FUN_00126930") (argument_list "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if (__ptr != (void *)0x0) {\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }\n      if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }\n      sprintf(acStack_48,"0x%lx",param_4);\n      fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);\n      free(__ptr);\n      return 1;\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 1) != 0) {\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 1) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 1) != 0" (pointer_expression "*(int *)(param_1 + 1)" (* "*") (cast_expression "(int *)(param_1 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = 0;\n        do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));\n      }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        } while (uVar2 < *(uint *)(param_1 + 1));" (do "do") (compound_statement "{\n          uVar2 = uVar2 + 1;\n          putc(0x20,(FILE *)*param_1);\n        }" ({ "{") (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" (identifier "putc") (argument_list "(0x20,(FILE *)*param_1)" (( "(") (number_literal "0x20") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 1))" (( "(") (binary_expression "uVar2 < *(uint *)(param_1 + 1)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(param_1 + 1)" (* "*") (cast_expression "(uint *)(param_1 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")"))))) () ")")) (; ";")) (} "}"))) (if_statement "if (1 < param_3) {\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }" (if "if") (parenthesized_expression "(1 < param_3)" (( "(") (binary_expression "1 < param_3" (number_literal "1") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n        if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }\n      }" ({ "{") (if_statement "if (param_3 < 4) {\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }\n        else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" (if "if") (parenthesized_expression "(param_3 < 4)" (( "(") (binary_expression "param_3 < 4" (identifier "param_3") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n          fwrite("static ",1,7,(FILE *)*param_1);\n        }" ({ "{") (expression_statement "fwrite("static ",1,7,(FILE *)*param_1);" (call_expression "fwrite("static ",1,7,(FILE *)*param_1)" (identifier "fwrite") (argument_list "("static ",1,7,(FILE *)*param_1)" (( "(") (string_literal ""static "" (" """) (string_content "static ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}")) (else_clause "else if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" (else "else") (if_statement "if (param_3 == 5) {\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" (if "if") (parenthesized_expression "(param_3 == 5)" (( "(") (binary_expression "param_3 == 5" (identifier "param_3") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n          fwrite("register ",1,9,(FILE *)*param_1);\n        }" ({ "{") (expression_statement "fwrite("register ",1,9,(FILE *)*param_1);" (call_expression "fwrite("register ",1,9,(FILE *)*param_1)" (identifier "fwrite") (argument_list "("register ",1,9,(FILE *)*param_1)" (( "(") (string_literal ""register "" (" """) (string_content "register ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "sprintf(acStack_48,"0x%lx",param_4);" (call_expression "sprintf(acStack_48,"0x%lx",param_4)" (identifier "sprintf") (argument_list "(acStack_48,"0x%lx",param_4)" (( "(") (identifier "acStack_48") (, ",") (string_literal ""0x%lx"" (" """) (string_content "0x%lx") (" """)) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48);" (call_expression "fprintf((FILE *)*param_1,"%s ;\n",__ptr,acStack_48)" (identifier "fprintf") (argument_list "((FILE *)*param_1,"%s ;\n",__ptr,acStack_48)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""%s ;\n"" (" """) (string_content "%s ;") (escape_sequence "\n") (" """)) (, ",") (identifier "__ptr") (, ",") (identifier "acStack_48") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

type_1 function_1(void *p,char *name,type_2 var_8,type_3 val)

{
  type_1 var_2;
  char *var_4;
  type_4 var_5;
  char ab [22];
  
  var_2 = var_1((type_5 *)p,name);
  if (var_2 != 0) {
    var_4 = var_3((type_5 *)((long)p + 0x10));
    if (var_4 != (char *)0x0) {
      if (*(int *)((long)p + 8) != 0) {
        var_5 = 0;
        do {
                    /* WARNING: Load size is inaccurate */
          var_5 = var_5 + 1;
          var_6(0x20,*p);
        } while (var_5 < *(type_4 *)((long)p + 8));
      }
      if (var_7 < var_8) {
        if (var_8 < var_9) {
                    /* WARNING: Load size is inaccurate */
          var_10("static ",1,7,*p);
        }
        else if (var_8 == var_11) {
                    /* WARNING: Load size is inaccurate */
          var_10("register ",1,9,*p);
        }
      }
      var_12(ab,"0x%lx",val);
                    /* WARNING: Load size is inaccurate */
      var_13(*p,"%s /* %s */;\n",var_4,ab);
      var_14(var_4);
      return 1;
    }
    var_2 = 0;
  }
  return var_2;
}


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

undefined8 MASKED(undefined8 *param_1,undefined8 param_2,uint param_3,undefined8 param_4)

{
  undefined8 uVar1;
  void *__ptr;
  uint uVar2;
  char acStack_48 [32];
  
  uVar1 = FUN_00127110();
  if ((int)uVar1 != 0) {
    __ptr = (void *)FUN_00126930(param_1 + 2);
    if (__ptr != (void *)0x0) {
      if (*(int *)(param_1 + 1) != 0) {
        uVar2 = 0;
        do {
          uVar2 = uVar2 + 1;
          putc(0x20,(FILE *)*param_1);
        } while (uVar2 < *(uint *)(param_1 + 1));
      }
      if (1 < param_3) {
        if (param_3 < 4) {
          fwrite("static ",1,7,(FILE *)*param_1);
        }
        else if (param_3 == 5) {
          fwrite("register ",1,9,(FILE *)*param_1);
        }
      }
      sprintf(acStack_48,"0x%lx",param_4);
      fprintf((FILE *)*param_1,"%s /* %s */;\n",__ptr,acStack_48);
      free(__ptr);
      return 1;
    }
    uVar1 = 0;
  }
  return uVar1;
}

