
int addattr32(nlmsghdr *n,int maxlen,int type,uint32_t data)

{
  uint uVar1;
  uint *puVar2;
  int iVar3;
  int iVar4;
  undefined2 *puVar5;
  uint32_t __t;
  
  iVar3 = *(int *)PTR___stack_chk_guard_00132164;
  iVar4 = -1;
  if ((int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen) {
    puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));
    puVar5[1] = (short)type;
    *puVar5 = 8;
    uVar1 = (uint)(puVar5 + 2) & 3;
    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);
    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;
    uVar1 = (int)puVar5 + 7U & 3;
    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);
    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;
    n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;
    iVar4 = 0;
  }
  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {
    iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();
  }
  return iVar4;
}



undefined4 FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)

{
  uint uVar1;
  uint *puVar2;
  int iVar3;
  undefined4 uVar4;
  undefined2 *puVar5;
  
  iVar3 = *(int *)PTR___stack_chk_guard_00132164;
  uVar4 = 0xffffffff;
  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {
    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));
    puVar5[1] = param_3;
    *puVar5 = 8;
    uVar1 = (uint)(puVar5 + 2) & 3;
    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);
    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;
    uVar1 = (int)puVar5 + 7U & 3;
    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);
    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;
    *param_1 = *param_1 + 0xb & 0xfffffffc;
    uVar4 = 0;
  }
  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {
    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();
  }
  return uVar4;
}


lui gp,0xd
addiu gp,gp,0x7410
addu gp,gp,t9
addiu sp,sp,-0x28
sw ra,0x24(sp)
sw gp,0x10(sp)
lw v0,-0x6fec(gp)
lw v0,0x0(v0)
sw v0,0x1c(sp)
lw v1,0x0(a0)
addiu v0,v1,0xb
li t0,-0x4
and v0,v0,t0
slt a1,a1,v0
bne a1,zero,0x00061dc0
_li v0,-0x1
addiu v0,v1,0x3
li a1,-0x4
and v0,v0,a1
addu v0,a0,v0
sh a2,0x2(v0)
li v1,0x8
sh v1,0x0(v0)
sw a3,0x18(sp)
addiu v1,v0,0x4
swl a3,0x4(v0)
swr a3,0x3(v1)
lw v0,0x0(a0)
addiu v0,v0,0xb
and v0,v0,a1
sw v0,0x0(a0)
or v0,zero,zero
lw a0,0x1c(sp)
lw v1,-0x6fec(gp)
lw v1,0x0(v1)
beq a0,v1,0x00061ddc
_lw t9,-0x706c(gp)
jalr t9
_nop
lw ra,0x24(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "undefined4 FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined4 FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)" identifier (parameter_list "(uint *param_1,int param_2,undefined2 param_3,uint param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined2 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined2 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar3 = *(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))) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }" if (parenthesized_expression "((int)(*param_1 + 0xb & 0xfffffffc) <= param_2)" ( (binary_expression "(int)(*param_1 + 0xb & 0xfffffffc) <= param_2" (cast_expression "(int)(*param_1 + 0xb & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*param_1 + 0xb & 0xfffffffc)" ( (binary_expression "*param_1 + 0xb & 0xfffffffc" (binary_expression "*param_1 + 0xb" (pointer_expression "*param_1" * identifier) + number_literal) & number_literal) ))) <= identifier) )) (compound_statement "{\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }" { (expression_statement "puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));" (assignment_expression "puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc))" identifier = (cast_expression "(undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + (*param_1 + 3 & 0xfffffffc))" ( (binary_expression "(int)param_1 + (*param_1 + 3 & 0xfffffffc)" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(*param_1 + 3 & 0xfffffffc)" ( (binary_expression "*param_1 + 3 & 0xfffffffc" (binary_expression "*param_1 + 3" (pointer_expression "*param_1" * identifier) + number_literal) & number_literal) ))) )))) ;) (expression_statement "puVar5[1] = param_3;" (assignment_expression "puVar5[1] = param_3" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = 8;" (assignment_expression "*puVar5 = 8" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "uVar1 = (uint)(puVar5 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar5 + 2) & 3" identifier = (binary_expression "(uint)(puVar5 + 2) & 3" (call_expression "(uint)(puVar5 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);" (assignment_expression "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1)" identifier = (cast_expression "(uint *)((int)(puVar5 + 2) - uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar5 + 2) - uVar1)" ( (binary_expression "(int)(puVar5 + 2) - uVar1" (cast_expression "(int)(puVar5 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) - identifier) )))) ;) (expression_statement "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;" (assignment_expression "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8" (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8" (pointer_expression "*puVar2" * identifier) & (binary_expression "-1 << (4 - uVar1) * 8" number_literal << (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal))) | (binary_expression "param_4 >> uVar1 * 8" identifier >> (binary_expression "uVar1 * 8" identifier * number_literal)))) ;) (expression_statement "uVar1 = (int)puVar5 + 7U & 3;" (assignment_expression "uVar1 = (int)puVar5 + 7U & 3" identifier = (binary_expression "(int)puVar5 + 7U & 3" (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);" (assignment_expression "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1)" identifier = (cast_expression "(uint *)(((int)puVar5 + 7U) - uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar5 + 7U) - uVar1)" ( (binary_expression "((int)puVar5 + 7U) - uVar1" (parenthesized_expression "((int)puVar5 + 7U)" ( (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;" (assignment_expression "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8" (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8" (pointer_expression "*puVar2" * identifier) & (binary_expression "0xffffffffU >> (uVar1 + 1) * 8" number_literal >> (binary_expression "(uVar1 + 1) * 8" (parenthesized_expression "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "param_4 << (3 - uVar1) * 8" identifier << (binary_expression "(3 - uVar1) * 8" (parenthesized_expression "(3 - uVar1)" ( (binary_expression "3 - uVar1" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "*param_1 = *param_1 + 0xb & 0xfffffffc;" (assignment_expression "*param_1 = *param_1 + 0xb & 0xfffffffc" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + 0xb & 0xfffffffc" (binary_expression "*param_1 + 0xb" (pointer_expression "*param_1" * identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) (if_statement "if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" if (parenthesized_expression "(iVar3 != *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "iVar3 != *(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    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" { (expression_statement "uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();" (assignment_expression "uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)()" identifier = (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 "()" ( )))) ;) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "int addattr32(nlmsghdr *n,int maxlen,int type,uint32_t data)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined2 *puVar5;\n  uint32_t __t;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  iVar4 = -1;\n  if ((int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen) {\n    puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));\n    puVar5[1] = (short)type;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;\n    n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;\n    iVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return iVar4;\n}\n\n" (function_definition "int addattr32(nlmsghdr *n,int maxlen,int type,uint32_t data)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined2 *puVar5;\n  uint32_t __t;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  iVar4 = -1;\n  if ((int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen) {\n    puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));\n    puVar5[1] = (short)type;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;\n    n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;\n    iVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return iVar4;\n}" primitive_type (function_declarator "addattr32(nlmsghdr *n,int maxlen,int type,uint32_t data)" identifier (parameter_list "(nlmsghdr *n,int maxlen,int type,uint32_t data)" ( (parameter_declaration "nlmsghdr *n" type_identifier (pointer_declarator "*n" * identifier)) , (parameter_declaration "int maxlen" primitive_type identifier) , (parameter_declaration "int type" primitive_type identifier) , (parameter_declaration "uint32_t data" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined2 *puVar5;\n  uint32_t __t;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  iVar4 = -1;\n  if ((int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen) {\n    puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));\n    puVar5[1] = (short)type;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;\n    n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;\n    iVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return iVar4;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined2 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint32_t __t;" primitive_type identifier ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar3 = *(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))) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if ((int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen) {\n    puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));\n    puVar5[1] = (short)type;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;\n    n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;\n    iVar4 = 0;\n  }" if (parenthesized_expression "((int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen)" ( (binary_expression "(int)(n->nlmsg_len + 0xb & 0xfffffffc) <= maxlen" (cast_expression "(int)(n->nlmsg_len + 0xb & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(n->nlmsg_len + 0xb & 0xfffffffc)" ( (binary_expression "n->nlmsg_len + 0xb & 0xfffffffc" (binary_expression "n->nlmsg_len + 0xb" (field_expression "n->nlmsg_len" identifier -> field_identifier) + number_literal) & number_literal) ))) <= identifier) )) (compound_statement "{\n    puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));\n    puVar5[1] = (short)type;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;\n    n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;\n    iVar4 = 0;\n  }" { (expression_statement "puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc));" (assignment_expression "puVar5 = (undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc))" identifier = (cast_expression "(undefined2 *)((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc))" ( (binary_expression "(int)&n->nlmsg_len + (n->nlmsg_len + 3 & 0xfffffffc)" (cast_expression "(int)&n->nlmsg_len" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&n->nlmsg_len" & (field_expression "n->nlmsg_len" identifier -> field_identifier))) + (parenthesized_expression "(n->nlmsg_len + 3 & 0xfffffffc)" ( (binary_expression "n->nlmsg_len + 3 & 0xfffffffc" (binary_expression "n->nlmsg_len + 3" (field_expression "n->nlmsg_len" identifier -> field_identifier) + number_literal) & number_literal) ))) )))) ;) (expression_statement "puVar5[1] = (short)type;" (assignment_expression "puVar5[1] = (short)type" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (cast_expression "(short)type" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*puVar5 = 8;" (assignment_expression "*puVar5 = 8" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "uVar1 = (uint)(puVar5 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar5 + 2) & 3" identifier = (binary_expression "(uint)(puVar5 + 2) & 3" (call_expression "(uint)(puVar5 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);" (assignment_expression "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1)" identifier = (cast_expression "(uint *)((int)(puVar5 + 2) - uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar5 + 2) - uVar1)" ( (binary_expression "(int)(puVar5 + 2) - uVar1" (cast_expression "(int)(puVar5 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) - identifier) )))) ;) (expression_statement "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8;" (assignment_expression "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8 | data >> uVar1 * 8" (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8" (pointer_expression "*puVar2" * identifier) & (binary_expression "-1 << (4 - uVar1) * 8" number_literal << (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal))) | (binary_expression "data >> uVar1 * 8" identifier >> (binary_expression "uVar1 * 8" identifier * number_literal)))) ;) (expression_statement "uVar1 = (int)puVar5 + 7U & 3;" (assignment_expression "uVar1 = (int)puVar5 + 7U & 3" identifier = (binary_expression "(int)puVar5 + 7U & 3" (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);" (assignment_expression "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1)" identifier = (cast_expression "(uint *)(((int)puVar5 + 7U) - uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar5 + 7U) - uVar1)" ( (binary_expression "((int)puVar5 + 7U) - uVar1" (parenthesized_expression "((int)puVar5 + 7U)" ( (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8;" (assignment_expression "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | data << (3 - uVar1) * 8" (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8" (pointer_expression "*puVar2" * identifier) & (binary_expression "0xffffffffU >> (uVar1 + 1) * 8" number_literal >> (binary_expression "(uVar1 + 1) * 8" (parenthesized_expression "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "data << (3 - uVar1) * 8" identifier << (binary_expression "(3 - uVar1) * 8" (parenthesized_expression "(3 - uVar1)" ( (binary_expression "3 - uVar1" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc;" (assignment_expression "n->nlmsg_len = n->nlmsg_len + 0xb & 0xfffffffc" (field_expression "n->nlmsg_len" identifier -> field_identifier) = (binary_expression "n->nlmsg_len + 0xb & 0xfffffffc" (binary_expression "n->nlmsg_len + 0xb" (field_expression "n->nlmsg_len" identifier -> field_identifier) + number_literal) & number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (if_statement "if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" if (parenthesized_expression "(iVar3 != *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "iVar3 != *(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    iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" { (expression_statement "iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();" (assignment_expression "iVar4 = (*(code *)PTR___stack_chk_fail_001320e4)()" identifier = (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 "()" ( )))) ;) })) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "undefined4 FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined4 FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)" identifier (parameter_list "(uint *param_1,int param_2,undefined2 param_3,uint param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined2 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined2 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar3 = *(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))) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }" if (parenthesized_expression "((int)(*param_1 + 0xb & 0xfffffffc) <= param_2)" ( (binary_expression "(int)(*param_1 + 0xb & 0xfffffffc) <= param_2" (cast_expression "(int)(*param_1 + 0xb & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*param_1 + 0xb & 0xfffffffc)" ( (binary_expression "*param_1 + 0xb & 0xfffffffc" (binary_expression "*param_1 + 0xb" (pointer_expression "*param_1" * identifier) + number_literal) & number_literal) ))) <= identifier) )) (compound_statement "{\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }" { (expression_statement "puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));" (assignment_expression "puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc))" identifier = (cast_expression "(undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + (*param_1 + 3 & 0xfffffffc))" ( (binary_expression "(int)param_1 + (*param_1 + 3 & 0xfffffffc)" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(*param_1 + 3 & 0xfffffffc)" ( (binary_expression "*param_1 + 3 & 0xfffffffc" (binary_expression "*param_1 + 3" (pointer_expression "*param_1" * identifier) + number_literal) & number_literal) ))) )))) ;) (expression_statement "puVar5[1] = param_3;" (assignment_expression "puVar5[1] = param_3" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = 8;" (assignment_expression "*puVar5 = 8" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "uVar1 = (uint)(puVar5 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar5 + 2) & 3" identifier = (binary_expression "(uint)(puVar5 + 2) & 3" (call_expression "(uint)(puVar5 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);" (assignment_expression "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1)" identifier = (cast_expression "(uint *)((int)(puVar5 + 2) - uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar5 + 2) - uVar1)" ( (binary_expression "(int)(puVar5 + 2) - uVar1" (cast_expression "(int)(puVar5 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) - identifier) )))) ;) (expression_statement "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;" (assignment_expression "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8" (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8" (pointer_expression "*puVar2" * identifier) & (binary_expression "-1 << (4 - uVar1) * 8" number_literal << (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal))) | (binary_expression "param_4 >> uVar1 * 8" identifier >> (binary_expression "uVar1 * 8" identifier * number_literal)))) ;) (expression_statement "uVar1 = (int)puVar5 + 7U & 3;" (assignment_expression "uVar1 = (int)puVar5 + 7U & 3" identifier = (binary_expression "(int)puVar5 + 7U & 3" (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);" (assignment_expression "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1)" identifier = (cast_expression "(uint *)(((int)puVar5 + 7U) - uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar5 + 7U) - uVar1)" ( (binary_expression "((int)puVar5 + 7U) - uVar1" (parenthesized_expression "((int)puVar5 + 7U)" ( (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;" (assignment_expression "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8" (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8" (pointer_expression "*puVar2" * identifier) & (binary_expression "0xffffffffU >> (uVar1 + 1) * 8" number_literal >> (binary_expression "(uVar1 + 1) * 8" (parenthesized_expression "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "param_4 << (3 - uVar1) * 8" identifier << (binary_expression "(3 - uVar1) * 8" (parenthesized_expression "(3 - uVar1)" ( (binary_expression "3 - uVar1" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "*param_1 = *param_1 + 0xb & 0xfffffffc;" (assignment_expression "*param_1 = *param_1 + 0xb & 0xfffffffc" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + 0xb & 0xfffffffc" (binary_expression "*param_1 + 0xb" (pointer_expression "*param_1" * identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) (if_statement "if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" if (parenthesized_expression "(iVar3 != *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "iVar3 != *(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    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" { (expression_statement "uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();" (assignment_expression "uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)()" identifier = (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 "()" ( )))) ;) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & LIT) ))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (pointer_expression * IDENT) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) | (binary_expression IDENT >> (binary_expression IDENT * LIT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (pointer_expression * IDENT) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}" (type_identifier "undefined4") (function_declarator "FUN_00061d40(uint *param_1,int param_2,undefined2 param_3,uint param_4)" (identifier "FUN_00061d40") (parameter_list "(uint *param_1,int param_2,undefined2 param_3,uint param_4)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined2 param_3" (type_identifier "undefined2") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined2 *puVar5;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_00132164;\n  uVar4 = 0xffffffff;\n  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }\n  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }\n  return uVar4;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined2 *puVar5;" (type_identifier "undefined2") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_00132164" (identifier "iVar3") (= "=") (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")))) (; ";")) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }" (if "if") (parenthesized_expression "((int)(*param_1 + 0xb & 0xfffffffc) <= param_2)" (( "(") (binary_expression "(int)(*param_1 + 0xb & 0xfffffffc) <= param_2" (cast_expression "(int)(*param_1 + 0xb & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*param_1 + 0xb & 0xfffffffc)" (( "(") (binary_expression "*param_1 + 0xb & 0xfffffffc" (binary_expression "*param_1 + 0xb" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xb")) (& "&") (number_literal "0xfffffffc")) () ")"))) (<= "<=") (identifier "param_2")) () ")")) (compound_statement "{\n    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));\n    puVar5[1] = param_3;\n    *puVar5 = 8;\n    uVar1 = (uint)(puVar5 + 2) & 3;\n    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);\n    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;\n    uVar1 = (int)puVar5 + 7U & 3;\n    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);\n    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;\n    *param_1 = *param_1 + 0xb & 0xfffffffc;\n    uVar4 = 0;\n  }" ({ "{") (expression_statement "puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));" (assignment_expression "puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc))" (identifier "puVar5") (= "=") (cast_expression "(undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + (*param_1 + 3 & 0xfffffffc))" (( "(") (binary_expression "(int)param_1 + (*param_1 + 3 & 0xfffffffc)" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(*param_1 + 3 & 0xfffffffc)" (( "(") (binary_expression "*param_1 + 3 & 0xfffffffc" (binary_expression "*param_1 + 3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "3")) (& "&") (number_literal "0xfffffffc")) () ")"))) () ")")))) (; ";")) (expression_statement "puVar5[1] = param_3;" (assignment_expression "puVar5[1] = param_3" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*puVar5 = 8;" (assignment_expression "*puVar5 = 8" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar1 = (uint)(puVar5 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar5 + 2) & 3" (identifier "uVar1") (= "=") (binary_expression "(uint)(puVar5 + 2) & 3" (call_expression "(uint)(puVar5 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar5 + 2)" (( "(") (binary_expression "puVar5 + 2" (identifier "puVar5") (+ "+") (number_literal "2")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);" (assignment_expression "puVar2 = (uint *)((int)(puVar5 + 2) - uVar1)" (identifier "puVar2") (= "=") (cast_expression "(uint *)((int)(puVar5 + 2) - uVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar5 + 2) - uVar1)" (( "(") (binary_expression "(int)(puVar5 + 2) - uVar1" (cast_expression "(int)(puVar5 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar5 + 2)" (( "(") (binary_expression "puVar5 + 2" (identifier "puVar5") (+ "+") (number_literal "2")) () ")"))) (- "-") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;" (assignment_expression "*puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8" (binary_expression "*puVar2 & -1 << (4 - uVar1) * 8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (& "&") (binary_expression "-1 << (4 - uVar1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" (( "(") (binary_expression "4 - uVar1" (number_literal "4") (- "-") (identifier "uVar1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "param_4 >> uVar1 * 8" (identifier "param_4") (>> ">>") (binary_expression "uVar1 * 8" (identifier "uVar1") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "uVar1 = (int)puVar5 + 7U & 3;" (assignment_expression "uVar1 = (int)puVar5 + 7U & 3" (identifier "uVar1") (= "=") (binary_expression "(int)puVar5 + 7U & 3" (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "7U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);" (assignment_expression "puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1)" (identifier "puVar2") (= "=") (cast_expression "(uint *)(((int)puVar5 + 7U) - uVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar5 + 7U) - uVar1)" (( "(") (binary_expression "((int)puVar5 + 7U) - uVar1" (parenthesized_expression "((int)puVar5 + 7U)" (( "(") (binary_expression "(int)puVar5 + 7U" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "7U")) () ")")) (- "-") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;" (assignment_expression "*puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8" (binary_expression "*puVar2 & 0xffffffffU >> (uVar1 + 1) * 8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (& "&") (binary_expression "0xffffffffU >> (uVar1 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar1 + 1) * 8" (parenthesized_expression "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "param_4 << (3 - uVar1) * 8" (identifier "param_4") (<< "<<") (binary_expression "(3 - uVar1) * 8" (parenthesized_expression "(3 - uVar1)" (( "(") (binary_expression "3 - uVar1" (number_literal "3") (- "-") (identifier "uVar1")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "*param_1 = *param_1 + 0xb & 0xfffffffc;" (assignment_expression "*param_1 = *param_1 + 0xb & 0xfffffffc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "*param_1 + 0xb & 0xfffffffc" (binary_expression "*param_1 + 0xb" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xb")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {\n    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" (if "if") (parenthesized_expression "(iVar3 != *(int *)PTR___stack_chk_guard_00132164)" (( "(") (binary_expression "iVar3 != *(int *)PTR___stack_chk_guard_00132164" (identifier "iVar3") (!= "!=") (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    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();\n  }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();" (assignment_expression "uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)()" (identifier "uVar4") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (} "}"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_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))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (return_statement (identifier)))))

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

{
  uint uVar1;
  uint *puVar2;
  int iVar3;
  undefined4 uVar4;
  undefined2 *puVar5;
  
  iVar3 = *(int *)PTR___stack_chk_guard_00132164;
  uVar4 = 0xffffffff;
  if ((int)(*param_1 + 0xb & 0xfffffffc) <= param_2) {
    puVar5 = (undefined2 *)((int)param_1 + (*param_1 + 3 & 0xfffffffc));
    puVar5[1] = param_3;
    *puVar5 = 8;
    uVar1 = (uint)(puVar5 + 2) & 3;
    puVar2 = (uint *)((int)(puVar5 + 2) - uVar1);
    *puVar2 = *puVar2 & -1 << (4 - uVar1) * 8 | param_4 >> uVar1 * 8;
    uVar1 = (int)puVar5 + 7U & 3;
    puVar2 = (uint *)(((int)puVar5 + 7U) - uVar1);
    *puVar2 = *puVar2 & 0xffffffffU >> (uVar1 + 1) * 8 | param_4 << (3 - uVar1) * 8;
    *param_1 = *param_1 + 0xb & 0xfffffffc;
    uVar4 = 0;
  }
  if (iVar3 != *(int *)PTR___stack_chk_guard_00132164) {
    uVar4 = (*(code *)PTR___stack_chk_fail_001320e4)();
  }
  return uVar4;
}

