
int volume_id_probe_linux_raid(volume_id *id,uint64_t size)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  size_t in_a1;
  int in_a2;
  uint in_a3;
  undefined4 in_stack_ffffffd4;
  uint8_t uuid [16];
  
  iVar1 = *(int *)PTR___stack_chk_guard_00132164;
  if ((in_a2 == 0) && (in_a3 < 0x10000)) goto LAB_0009bbf4;
  piVar2 = (int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1);
  iVar3 = -1;
  if ((piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457)) {
    uuid._0_4_ = piVar2[5];
    uuid._4_4_ = piVar2[0xd];
    uuid._8_4_ = piVar2[0xe];
    uuid._12_4_ = piVar2[0xf];
    volume_id_set_uuid(id,uuid,UUID_DCE);
    iVar3 = 0;
  }
  while (iVar1 != *(int *)PTR___stack_chk_guard_00132164) {
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_0009bbf4:
    iVar3 = -1;
  }
  return iVar3;
}



undefined4 FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)

{
  int *piVar1;
  undefined4 uVar2;
  uint uVar3;
  int local_1c;
  int local_18;
  int local_14;
  int local_10;
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_00132164;
  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;
  uVar3 = (param_4 & 0xffff0000) - 0x10000;
  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1
                               ,uVar3,0x800);
  uVar2 = 0xffffffff;
  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {
    local_1c = piVar1[5];
    local_18 = piVar1[0xd];
    local_14 = piVar1[0xe];
    local_10 = piVar1[0xf];
    FUN_0009ceac(param_1,&local_1c,2);
    uVar2 = 0;
  }
  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_0009bbf4:
    uVar2 = 0xffffffff;
  }
  return uVar2;
}


lui gp,0xa
addiu gp,gp,-0x299c
addu gp,gp,t9
addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s0,0x38(sp)
sw gp,0x18(sp)
or s0,a0,zero
lw v0,-0x6fec(gp)
lw v0,0x0(v0)
sw v0,0x34(sp)
bne a2,zero,0x0009bb34
_lui v1,0xffff
bne a2,zero,0x0009bbf4
_lui v0,0x1
sltu v0,a3,v0
bne v0,zero,0x0009bbf4
_nop
and v0,a3,v1
addu a3,v0,v1
sltu v0,a3,v0
addiu a2,a2,-0x1
li v1,0x800
sw v1,0x10(sp)
addu a2,v0,a2
or a0,s0,zero
lw t9,-0x7750(gp)
bal 0x0009d14c
_nop
lw gp,0x18(sp)
beq v0,zero,0x0009bbd4
_li v1,-0x1
lwl a1,0x0(v0)
lwr a1,0x3(v0)
lui a0,0xfc4e
addiu a0,a0,0x2ba9
bne a1,a0,0x0009bbd4
_li a2,0x2
lwl v1,0x14(v0)
lwr v1,0x17(v0)
sw v1,0x24(sp)
addiu v0,v0,0x34
lwl a1,0x0(v0)
lwr a1,0x3(v0)
lwl a0,0x4(v0)
lwr a0,0x7(v0)
lwl v1,0x8(v0)
lwr v1,0xb(v0)
sw a1,0x28(sp)
sw a0,0x2c(sp)
sw v1,0x30(sp)
addiu a1,sp,0x24
or a0,s0,zero
lw t9,-0x7748(gp)
bal 0x0009ceac
_nop
lw gp,0x18(sp)
or v1,zero,zero
or v0,v1,zero
lw a0,0x34(sp)
lw v1,-0x6fec(gp)
lw v1,0x0(v1)
beq a0,v1,0x0009bbfc
_lw t9,-0x706c(gp)
jalr t9
_nop
b 0x0009bbd4
_li v1,-0x1
lw ra,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x40
(translation_unit "undefined4 FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "int local_14;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;" if (parenthesized_expression "((param_3 == 0) && (param_4 < 0x10000))" ( (binary_expression "(param_3 == 0) && (param_4 < 0x10000)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(param_4 < 0x10000)" ( (binary_expression "param_4 < 0x10000" identifier < number_literal) ))) )) (goto_statement "goto LAB_0009bbf4;" goto statement_identifier ;)) (expression_statement "uVar3 = (param_4 & 0xffff0000) - 0x10000;" (assignment_expression "uVar3 = (param_4 & 0xffff0000) - 0x10000" identifier = (binary_expression "(param_4 & 0xffff0000) - 0x10000" (parenthesized_expression "(param_4 & 0xffff0000)" ( (binary_expression "param_4 & 0xffff0000" identifier & number_literal) )) - number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);" (assignment_expression "piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" identifier = (cast_expression "(int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" identifier (argument_list "(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" ( identifier , identifier , (binary_expression "(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1" (binary_expression "(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3" (call_expression "(uint)(uVar3 < (param_4 & 0xffff0000))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < (param_4 & 0xffff0000))" ( (binary_expression "uVar3 < (param_4 & 0xffff0000)" identifier < (parenthesized_expression "(param_4 & 0xffff0000)" ( (binary_expression "param_4 & 0xffff0000" identifier & number_literal) ))) ))) + identifier) + number_literal) , identifier , number_literal ))))) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457))" ( (binary_expression "(piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar1 == -0x3b1d457)" ( (binary_expression "*piVar1 == -0x3b1d457" (pointer_expression "*piVar1" * identifier) == number_literal) ))) )) (compound_statement "{\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }" { (expression_statement "local_1c = piVar1[5];" (assignment_expression "local_1c = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "local_18 = piVar1[0xd];" (assignment_expression "local_18 = piVar1[0xd]" identifier = (subscript_expression "piVar1[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_14 = piVar1[0xe];" (assignment_expression "local_14 = piVar1[0xe]" identifier = (subscript_expression "piVar1[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_10 = piVar1[0xf];" (assignment_expression "local_10 = piVar1[0xf]" identifier = (subscript_expression "piVar1[0xf]" identifier [ number_literal ])) ;) (expression_statement "FUN_0009ceac(param_1,&local_1c,2);" (call_expression "FUN_0009ceac(param_1,&local_1c,2)" identifier (argument_list "(param_1,&local_1c,2)" ( identifier , (pointer_expression "&local_1c" & identifier) , number_literal ))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) (while_statement "while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }" while (parenthesized_expression "(local_c != *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "local_c != *(int *)PTR___stack_chk_guard_00132164" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0009bbf4:\n    uVar2 = 0xffffffff;" statement_identifier : (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;)) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "int volume_id_probe_linux_raid(volume_id *id,uint64_t size)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  size_t in_a1;\n  int in_a2;\n  uint in_a3;\n  undefined4 in_stack_ffffffd4;\n  uint8_t uuid [16];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  if ((in_a2 == 0) && (in_a3 < 0x10000)) goto LAB_0009bbf4;\n  piVar2 = (int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1);\n  iVar3 = -1;\n  if ((piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457)) {\n    uuid._0_4_ = piVar2[5];\n    uuid._4_4_ = piVar2[0xd];\n    uuid._8_4_ = piVar2[0xe];\n    uuid._12_4_ = piVar2[0xf];\n    volume_id_set_uuid(id,uuid,UUID_DCE);\n    iVar3 = 0;\n  }\n  while (iVar1 != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    iVar3 = -1;\n  }\n  return iVar3;\n}\n\n" (function_definition "int volume_id_probe_linux_raid(volume_id *id,uint64_t size)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  size_t in_a1;\n  int in_a2;\n  uint in_a3;\n  undefined4 in_stack_ffffffd4;\n  uint8_t uuid [16];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  if ((in_a2 == 0) && (in_a3 < 0x10000)) goto LAB_0009bbf4;\n  piVar2 = (int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1);\n  iVar3 = -1;\n  if ((piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457)) {\n    uuid._0_4_ = piVar2[5];\n    uuid._4_4_ = piVar2[0xd];\n    uuid._8_4_ = piVar2[0xe];\n    uuid._12_4_ = piVar2[0xf];\n    volume_id_set_uuid(id,uuid,UUID_DCE);\n    iVar3 = 0;\n  }\n  while (iVar1 != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    iVar3 = -1;\n  }\n  return iVar3;\n}" primitive_type (function_declarator "volume_id_probe_linux_raid(volume_id *id,uint64_t size)" identifier (parameter_list "(volume_id *id,uint64_t size)" ( (parameter_declaration "volume_id *id" type_identifier (pointer_declarator "*id" * identifier)) , (parameter_declaration "uint64_t size" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  size_t in_a1;\n  int in_a2;\n  uint in_a3;\n  undefined4 in_stack_ffffffd4;\n  uint8_t uuid [16];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  if ((in_a2 == 0) && (in_a3 < 0x10000)) goto LAB_0009bbf4;\n  piVar2 = (int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1);\n  iVar3 = -1;\n  if ((piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457)) {\n    uuid._0_4_ = piVar2[5];\n    uuid._4_4_ = piVar2[0xd];\n    uuid._8_4_ = piVar2[0xe];\n    uuid._12_4_ = piVar2[0xf];\n    volume_id_set_uuid(id,uuid,UUID_DCE);\n    iVar3 = 0;\n  }\n  while (iVar1 != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    iVar3 = -1;\n  }\n  return iVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t in_a1;" primitive_type identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffffd4;" type_identifier identifier ;) (declaration "uint8_t uuid [16];" primitive_type (array_declarator "uuid [16]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((in_a2 == 0) && (in_a3 < 0x10000)) goto LAB_0009bbf4;" if (parenthesized_expression "((in_a2 == 0) && (in_a3 < 0x10000))" ( (binary_expression "(in_a2 == 0) && (in_a3 < 0x10000)" (parenthesized_expression "(in_a2 == 0)" ( (binary_expression "in_a2 == 0" identifier == number_literal) )) && (parenthesized_expression "(in_a3 < 0x10000)" ( (binary_expression "in_a3 < 0x10000" identifier < number_literal) ))) )) (goto_statement "goto LAB_0009bbf4;" goto statement_identifier ;)) (expression_statement "piVar2 = (int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1);" (assignment_expression "piVar2 = (int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1)" identifier = (cast_expression "(int *)volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "volume_id_get_buffer(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1)" identifier (argument_list "(id,CONCAT44(0x800,in_stack_ffffffd4),in_a1)" ( identifier , (call_expression "CONCAT44(0x800,in_stack_ffffffd4)" identifier (argument_list "(0x800,in_stack_ffffffd4)" ( number_literal , identifier ))) , identifier ))))) ;) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if ((piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457)) {\n    uuid._0_4_ = piVar2[5];\n    uuid._4_4_ = piVar2[0xd];\n    uuid._8_4_ = piVar2[0xe];\n    uuid._12_4_ = piVar2[0xf];\n    volume_id_set_uuid(id,uuid,UUID_DCE);\n    iVar3 = 0;\n  }" if (parenthesized_expression "((piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457))" ( (binary_expression "(piVar2 != (int *)0x0) && (*piVar2 == -0x3b1d457)" (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar2 == -0x3b1d457)" ( (binary_expression "*piVar2 == -0x3b1d457" (pointer_expression "*piVar2" * identifier) == number_literal) ))) )) (compound_statement "{\n    uuid._0_4_ = piVar2[5];\n    uuid._4_4_ = piVar2[0xd];\n    uuid._8_4_ = piVar2[0xe];\n    uuid._12_4_ = piVar2[0xf];\n    volume_id_set_uuid(id,uuid,UUID_DCE);\n    iVar3 = 0;\n  }" { (expression_statement "uuid._0_4_ = piVar2[5];" (assignment_expression "uuid._0_4_ = piVar2[5]" (field_expression "uuid._0_4_" identifier . field_identifier) = (subscript_expression "piVar2[5]" identifier [ number_literal ])) ;) (expression_statement "uuid._4_4_ = piVar2[0xd];" (assignment_expression "uuid._4_4_ = piVar2[0xd]" (field_expression "uuid._4_4_" identifier . field_identifier) = (subscript_expression "piVar2[0xd]" identifier [ number_literal ])) ;) (expression_statement "uuid._8_4_ = piVar2[0xe];" (assignment_expression "uuid._8_4_ = piVar2[0xe]" (field_expression "uuid._8_4_" identifier . field_identifier) = (subscript_expression "piVar2[0xe]" identifier [ number_literal ])) ;) (expression_statement "uuid._12_4_ = piVar2[0xf];" (assignment_expression "uuid._12_4_ = piVar2[0xf]" (field_expression "uuid._12_4_" identifier . field_identifier) = (subscript_expression "piVar2[0xf]" identifier [ number_literal ])) ;) (expression_statement "volume_id_set_uuid(id,uuid,UUID_DCE);" (call_expression "volume_id_set_uuid(id,uuid,UUID_DCE)" identifier (argument_list "(id,uuid,UUID_DCE)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (while_statement "while (iVar1 != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    iVar3 = -1;\n  }" while (parenthesized_expression "(iVar1 != *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "iVar1 != *(int *)PTR___stack_chk_guard_00132164" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    iVar3 = -1;\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0009bbf4:\n    iVar3 = -1;" statement_identifier : (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;)) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "undefined4 FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "int local_14;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;" if (parenthesized_expression "((param_3 == 0) && (param_4 < 0x10000))" ( (binary_expression "(param_3 == 0) && (param_4 < 0x10000)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(param_4 < 0x10000)" ( (binary_expression "param_4 < 0x10000" identifier < number_literal) ))) )) (goto_statement "goto LAB_0009bbf4;" goto statement_identifier ;)) (expression_statement "uVar3 = (param_4 & 0xffff0000) - 0x10000;" (assignment_expression "uVar3 = (param_4 & 0xffff0000) - 0x10000" identifier = (binary_expression "(param_4 & 0xffff0000) - 0x10000" (parenthesized_expression "(param_4 & 0xffff0000)" ( (binary_expression "param_4 & 0xffff0000" identifier & number_literal) )) - number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);" (assignment_expression "piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" identifier = (cast_expression "(int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" identifier (argument_list "(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" ( identifier , identifier , (binary_expression "(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1" (binary_expression "(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3" (call_expression "(uint)(uVar3 < (param_4 & 0xffff0000))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < (param_4 & 0xffff0000))" ( (binary_expression "uVar3 < (param_4 & 0xffff0000)" identifier < (parenthesized_expression "(param_4 & 0xffff0000)" ( (binary_expression "param_4 & 0xffff0000" identifier & number_literal) ))) ))) + identifier) + number_literal) , identifier , number_literal ))))) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457))" ( (binary_expression "(piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar1 == -0x3b1d457)" ( (binary_expression "*piVar1 == -0x3b1d457" (pointer_expression "*piVar1" * identifier) == number_literal) ))) )) (compound_statement "{\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }" { (expression_statement "local_1c = piVar1[5];" (assignment_expression "local_1c = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "local_18 = piVar1[0xd];" (assignment_expression "local_18 = piVar1[0xd]" identifier = (subscript_expression "piVar1[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_14 = piVar1[0xe];" (assignment_expression "local_14 = piVar1[0xe]" identifier = (subscript_expression "piVar1[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_10 = piVar1[0xf];" (assignment_expression "local_10 = piVar1[0xf]" identifier = (subscript_expression "piVar1[0xf]" identifier [ number_literal ])) ;) (expression_statement "FUN_0009ceac(param_1,&local_1c,2);" (call_expression "FUN_0009ceac(param_1,&local_1c,2)" identifier (argument_list "(param_1,&local_1c,2)" ( identifier , (pointer_expression "&local_1c" & identifier) , number_literal ))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) (while_statement "while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }" while (parenthesized_expression "(local_c != *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "local_c != *(int *)PTR___stack_chk_guard_00132164" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0009bbf4:\n    uVar2 = 0xffffffff;" statement_identifier : (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;)) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) + IDENT) + LIT) , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}" (type_identifier "undefined4") (function_declarator "FUN_0009baec(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" (identifier "FUN_0009baec") (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int local_1c;\n  int local_18;\n  int local_14;\n  int local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_00132164;\n  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;\n  uVar3 = (param_4 & 0xffff0000) - 0x10000;\n  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);\n  uVar2 = 0xffffffff;\n  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }\n  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }\n  return uVar2;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (declaration "int local_18;" (primitive_type "int") (identifier "local_18") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (declaration "int local_10;" (primitive_type "int") (identifier "local_10") (; ";")) (declaration "int local_c;" (primitive_type "int") (identifier "local_c") (; ";")) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_00132164" (identifier "local_c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00132164" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00132164")))) (; ";")) (if_statement "if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;" (if "if") (parenthesized_expression "((param_3 == 0) && (param_4 < 0x10000))" (( "(") (binary_expression "(param_3 == 0) && (param_4 < 0x10000)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_4 < 0x10000)" (( "(") (binary_expression "param_4 < 0x10000" (identifier "param_4") (< "<") (number_literal "0x10000")) () ")"))) () ")")) (goto_statement "goto LAB_0009bbf4;" (goto "goto") (statement_identifier "LAB_0009bbf4") (; ";"))) (expression_statement "uVar3 = (param_4 & 0xffff0000) - 0x10000;" (assignment_expression "uVar3 = (param_4 & 0xffff0000) - 0x10000" (identifier "uVar3") (= "=") (binary_expression "(param_4 & 0xffff0000) - 0x10000" (parenthesized_expression "(param_4 & 0xffff0000)" (( "(") (binary_expression "param_4 & 0xffff0000" (identifier "param_4") (& "&") (number_literal "0xffff0000")) () ")")) (- "-") (number_literal "0x10000"))) (; ";")) (expression_statement "piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800);" (assignment_expression "piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" (identifier "FUN_0009d14c") (argument_list "(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1\n                               ,uVar3,0x800)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (binary_expression "(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1" (binary_expression "(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3" (call_expression "(uint)(uVar3 < (param_4 & 0xffff0000))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < (param_4 & 0xffff0000))" (( "(") (binary_expression "uVar3 < (param_4 & 0xffff0000)" (identifier "uVar3") (< "<") (parenthesized_expression "(param_4 & 0xffff0000)" (( "(") (binary_expression "param_4 & 0xffff0000" (identifier "param_4") (& "&") (number_literal "0xffff0000")) () ")"))) () ")"))) (+ "+") (identifier "param_3")) (+ "+") (number_literal "-1")) (, ",") (identifier "uVar3") (, ",") (number_literal "0x800") () ")"))))) (; ";")) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457))" (( "(") (binary_expression "(piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)" (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*piVar1 == -0x3b1d457)" (( "(") (binary_expression "*piVar1 == -0x3b1d457" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "-0x3b1d457")) () ")"))) () ")")) (compound_statement "{\n    local_1c = piVar1[5];\n    local_18 = piVar1[0xd];\n    local_14 = piVar1[0xe];\n    local_10 = piVar1[0xf];\n    FUN_0009ceac(param_1,&local_1c,2);\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "local_1c = piVar1[5];" (assignment_expression "local_1c = piVar1[5]" (identifier "local_1c") (= "=") (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_18 = piVar1[0xd];" (assignment_expression "local_18 = piVar1[0xd]" (identifier "local_18") (= "=") (subscript_expression "piVar1[0xd]" (identifier "piVar1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_14 = piVar1[0xe];" (assignment_expression "local_14 = piVar1[0xe]" (identifier "local_14") (= "=") (subscript_expression "piVar1[0xe]" (identifier "piVar1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "local_10 = piVar1[0xf];" (assignment_expression "local_10 = piVar1[0xf]" (identifier "local_10") (= "=") (subscript_expression "piVar1[0xf]" (identifier "piVar1") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "FUN_0009ceac(param_1,&local_1c,2);" (call_expression "FUN_0009ceac(param_1,&local_1c,2)" (identifier "FUN_0009ceac") (argument_list "(param_1,&local_1c,2)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_1c" (& "&") (identifier "local_1c")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}"))) (while_statement "while (local_c != *(int *)PTR___stack_chk_guard_00132164) {\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }" (while "while") (parenthesized_expression "(local_c != *(int *)PTR___stack_chk_guard_00132164)" (( "(") (binary_expression "local_c != *(int *)PTR___stack_chk_guard_00132164" (identifier "local_c") (!= "!=") (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00132164" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00132164")))) () ")")) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0009bbf4:\n    uVar2 = 0xffffffff;\n  }" ({ "{") (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_001320e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001320e4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0009bbf4:\n    uVar2 = 0xffffffff;" (statement_identifier "LAB_0009bbf4") (: ":") (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";"))) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (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 (identifier) (identifier) (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)) right: (number_literal)) (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))))

undefined4 MASKED(undefined4 param_1,undefined4 param_2,int param_3,uint param_4)

{
  int *piVar1;
  undefined4 uVar2;
  uint uVar3;
  int local_1c;
  int local_18;
  int local_14;
  int local_10;
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_00132164;
  if ((param_3 == 0) && (param_4 < 0x10000)) goto LAB_0009bbf4;
  uVar3 = (param_4 & 0xffff0000) - 0x10000;
  piVar1 = (int *)FUN_0009d14c(param_1,param_2,(uint)(uVar3 < (param_4 & 0xffff0000)) + param_3 + -1
                               ,uVar3,0x800);
  uVar2 = 0xffffffff;
  if ((piVar1 != (int *)0x0) && (*piVar1 == -0x3b1d457)) {
    local_1c = piVar1[5];
    local_18 = piVar1[0xd];
    local_14 = piVar1[0xe];
    local_10 = piVar1[0xf];
    FUN_0009ceac(param_1,&local_1c,2);
    uVar2 = 0;
  }
  while (local_c != *(int *)PTR___stack_chk_guard_00132164) {
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_0009bbf4:
    uVar2 = 0xffffffff;
  }
  return uVar2;
}

