
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void flush_window(void)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  
  if (*(uint *)PTR_outcnt_000373a4 != 0) {
    updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);
    if (*(int *)PTR_test_0003748c == 0) {
      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);
    }
    puVar2 = PTR_bytes_out_00037458;
    puVar1 = PTR_outcnt_000373a4;
    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;
    *(uint *)PTR_bytes_out_00037458 =
         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;
    *(uint *)(puVar2 + 4) = uVar3;
    *(undefined4 *)puVar1 = 0;
  }
  return;
}



void flush_window(void)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  
  if (*(int *)PTR_outcnt_000373a4 != 0) {
    updcrc(PTR_window_000373bc);
    if (*(int *)PTR_test_0003748c == 0) {
      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,
                *(undefined4 *)PTR_outcnt_000373a4);
    }
    puVar2 = PTR_bytes_out_00037458;
    puVar1 = PTR_outcnt_000373a4;
    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;
    *(uint *)PTR_bytes_out_00037458 =
         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;
    *(uint *)(puVar2 + 4) = uVar3;
    *(undefined4 *)puVar1 = 0;
  }
  return;
}


lui gp,0x2
addiu gp,gp,0x64
addu gp,gp,t9
addiu sp,sp,-0x20
sw ra,0x1c(sp)
sw gp,0x10(sp)
lw v0,-0x7fbc(gp)
lw a1,0x0(v0)
bne a1,zero,0x0001f330
_lw a0,-0x7fa4(gp)
lw ra,0x1c(sp)
jr ra
_addiu sp,sp,0x20
lw t9,-0x7f44(gp)
bal 0x0001e890
_nop
lw gp,0x10(sp)
lw v0,-0x7ed4(gp)
lw v0,0x0(v0)
beq v0,zero,0x0001f380
_lw v0,-0x7fbc(gp)
lw v1,-0x7f08(gp)
lw a1,-0x7fbc(gp)
lw a0,0x0(a1)
lw a2,0x0(v1)
lw v0,0x4(v1)
addu a0,v0,a0
sltu v0,a0,v0
addu v0,v0,a2
sw v0,0x0(v1)
sw a0,0x4(v1)
b 0x0001f324
_sw zero,0x0(a1)
lw a2,0x0(v0)
lw a1,-0x7fa4(gp)
lw v0,-0x7ec8(gp)
lw a0,0x0(v0)
lw t9,-0x7f0c(gp)
bal 0x0001f078
_nop
lw gp,0x10(sp)
b 0x0001f354
_lw v1,-0x7f08(gp)
(translation_unit "void flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}\n\n" (function_definition "void flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" primitive_type (function_declarator "flush_window(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (if_statement "if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" if (parenthesized_expression "(*(int *)PTR_outcnt_000373a4 != 0)" ( (binary_expression "*(int *)PTR_outcnt_000373a4 != 0" (pointer_expression "*(int *)PTR_outcnt_000373a4" * (cast_expression "(int *)PTR_outcnt_000373a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" { (expression_statement "updcrc(PTR_window_000373bc);" (call_expression "updcrc(PTR_window_000373bc)" identifier (argument_list "(PTR_window_000373bc)" ( identifier ))) ;) (if_statement "if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }" if (parenthesized_expression "(*(int *)PTR_test_0003748c == 0)" ( (binary_expression "*(int *)PTR_test_0003748c == 0" (pointer_expression "*(int *)PTR_test_0003748c" * (cast_expression "(int *)PTR_test_0003748c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }" { (expression_statement "write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);" (call_expression "write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4)" identifier (argument_list "(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4)" ( (pointer_expression "*(undefined4 *)PTR_ofd_00037498" * (cast_expression "(undefined4 *)PTR_ofd_00037498" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier , (pointer_expression "*(undefined4 *)PTR_outcnt_000373a4" * (cast_expression "(undefined4 *)PTR_outcnt_000373a4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "puVar2 = PTR_bytes_out_00037458;" (assignment_expression "puVar2 = PTR_bytes_out_00037458" identifier = identifier) ;) (expression_statement "puVar1 = PTR_outcnt_000373a4;" (assignment_expression "puVar1 = PTR_outcnt_000373a4" identifier = identifier) ;) (expression_statement "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;" (assignment_expression "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" identifier = (binary_expression "*(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" * (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" ( (binary_expression "PTR_bytes_out_00037458 + 4" identifier + number_literal) )))) + (pointer_expression "*(int *)PTR_outcnt_000373a4" * (cast_expression "(int *)PTR_outcnt_000373a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;" (assignment_expression "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (pointer_expression "*(uint *)PTR_bytes_out_00037458" * (cast_expression "(uint *)PTR_bytes_out_00037458" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (call_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" ( (binary_expression "uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)" identifier < (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" * (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" ( (binary_expression "PTR_bytes_out_00037458 + 4" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)PTR_bytes_out_00037458" * (cast_expression "(int *)PTR_bytes_out_00037458" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(uint *)(puVar2 + 4) = uVar3;" (assignment_expression "*(uint *)(puVar2 + 4) = uVar3" (pointer_expression "*(uint *)(puVar2 + 4)" * (cast_expression "(uint *)(puVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)puVar1 = 0;" (assignment_expression "*(undefined4 *)puVar1 = 0" (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(uint *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}\n\n" comment (function_definition "void flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(uint *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" primitive_type (function_declarator "flush_window(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(uint *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (if_statement "if (*(uint *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" if (parenthesized_expression "(*(uint *)PTR_outcnt_000373a4 != 0)" ( (binary_expression "*(uint *)PTR_outcnt_000373a4 != 0" (pointer_expression "*(uint *)PTR_outcnt_000373a4" * (cast_expression "(uint *)PTR_outcnt_000373a4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n    updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" { (expression_statement "updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);" (call_expression "updcrc(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4)" identifier (argument_list "(PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4)" ( identifier , (pointer_expression "*(uint *)PTR_outcnt_000373a4" * (cast_expression "(uint *)PTR_outcnt_000373a4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (if_statement "if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }" if (parenthesized_expression "(*(int *)PTR_test_0003748c == 0)" ( (binary_expression "*(int *)PTR_test_0003748c == 0" (pointer_expression "*(int *)PTR_test_0003748c" * (cast_expression "(int *)PTR_test_0003748c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);\n    }" { (expression_statement "write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4);" (call_expression "write_buf(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4)" identifier (argument_list "(*(int *)PTR_ofd_00037498,PTR_window_000373bc,*(uint *)PTR_outcnt_000373a4)" ( (pointer_expression "*(int *)PTR_ofd_00037498" * (cast_expression "(int *)PTR_ofd_00037498" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , identifier , (pointer_expression "*(uint *)PTR_outcnt_000373a4" * (cast_expression "(uint *)PTR_outcnt_000373a4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "puVar2 = PTR_bytes_out_00037458;" (assignment_expression "puVar2 = PTR_bytes_out_00037458" identifier = identifier) ;) (expression_statement "puVar1 = PTR_outcnt_000373a4;" (assignment_expression "puVar1 = PTR_outcnt_000373a4" identifier = identifier) ;) (expression_statement "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;" (assignment_expression "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" identifier = (binary_expression "*(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" * (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" ( (binary_expression "PTR_bytes_out_00037458 + 4" identifier + number_literal) )))) + (pointer_expression "*(int *)PTR_outcnt_000373a4" * (cast_expression "(int *)PTR_outcnt_000373a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;" (assignment_expression "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (pointer_expression "*(uint *)PTR_bytes_out_00037458" * (cast_expression "(uint *)PTR_bytes_out_00037458" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (call_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" ( (binary_expression "uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)" identifier < (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" * (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" ( (binary_expression "PTR_bytes_out_00037458 + 4" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)PTR_bytes_out_00037458" * (cast_expression "(int *)PTR_bytes_out_00037458" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(uint *)(puVar2 + 4) = uVar3;" (assignment_expression "*(uint *)(puVar2 + 4) = uVar3" (pointer_expression "*(uint *)(puVar2 + 4)" * (cast_expression "(uint *)(puVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)puVar1 = 0;" (assignment_expression "*(undefined4 *)puVar1 = 0" (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}\n\n" (function_definition "void flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" primitive_type (function_declarator "flush_window(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (if_statement "if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" if (parenthesized_expression "(*(int *)PTR_outcnt_000373a4 != 0)" ( (binary_expression "*(int *)PTR_outcnt_000373a4 != 0" (pointer_expression "*(int *)PTR_outcnt_000373a4" * (cast_expression "(int *)PTR_outcnt_000373a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" { (expression_statement "updcrc(PTR_window_000373bc);" (call_expression "updcrc(PTR_window_000373bc)" identifier (argument_list "(PTR_window_000373bc)" ( identifier ))) ;) (if_statement "if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }" if (parenthesized_expression "(*(int *)PTR_test_0003748c == 0)" ( (binary_expression "*(int *)PTR_test_0003748c == 0" (pointer_expression "*(int *)PTR_test_0003748c" * (cast_expression "(int *)PTR_test_0003748c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }" { (expression_statement "write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);" (call_expression "write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4)" identifier (argument_list "(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4)" ( (pointer_expression "*(undefined4 *)PTR_ofd_00037498" * (cast_expression "(undefined4 *)PTR_ofd_00037498" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier , (pointer_expression "*(undefined4 *)PTR_outcnt_000373a4" * (cast_expression "(undefined4 *)PTR_outcnt_000373a4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "puVar2 = PTR_bytes_out_00037458;" (assignment_expression "puVar2 = PTR_bytes_out_00037458" identifier = identifier) ;) (expression_statement "puVar1 = PTR_outcnt_000373a4;" (assignment_expression "puVar1 = PTR_outcnt_000373a4" identifier = identifier) ;) (expression_statement "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;" (assignment_expression "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" identifier = (binary_expression "*(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" * (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" ( (binary_expression "PTR_bytes_out_00037458 + 4" identifier + number_literal) )))) + (pointer_expression "*(int *)PTR_outcnt_000373a4" * (cast_expression "(int *)PTR_outcnt_000373a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;" (assignment_expression "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (pointer_expression "*(uint *)PTR_bytes_out_00037458" * (cast_expression "(uint *)PTR_bytes_out_00037458" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (call_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" ( (binary_expression "uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)" identifier < (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" * (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" ( (binary_expression "PTR_bytes_out_00037458 + 4" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)PTR_bytes_out_00037458" * (cast_expression "(int *)PTR_bytes_out_00037458" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(uint *)(puVar2 + 4) = uVar3;" (assignment_expression "*(uint *)(puVar2 + 4) = uVar3" (pointer_expression "*(uint *)(puVar2 + 4)" * (cast_expression "(uint *)(puVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)puVar1 = 0;" (assignment_expression "*(undefined4 *)puVar1 = 0" (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) })) (return_statement return ;) })))
(function_definition "void flush_window(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "flush_window(void)" (identifier "flush_window") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  \n  if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (if_statement "if (*(int *)PTR_outcnt_000373a4 != 0) {\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_outcnt_000373a4 != 0)" (( "(") (binary_expression "*(int *)PTR_outcnt_000373a4 != 0" (pointer_expression "*(int *)PTR_outcnt_000373a4" (* "*") (cast_expression "(int *)PTR_outcnt_000373a4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_outcnt_000373a4"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    updcrc(PTR_window_000373bc);\n    if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }\n    puVar2 = PTR_bytes_out_00037458;\n    puVar1 = PTR_outcnt_000373a4;\n    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;\n    *(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;\n    *(uint *)(puVar2 + 4) = uVar3;\n    *(undefined4 *)puVar1 = 0;\n  }" ({ "{") (expression_statement "updcrc(PTR_window_000373bc);" (call_expression "updcrc(PTR_window_000373bc)" (identifier "updcrc") (argument_list "(PTR_window_000373bc)" (( "(") (identifier "PTR_window_000373bc") () ")"))) (; ";")) (if_statement "if (*(int *)PTR_test_0003748c == 0) {\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_test_0003748c == 0)" (( "(") (binary_expression "*(int *)PTR_test_0003748c == 0" (pointer_expression "*(int *)PTR_test_0003748c" (* "*") (cast_expression "(int *)PTR_test_0003748c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_test_0003748c"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);\n    }" ({ "{") (expression_statement "write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4);" (call_expression "write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4)" (identifier "write_buf") (argument_list "(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,\n                *(undefined4 *)PTR_outcnt_000373a4)" (( "(") (pointer_expression "*(undefined4 *)PTR_ofd_00037498" (* "*") (cast_expression "(undefined4 *)PTR_ofd_00037498" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ofd_00037498"))) (, ",") (identifier "PTR_window_000373bc") (, ",") (pointer_expression "*(undefined4 *)PTR_outcnt_000373a4" (* "*") (cast_expression "(undefined4 *)PTR_outcnt_000373a4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_outcnt_000373a4"))) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = PTR_bytes_out_00037458;" (assignment_expression "puVar2 = PTR_bytes_out_00037458" (identifier "puVar2") (= "=") (identifier "PTR_bytes_out_00037458")) (; ";")) (expression_statement "puVar1 = PTR_outcnt_000373a4;" (assignment_expression "puVar1 = PTR_outcnt_000373a4" (identifier "puVar1") (= "=") (identifier "PTR_outcnt_000373a4")) (; ";")) (expression_statement "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;" (assignment_expression "uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4" (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" (* "*") (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" (( "(") (binary_expression "PTR_bytes_out_00037458 + 4" (identifier "PTR_bytes_out_00037458") (+ "+") (number_literal "4")) () ")")))) (+ "+") (pointer_expression "*(int *)PTR_outcnt_000373a4" (* "*") (cast_expression "(int *)PTR_outcnt_000373a4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_outcnt_000373a4"))))) (; ";")) (expression_statement "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;" (assignment_expression "*(uint *)PTR_bytes_out_00037458 =\n         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (pointer_expression "*(uint *)PTR_bytes_out_00037458" (* "*") (cast_expression "(uint *)PTR_bytes_out_00037458" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_bytes_out_00037458"))) (= "=") (binary_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458" (call_expression "(uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4))" (( "(") (binary_expression "uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)" (identifier "uVar3") (< "<") (pointer_expression "*(uint *)(PTR_bytes_out_00037458 + 4)" (* "*") (cast_expression "(uint *)(PTR_bytes_out_00037458 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_bytes_out_00037458 + 4)" (( "(") (binary_expression "PTR_bytes_out_00037458 + 4" (identifier "PTR_bytes_out_00037458") (+ "+") (number_literal "4")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)PTR_bytes_out_00037458" (* "*") (cast_expression "(int *)PTR_bytes_out_00037458" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_bytes_out_00037458"))))) (; ";")) (expression_statement "*(uint *)(puVar2 + 4) = uVar3;" (assignment_expression "*(uint *)(puVar2 + 4) = uVar3" (pointer_expression "*(uint *)(puVar2 + 4)" (* "*") (cast_expression "(uint *)(puVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 4)" (( "(") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)puVar1 = 0;" (assignment_expression "*(undefined4 *)puVar1 = 0" (pointer_expression "*(undefined4 *)puVar1" (* "*") (cast_expression "(undefined4 *)puVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) (return_statement))))

void MASKED(void)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  
  if (*(int *)PTR_outcnt_000373a4 != 0) {
    updcrc(PTR_window_000373bc);
    if (*(int *)PTR_test_0003748c == 0) {
      write_buf(*(undefined4 *)PTR_ofd_00037498,PTR_window_000373bc,
                *(undefined4 *)PTR_outcnt_000373a4);
    }
    puVar2 = PTR_bytes_out_00037458;
    puVar1 = PTR_outcnt_000373a4;
    uVar3 = *(uint *)(PTR_bytes_out_00037458 + 4) + *(int *)PTR_outcnt_000373a4;
    *(uint *)PTR_bytes_out_00037458 =
         (uint)(uVar3 < *(uint *)(PTR_bytes_out_00037458 + 4)) + *(int *)PTR_bytes_out_00037458;
    *(uint *)(puVar2 + 4) = uVar3;
    *(undefined4 *)puVar1 = 0;
  }
  return;
}

