
mode_t mode_adjust(mode_t oldmode,_Bool dir,mode_t umask_value,mode_change *changes,
                  mode_t *pmode_bits)

{
  mode_t mVar1;
  uint uVar2;
  uint uVar3;
  undefined3 in_register_00000014;
  uint uVar4;
  char cVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  
  cVar5 = changes->flag;
  mVar1 = oldmode & 0xfff;
  uVar7 = 0;
  if (cVar5 != '\0') {
    do {
      uVar3 = changes->affected;
      uVar2 = changes->value;
      if (CONCAT31(in_register_00000014,dir) == 0) {
        uVar6 = 0;
        if (cVar5 == '\x02') {
          uVar6 = mVar1 & 0x49;
          uVar4 = 0xffffffff;
          if (uVar6 != 0) {
            uVar6 = 0;
            uVar2 = uVar2 | 0x49;
          }
        }
        else {
          uVar4 = 0xffffffff;
LAB_0002f838:
          uVar8 = 0x124;
          if (cVar5 == '\x03') {
            uVar2 = mVar1 & uVar2;
            if ((uVar2 & 0x124) == 0) {
              uVar8 = 0;
            }
            if ((uVar2 & 0x92) != 0) {
              uVar8 = uVar8 | 0x92;
            }
            if ((uVar2 & 0x49) != 0) {
              uVar8 = uVar8 | 0x49;
            }
            uVar2 = uVar8 | uVar2;
          }
        }
      }
      else {
        uVar6 = ~changes->mentioned & 0xc00;
        uVar4 = changes->mentioned | 0xfffff3ff;
        if (cVar5 != '\x02') goto LAB_0002f838;
        uVar2 = uVar2 | 0x49;
      }
      cVar5 = changes->op;
      if (uVar3 == 0) {
        uVar2 = ~umask_value & uVar2 & uVar4;
        if (cVar5 == '-') {
LAB_0002f914:
          uVar7 = uVar7 | uVar2;
          mVar1 = mVar1 & ~uVar2;
        }
        else {
          if (cVar5 != '=') goto LAB_0002f88c;
LAB_0002f8e4:
          uVar7 = uVar7 | uVar4 & 0xfff;
          mVar1 = mVar1 & uVar6 | uVar2;
        }
      }
      else {
        uVar2 = uVar2 & uVar4 & uVar3;
        if (cVar5 == '-') goto LAB_0002f914;
        if (cVar5 == '=') {
          uVar6 = uVar6 | ~uVar3;
          uVar4 = ~uVar6;
          goto LAB_0002f8e4;
        }
LAB_0002f88c:
        if (cVar5 == '+') {
          uVar7 = uVar7 | uVar2;
          mVar1 = mVar1 | uVar2;
        }
      }
      cVar5 = changes[1].flag;
      changes = changes + 1;
    } while (cVar5 != '\0');
  }
  if (pmode_bits != (mode_t *)0x0) {
    *pmode_bits = uVar7;
  }
  return mVar1;
}



void mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  char cVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  
  cVar4 = param_4[1];
  param_1 = param_1 & 0xfff;
  uVar6 = 0;
  if (cVar4 != '\0') {
    do {
      uVar2 = *(uint *)(param_4 + 4);
      uVar1 = *(uint *)(param_4 + 8);
      if (param_2 == 0) {
        uVar5 = 0;
        if (cVar4 == '\x02') {
          uVar5 = param_1 & 0x49;
          uVar3 = 0xffffffff;
          if (uVar5 != 0) {
            uVar5 = 0;
            uVar1 = uVar1 | 0x49;
          }
        }
        else {
          uVar3 = 0xffffffff;
LAB_0002f838:
          uVar7 = 0x124;
          if (cVar4 == '\x03') {
            uVar1 = param_1 & uVar1;
            if ((uVar1 & 0x124) == 0) {
              uVar7 = 0;
            }
            if ((uVar1 & 0x92) != 0) {
              uVar7 = uVar7 | 0x92;
            }
            if ((uVar1 & 0x49) != 0) {
              uVar7 = uVar7 | 0x49;
            }
            uVar1 = uVar7 | uVar1;
          }
        }
      }
      else {
        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;
        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;
        if (cVar4 != '\x02') goto LAB_0002f838;
        uVar1 = uVar1 | 0x49;
      }
      cVar4 = *param_4;
      if (uVar2 == 0) {
        uVar1 = ~param_3 & uVar1 & uVar3;
        if (cVar4 == '-') {
LAB_0002f914:
          uVar6 = uVar6 | uVar1;
          param_1 = param_1 & ~uVar1;
        }
        else {
          if (cVar4 != '=') goto LAB_0002f88c;
LAB_0002f8e4:
          uVar6 = uVar6 | uVar3 & 0xfff;
          param_1 = param_1 & uVar5 | uVar1;
        }
      }
      else {
        uVar1 = uVar1 & uVar3 & uVar2;
        if (cVar4 == '-') goto LAB_0002f914;
        if (cVar4 == '=') {
          uVar5 = uVar5 | ~uVar2;
          uVar3 = ~uVar5;
          goto LAB_0002f8e4;
        }
LAB_0002f88c:
        if (cVar4 == '+') {
          uVar6 = uVar6 | uVar1;
          param_1 = param_1 | uVar1;
        }
      }
      cVar4 = param_4[0x11];
      param_4 = param_4 + 0x10;
    } while (cVar4 != '\0');
  }
  if (param_5 != (uint *)0x0) {
    *param_5 = uVar6;
  }
  return;
}


addiu sp,sp,-0x10
lb t1,0x1(a3)
andi v0,a0,0xfff
or t3,zero,zero
lw t9,0x20(sp)
sw s3,0xc(sp)
sw s2,0x8(sp)
sw s1,0x4(sp)
beq t1,zero,0x0002f8a4
_sw s0,0x0(sp)
li s0,-0xc01
li t8,0x2
li t7,0x3
li s1,0x124
li t6,0x2d
li t5,0x3d
li t4,0x2b
nor a2,zero,a2
lw a0,0x4(a3)
bne a1,zero,0x0002f8f8
_lw v1,0x8(a3)
beq t1,t8,0x0002f930
_or t2,zero,zero
li t0,-0x1
bne t1,t7,0x0002f870
_or s3,s1,zero
and v1,v0,v1
andi t1,v1,0x124
movz s3,zero,t1
andi s2,v1,0x92
beq s2,zero,0x0002f85c
_or t1,s3,zero
ori t1,s3,0x92
andi s2,v1,0x49
beq s2,zero,0x0002f86c
_nop
ori t1,t1,0x49
or v1,t1,v1
lb t1,0x0(a3)
bne a0,zero,0x0002f8c8
_and v1,v1,t0
beq t1,t6,0x0002f914
_and v1,a2,v1
beq t1,t5,0x0002f8e4
_nop
beq t1,t4,0x0002f924
_nop
addiu a3,a3,0x10
lb t1,0x1(a3)
bne t1,zero,0x0002f820
_nop
beq t9,zero,0x0002f8b4
_lw s3,0xc(sp)
sw t3,0x0(t9)
lw s3,0xc(sp)
lw s2,0x8(sp)
lw s1,0x4(sp)
lw s0,0x0(sp)
jr ra
_addiu sp,sp,0x10
beq t1,t6,0x0002f914
_and v1,v1,a0
bne t1,t5,0x0002f88c
_nop
nor a0,zero,a0
or t2,t2,a0
nor t0,zero,t2
andi t0,t0,0xfff
and v0,v0,t2
or t3,t3,t0
b 0x0002f894
_or v0,v0,v1
lw t0,0xc(a3)
nor t2,zero,t0
andi t2,t2,0xc00
bne t1,t8,0x0002f838
_or t0,t0,s0
b 0x0002f870
_ori v1,v1,0x49
nor a0,zero,v1
or t3,t3,v1
b 0x0002f894
_and v0,v0,a0
or t3,t3,v1
b 0x0002f894
_or v0,v0,v1
andi t2,v0,0x49
beq t2,zero,0x0002f870
_li t0,-0x1
or t2,zero,zero
b 0x0002f870
_ori v1,v1,0x49
(translation_unit "void mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}\n\n" (function_definition "void mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}" primitive_type (function_declarator "mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)" identifier (parameter_list "(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "cVar4 = param_4[1];" (assignment_expression "cVar4 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "param_1 = param_1 & 0xfff;" (assignment_expression "param_1 = param_1 & 0xfff" identifier = (binary_expression "param_1 & 0xfff" identifier & number_literal)) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }" { (do_statement "do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');" do (compound_statement "{\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    }" { (expression_statement "uVar2 = *(uint *)(param_4 + 4);" (assignment_expression "uVar2 = *(uint *)(param_4 + 4)" identifier = (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_4 + 8);" (assignment_expression "uVar1 = *(uint *)(param_4 + 8)" identifier = (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" if (parenthesized_expression "(cVar4 == '\x02')" ( (binary_expression "cVar4 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }" { (expression_statement "uVar5 = param_1 & 0x49;" (assignment_expression "uVar5 = param_1 & 0x49" identifier = (binary_expression "param_1 & 0x49" identifier & number_literal)) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = uVar1 | 0x49;" (assignment_expression "uVar1 = uVar1 | 0x49" identifier = (binary_expression "uVar1 | 0x49" identifier | number_literal)) ;) })) }) (else_clause "else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" else (compound_statement "{\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" { (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_0002f838:\n          uVar7 = 0x124;" statement_identifier : (expression_statement "uVar7 = 0x124;" (assignment_expression "uVar7 = 0x124" identifier = number_literal) ;)) (if_statement "if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }" if (parenthesized_expression "(cVar4 == '\x03')" ( (binary_expression "cVar4 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }" { (expression_statement "uVar1 = param_1 & uVar1;" (assignment_expression "uVar1 = param_1 & uVar1" identifier = (binary_expression "param_1 & uVar1" identifier & identifier)) ;) (if_statement "if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }" if (parenthesized_expression "((uVar1 & 0x124) == 0)" ( (binary_expression "(uVar1 & 0x124) == 0" (parenthesized_expression "(uVar1 & 0x124)" ( (binary_expression "uVar1 & 0x124" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar7 = 0;\n            }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (if_statement "if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }" if (parenthesized_expression "((uVar1 & 0x92) != 0)" ( (binary_expression "(uVar1 & 0x92) != 0" (parenthesized_expression "(uVar1 & 0x92)" ( (binary_expression "uVar1 & 0x92" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar7 = uVar7 | 0x92;\n            }" { (expression_statement "uVar7 = uVar7 | 0x92;" (assignment_expression "uVar7 = uVar7 | 0x92" identifier = (binary_expression "uVar7 | 0x92" identifier | number_literal)) ;) })) (if_statement "if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }" if (parenthesized_expression "((uVar1 & 0x49) != 0)" ( (binary_expression "(uVar1 & 0x49) != 0" (parenthesized_expression "(uVar1 & 0x49)" ( (binary_expression "uVar1 & 0x49" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar7 = uVar7 | 0x49;\n            }" { (expression_statement "uVar7 = uVar7 | 0x49;" (assignment_expression "uVar7 = uVar7 | 0x49" identifier = (binary_expression "uVar7 | 0x49" identifier | number_literal)) ;) })) (expression_statement "uVar1 = uVar7 | uVar1;" (assignment_expression "uVar1 = uVar7 | uVar1" identifier = (binary_expression "uVar7 | uVar1" identifier | identifier)) ;) })) }))) }) (else_clause "else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" else (compound_statement "{\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" { (expression_statement "uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;" (assignment_expression "uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00" identifier = (binary_expression "~*(uint *)(param_4 + 0xc) & 0xc00" (unary_expression "~*(uint *)(param_4 + 0xc)" ~ (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) ))))) & number_literal)) ;) (expression_statement "uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;" (assignment_expression "uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff" identifier = (binary_expression "*(uint *)(param_4 + 0xc) | 0xfffff3ff" (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (cVar4 != '\x02') goto LAB_0002f838;" if (parenthesized_expression "(cVar4 != '\x02')" ( (binary_expression "cVar4 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002f838;" goto statement_identifier ;)) (expression_statement "uVar1 = uVar1 | 0x49;" (assignment_expression "uVar1 = uVar1 | 0x49" identifier = (binary_expression "uVar1 | 0x49" identifier | number_literal)) ;) }))) (expression_statement "cVar4 = *param_4;" (assignment_expression "cVar4 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }" { (expression_statement "uVar1 = ~param_3 & uVar1 & uVar3;" (assignment_expression "uVar1 = ~param_3 & uVar1 & uVar3" identifier = (binary_expression "~param_3 & uVar1 & uVar3" (binary_expression "~param_3 & uVar1" (unary_expression "~param_3" ~ identifier) & identifier) & identifier)) ;) (if_statement "if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" if (parenthesized_expression "(cVar4 == '-')" ( (binary_expression "cVar4 == '-'" identifier == (char_literal "'-'" ' character ')) )) (compound_statement "{\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }" { (labeled_statement "LAB_0002f914:\n          uVar6 = uVar6 | uVar1;" statement_identifier : (expression_statement "uVar6 = uVar6 | uVar1;" (assignment_expression "uVar6 = uVar6 | uVar1" identifier = (binary_expression "uVar6 | uVar1" identifier | identifier)) ;)) (expression_statement "param_1 = param_1 & ~uVar1;" (assignment_expression "param_1 = param_1 & ~uVar1" identifier = (binary_expression "param_1 & ~uVar1" identifier & (unary_expression "~uVar1" ~ identifier))) ;) }) (else_clause "else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" else (compound_statement "{\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" { (if_statement "if (cVar4 != '=') goto LAB_0002f88c;" if (parenthesized_expression "(cVar4 != '=')" ( (binary_expression "cVar4 != '='" identifier != (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_0002f88c;" goto statement_identifier ;)) (labeled_statement "LAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;" statement_identifier : (expression_statement "uVar6 = uVar6 | uVar3 & 0xfff;" (assignment_expression "uVar6 = uVar6 | uVar3 & 0xfff" identifier = (binary_expression "uVar6 | uVar3 & 0xfff" identifier | (binary_expression "uVar3 & 0xfff" identifier & number_literal))) ;)) (expression_statement "param_1 = param_1 & uVar5 | uVar1;" (assignment_expression "param_1 = param_1 & uVar5 | uVar1" identifier = (binary_expression "param_1 & uVar5 | uVar1" (binary_expression "param_1 & uVar5" identifier & identifier) | identifier)) ;) }))) }) (else_clause "else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" else (compound_statement "{\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" { (expression_statement "uVar1 = uVar1 & uVar3 & uVar2;" (assignment_expression "uVar1 = uVar1 & uVar3 & uVar2" identifier = (binary_expression "uVar1 & uVar3 & uVar2" (binary_expression "uVar1 & uVar3" identifier & identifier) & identifier)) ;) (if_statement "if (cVar4 == '-') goto LAB_0002f914;" if (parenthesized_expression "(cVar4 == '-')" ( (binary_expression "cVar4 == '-'" identifier == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_0002f914;" goto statement_identifier ;)) (if_statement "if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }" if (parenthesized_expression "(cVar4 == '=')" ( (binary_expression "cVar4 == '='" identifier == (char_literal "'='" ' character ')) )) (compound_statement "{\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }" { (expression_statement "uVar5 = uVar5 | ~uVar2;" (assignment_expression "uVar5 = uVar5 | ~uVar2" identifier = (binary_expression "uVar5 | ~uVar2" identifier | (unary_expression "~uVar2" ~ identifier))) ;) (expression_statement "uVar3 = ~uVar5;" (assignment_expression "uVar3 = ~uVar5" identifier = (unary_expression "~uVar5" ~ identifier)) ;) (goto_statement "goto LAB_0002f8e4;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" statement_identifier : (if_statement "if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" if (parenthesized_expression "(cVar4 == '+')" ( (binary_expression "cVar4 == '+'" identifier == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" { (expression_statement "uVar6 = uVar6 | uVar1;" (assignment_expression "uVar6 = uVar6 | uVar1" identifier = (binary_expression "uVar6 | uVar1" identifier | identifier)) ;) (expression_statement "param_1 = param_1 | uVar1;" (assignment_expression "param_1 = param_1 | uVar1" identifier = (binary_expression "param_1 | uVar1" identifier | identifier)) ;) }))) }))) (expression_statement "cVar4 = param_4[0x11];" (assignment_expression "cVar4 = param_4[0x11]" identifier = (subscript_expression "param_4[0x11]" identifier [ number_literal ])) ;) (expression_statement "param_4 = param_4 + 0x10;" (assignment_expression "param_4 = param_4 + 0x10" identifier = (binary_expression "param_4 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (if_statement "if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }" if (parenthesized_expression "(param_5 != (uint *)0x0)" ( (binary_expression "param_5 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_5 = uVar6;\n  }" { (expression_statement "*param_5 = uVar6;" (assignment_expression "*param_5 = uVar6" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (return_statement "return;" return ;) })))
(translation_unit "mode_t mode_adjust(mode_t oldmode,_Bool dir,mode_t umask_value,mode_change *changes,\n                  mode_t *pmode_bits)\n\n{\n  mode_t mVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined3 in_register_00000014;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  \n  cVar5 = changes->flag;\n  mVar1 = oldmode & 0xfff;\n  uVar7 = 0;\n  if (cVar5 != '\0') {\n    do {\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    } while (cVar5 != '\0');\n  }\n  if (pmode_bits != (mode_t *)0x0) {\n    *pmode_bits = uVar7;\n  }\n  return mVar1;\n}\n\n" (function_definition "mode_t mode_adjust(mode_t oldmode,_Bool dir,mode_t umask_value,mode_change *changes,\n                  mode_t *pmode_bits)\n\n{\n  mode_t mVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined3 in_register_00000014;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  \n  cVar5 = changes->flag;\n  mVar1 = oldmode & 0xfff;\n  uVar7 = 0;\n  if (cVar5 != '\0') {\n    do {\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    } while (cVar5 != '\0');\n  }\n  if (pmode_bits != (mode_t *)0x0) {\n    *pmode_bits = uVar7;\n  }\n  return mVar1;\n}" type_identifier (function_declarator "mode_adjust(mode_t oldmode,_Bool dir,mode_t umask_value,mode_change *changes,\n                  mode_t *pmode_bits)" identifier (parameter_list "(mode_t oldmode,_Bool dir,mode_t umask_value,mode_change *changes,\n                  mode_t *pmode_bits)" ( (parameter_declaration "mode_t oldmode" type_identifier identifier) , (parameter_declaration "_Bool dir" type_identifier identifier) , (parameter_declaration "mode_t umask_value" type_identifier identifier) , (parameter_declaration "mode_change *changes" type_identifier (pointer_declarator "*changes" * identifier)) , (parameter_declaration "mode_t *pmode_bits" type_identifier (pointer_declarator "*pmode_bits" * identifier)) ))) (compound_statement "{\n  mode_t mVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined3 in_register_00000014;\n  uint uVar4;\n  char cVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  \n  cVar5 = changes->flag;\n  mVar1 = oldmode & 0xfff;\n  uVar7 = 0;\n  if (cVar5 != '\0') {\n    do {\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    } while (cVar5 != '\0');\n  }\n  if (pmode_bits != (mode_t *)0x0) {\n    *pmode_bits = uVar7;\n  }\n  return mVar1;\n}" { (declaration "mode_t mVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined3 in_register_00000014;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (expression_statement "cVar5 = changes->flag;" (assignment_expression "cVar5 = changes->flag" identifier = (field_expression "changes->flag" identifier -> field_identifier)) ;) (expression_statement "mVar1 = oldmode & 0xfff;" (assignment_expression "mVar1 = oldmode & 0xfff" identifier = (binary_expression "oldmode & 0xfff" identifier & number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (cVar5 != '\0') {\n    do {\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    } while (cVar5 != '\0');\n  }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    do {\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    } while (cVar5 != '\0');\n  }" { (do_statement "do {\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    } while (cVar5 != '\0');" do (compound_statement "{\n      uVar3 = changes->affected;\n      uVar2 = changes->value;\n      if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }\n      cVar5 = changes->op;\n      if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }\n      cVar5 = changes[1].flag;\n      changes = changes + 1;\n    }" { (expression_statement "uVar3 = changes->affected;" (assignment_expression "uVar3 = changes->affected" identifier = (field_expression "changes->affected" identifier -> field_identifier)) ;) (expression_statement "uVar2 = changes->value;" (assignment_expression "uVar2 = changes->value" identifier = (field_expression "changes->value" identifier -> field_identifier)) ;) (if_statement "if (CONCAT31(in_register_00000014,dir) == 0) {\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }\n      else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }" if (parenthesized_expression "(CONCAT31(in_register_00000014,dir) == 0)" ( (binary_expression "CONCAT31(in_register_00000014,dir) == 0" (call_expression "CONCAT31(in_register_00000014,dir)" identifier (argument_list "(in_register_00000014,dir)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n        uVar6 = 0;\n        if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }\n      }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (cVar5 == '\x02') {\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }\n        else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }" if (parenthesized_expression "(cVar5 == '\x02')" ( (binary_expression "cVar5 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          uVar6 = mVar1 & 0x49;\n          uVar4 = 0xffffffff;\n          if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }\n        }" { (expression_statement "uVar6 = mVar1 & 0x49;" (assignment_expression "uVar6 = mVar1 & 0x49" identifier = (binary_expression "mVar1 & 0x49" identifier & number_literal)) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (uVar6 != 0) {\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = 0;\n            uVar2 = uVar2 | 0x49;\n          }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = uVar2 | 0x49;" (assignment_expression "uVar2 = uVar2 | 0x49" identifier = (binary_expression "uVar2 | 0x49" identifier | number_literal)) ;) })) }) (else_clause "else {\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }" else (compound_statement "{\n          uVar4 = 0xffffffff;\nLAB_0002f838:\n          uVar8 = 0x124;\n          if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }\n        }" { (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_0002f838:\n          uVar8 = 0x124;" statement_identifier : (expression_statement "uVar8 = 0x124;" (assignment_expression "uVar8 = 0x124" identifier = number_literal) ;)) (if_statement "if (cVar5 == '\x03') {\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }" if (parenthesized_expression "(cVar5 == '\x03')" ( (binary_expression "cVar5 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            uVar2 = mVar1 & uVar2;\n            if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }\n            if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }\n            if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }\n            uVar2 = uVar8 | uVar2;\n          }" { (expression_statement "uVar2 = mVar1 & uVar2;" (assignment_expression "uVar2 = mVar1 & uVar2" identifier = (binary_expression "mVar1 & uVar2" identifier & identifier)) ;) (if_statement "if ((uVar2 & 0x124) == 0) {\n              uVar8 = 0;\n            }" if (parenthesized_expression "((uVar2 & 0x124) == 0)" ( (binary_expression "(uVar2 & 0x124) == 0" (parenthesized_expression "(uVar2 & 0x124)" ( (binary_expression "uVar2 & 0x124" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar8 = 0;\n            }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (if_statement "if ((uVar2 & 0x92) != 0) {\n              uVar8 = uVar8 | 0x92;\n            }" if (parenthesized_expression "((uVar2 & 0x92) != 0)" ( (binary_expression "(uVar2 & 0x92) != 0" (parenthesized_expression "(uVar2 & 0x92)" ( (binary_expression "uVar2 & 0x92" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar8 = uVar8 | 0x92;\n            }" { (expression_statement "uVar8 = uVar8 | 0x92;" (assignment_expression "uVar8 = uVar8 | 0x92" identifier = (binary_expression "uVar8 | 0x92" identifier | number_literal)) ;) })) (if_statement "if ((uVar2 & 0x49) != 0) {\n              uVar8 = uVar8 | 0x49;\n            }" if (parenthesized_expression "((uVar2 & 0x49) != 0)" ( (binary_expression "(uVar2 & 0x49) != 0" (parenthesized_expression "(uVar2 & 0x49)" ( (binary_expression "uVar2 & 0x49" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar8 = uVar8 | 0x49;\n            }" { (expression_statement "uVar8 = uVar8 | 0x49;" (assignment_expression "uVar8 = uVar8 | 0x49" identifier = (binary_expression "uVar8 | 0x49" identifier | number_literal)) ;) })) (expression_statement "uVar2 = uVar8 | uVar2;" (assignment_expression "uVar2 = uVar8 | uVar2" identifier = (binary_expression "uVar8 | uVar2" identifier | identifier)) ;) })) }))) }) (else_clause "else {\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }" else (compound_statement "{\n        uVar6 = ~changes->mentioned & 0xc00;\n        uVar4 = changes->mentioned | 0xfffff3ff;\n        if (cVar5 != '\x02') goto LAB_0002f838;\n        uVar2 = uVar2 | 0x49;\n      }" { (expression_statement "uVar6 = ~changes->mentioned & 0xc00;" (assignment_expression "uVar6 = ~changes->mentioned & 0xc00" identifier = (binary_expression "~changes->mentioned & 0xc00" (unary_expression "~changes->mentioned" ~ (field_expression "changes->mentioned" identifier -> field_identifier)) & number_literal)) ;) (expression_statement "uVar4 = changes->mentioned | 0xfffff3ff;" (assignment_expression "uVar4 = changes->mentioned | 0xfffff3ff" identifier = (binary_expression "changes->mentioned | 0xfffff3ff" (field_expression "changes->mentioned" identifier -> field_identifier) | number_literal)) ;) (if_statement "if (cVar5 != '\x02') goto LAB_0002f838;" if (parenthesized_expression "(cVar5 != '\x02')" ( (binary_expression "cVar5 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002f838;" goto statement_identifier ;)) (expression_statement "uVar2 = uVar2 | 0x49;" (assignment_expression "uVar2 = uVar2 | 0x49" identifier = (binary_expression "uVar2 | 0x49" identifier | number_literal)) ;) }))) (expression_statement "cVar5 = changes->op;" (assignment_expression "cVar5 = changes->op" identifier = (field_expression "changes->op" identifier -> field_identifier)) ;) (if_statement "if (uVar3 == 0) {\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }\n      else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = ~umask_value & uVar2 & uVar4;\n        if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }\n      }" { (expression_statement "uVar2 = ~umask_value & uVar2 & uVar4;" (assignment_expression "uVar2 = ~umask_value & uVar2 & uVar4" identifier = (binary_expression "~umask_value & uVar2 & uVar4" (binary_expression "~umask_value & uVar2" (unary_expression "~umask_value" ~ identifier) & identifier) & identifier)) ;) (if_statement "if (cVar5 == '-') {\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }\n        else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }" if (parenthesized_expression "(cVar5 == '-')" ( (binary_expression "cVar5 == '-'" identifier == (char_literal "'-'" ' character ')) )) (compound_statement "{\nLAB_0002f914:\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 & ~uVar2;\n        }" { (labeled_statement "LAB_0002f914:\n          uVar7 = uVar7 | uVar2;" statement_identifier : (expression_statement "uVar7 = uVar7 | uVar2;" (assignment_expression "uVar7 = uVar7 | uVar2" identifier = (binary_expression "uVar7 | uVar2" identifier | identifier)) ;)) (expression_statement "mVar1 = mVar1 & ~uVar2;" (assignment_expression "mVar1 = mVar1 & ~uVar2" identifier = (binary_expression "mVar1 & ~uVar2" identifier & (unary_expression "~uVar2" ~ identifier))) ;) }) (else_clause "else {\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }" else (compound_statement "{\n          if (cVar5 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;\n          mVar1 = mVar1 & uVar6 | uVar2;\n        }" { (if_statement "if (cVar5 != '=') goto LAB_0002f88c;" if (parenthesized_expression "(cVar5 != '=')" ( (binary_expression "cVar5 != '='" identifier != (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_0002f88c;" goto statement_identifier ;)) (labeled_statement "LAB_0002f8e4:\n          uVar7 = uVar7 | uVar4 & 0xfff;" statement_identifier : (expression_statement "uVar7 = uVar7 | uVar4 & 0xfff;" (assignment_expression "uVar7 = uVar7 | uVar4 & 0xfff" identifier = (binary_expression "uVar7 | uVar4 & 0xfff" identifier | (binary_expression "uVar4 & 0xfff" identifier & number_literal))) ;)) (expression_statement "mVar1 = mVar1 & uVar6 | uVar2;" (assignment_expression "mVar1 = mVar1 & uVar6 | uVar2" identifier = (binary_expression "mVar1 & uVar6 | uVar2" (binary_expression "mVar1 & uVar6" identifier & identifier) | identifier)) ;) }))) }) (else_clause "else {\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }" else (compound_statement "{\n        uVar2 = uVar2 & uVar4 & uVar3;\n        if (cVar5 == '-') goto LAB_0002f914;\n        if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }\n      }" { (expression_statement "uVar2 = uVar2 & uVar4 & uVar3;" (assignment_expression "uVar2 = uVar2 & uVar4 & uVar3" identifier = (binary_expression "uVar2 & uVar4 & uVar3" (binary_expression "uVar2 & uVar4" identifier & identifier) & identifier)) ;) (if_statement "if (cVar5 == '-') goto LAB_0002f914;" if (parenthesized_expression "(cVar5 == '-')" ( (binary_expression "cVar5 == '-'" identifier == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_0002f914;" goto statement_identifier ;)) (if_statement "if (cVar5 == '=') {\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }" if (parenthesized_expression "(cVar5 == '=')" ( (binary_expression "cVar5 == '='" identifier == (char_literal "'='" ' character ')) )) (compound_statement "{\n          uVar6 = uVar6 | ~uVar3;\n          uVar4 = ~uVar6;\n          goto LAB_0002f8e4;\n        }" { (expression_statement "uVar6 = uVar6 | ~uVar3;" (assignment_expression "uVar6 = uVar6 | ~uVar3" identifier = (binary_expression "uVar6 | ~uVar3" identifier | (unary_expression "~uVar3" ~ identifier))) ;) (expression_statement "uVar4 = ~uVar6;" (assignment_expression "uVar4 = ~uVar6" identifier = (unary_expression "~uVar6" ~ identifier)) ;) (goto_statement "goto LAB_0002f8e4;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f88c:\n        if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }" statement_identifier : (if_statement "if (cVar5 == '+') {\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }" if (parenthesized_expression "(cVar5 == '+')" ( (binary_expression "cVar5 == '+'" identifier == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          uVar7 = uVar7 | uVar2;\n          mVar1 = mVar1 | uVar2;\n        }" { (expression_statement "uVar7 = uVar7 | uVar2;" (assignment_expression "uVar7 = uVar7 | uVar2" identifier = (binary_expression "uVar7 | uVar2" identifier | identifier)) ;) (expression_statement "mVar1 = mVar1 | uVar2;" (assignment_expression "mVar1 = mVar1 | uVar2" identifier = (binary_expression "mVar1 | uVar2" identifier | identifier)) ;) }))) }))) (expression_statement "cVar5 = changes[1].flag;" (assignment_expression "cVar5 = changes[1].flag" identifier = (field_expression "changes[1].flag" (subscript_expression "changes[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "changes = changes + 1;" (assignment_expression "changes = changes + 1" identifier = (binary_expression "changes + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (if_statement "if (pmode_bits != (mode_t *)0x0) {\n    *pmode_bits = uVar7;\n  }" if (parenthesized_expression "(pmode_bits != (mode_t *)0x0)" ( (binary_expression "pmode_bits != (mode_t *)0x0" identifier != (cast_expression "(mode_t *)0x0" ( (type_descriptor "mode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *pmode_bits = uVar7;\n  }" { (expression_statement "*pmode_bits = uVar7;" (assignment_expression "*pmode_bits = uVar7" (pointer_expression "*pmode_bits" * identifier) = identifier) ;) })) (return_statement "return mVar1;" return identifier ;) })))
(translation_unit "void mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}\n\n" (function_definition "void mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}" primitive_type (function_declarator "mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)" identifier (parameter_list "(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "cVar4 = param_4[1];" (assignment_expression "cVar4 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "param_1 = param_1 & 0xfff;" (assignment_expression "param_1 = param_1 & 0xfff" identifier = (binary_expression "param_1 & 0xfff" identifier & number_literal)) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }" { (do_statement "do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');" do (compound_statement "{\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    }" { (expression_statement "uVar2 = *(uint *)(param_4 + 4);" (assignment_expression "uVar2 = *(uint *)(param_4 + 4)" identifier = (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_4 + 8);" (assignment_expression "uVar1 = *(uint *)(param_4 + 8)" identifier = (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" if (parenthesized_expression "(cVar4 == '\x02')" ( (binary_expression "cVar4 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }" { (expression_statement "uVar5 = param_1 & 0x49;" (assignment_expression "uVar5 = param_1 & 0x49" identifier = (binary_expression "param_1 & 0x49" identifier & number_literal)) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = uVar1 | 0x49;" (assignment_expression "uVar1 = uVar1 | 0x49" identifier = (binary_expression "uVar1 | 0x49" identifier | number_literal)) ;) })) }) (else_clause "else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" else (compound_statement "{\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" { (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_0002f838:\n          uVar7 = 0x124;" statement_identifier : (expression_statement "uVar7 = 0x124;" (assignment_expression "uVar7 = 0x124" identifier = number_literal) ;)) (if_statement "if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }" if (parenthesized_expression "(cVar4 == '\x03')" ( (binary_expression "cVar4 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }" { (expression_statement "uVar1 = param_1 & uVar1;" (assignment_expression "uVar1 = param_1 & uVar1" identifier = (binary_expression "param_1 & uVar1" identifier & identifier)) ;) (if_statement "if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }" if (parenthesized_expression "((uVar1 & 0x124) == 0)" ( (binary_expression "(uVar1 & 0x124) == 0" (parenthesized_expression "(uVar1 & 0x124)" ( (binary_expression "uVar1 & 0x124" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar7 = 0;\n            }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (if_statement "if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }" if (parenthesized_expression "((uVar1 & 0x92) != 0)" ( (binary_expression "(uVar1 & 0x92) != 0" (parenthesized_expression "(uVar1 & 0x92)" ( (binary_expression "uVar1 & 0x92" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar7 = uVar7 | 0x92;\n            }" { (expression_statement "uVar7 = uVar7 | 0x92;" (assignment_expression "uVar7 = uVar7 | 0x92" identifier = (binary_expression "uVar7 | 0x92" identifier | number_literal)) ;) })) (if_statement "if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }" if (parenthesized_expression "((uVar1 & 0x49) != 0)" ( (binary_expression "(uVar1 & 0x49) != 0" (parenthesized_expression "(uVar1 & 0x49)" ( (binary_expression "uVar1 & 0x49" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar7 = uVar7 | 0x49;\n            }" { (expression_statement "uVar7 = uVar7 | 0x49;" (assignment_expression "uVar7 = uVar7 | 0x49" identifier = (binary_expression "uVar7 | 0x49" identifier | number_literal)) ;) })) (expression_statement "uVar1 = uVar7 | uVar1;" (assignment_expression "uVar1 = uVar7 | uVar1" identifier = (binary_expression "uVar7 | uVar1" identifier | identifier)) ;) })) }))) }) (else_clause "else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" else (compound_statement "{\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" { (expression_statement "uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;" (assignment_expression "uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00" identifier = (binary_expression "~*(uint *)(param_4 + 0xc) & 0xc00" (unary_expression "~*(uint *)(param_4 + 0xc)" ~ (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) ))))) & number_literal)) ;) (expression_statement "uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;" (assignment_expression "uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff" identifier = (binary_expression "*(uint *)(param_4 + 0xc) | 0xfffff3ff" (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (cVar4 != '\x02') goto LAB_0002f838;" if (parenthesized_expression "(cVar4 != '\x02')" ( (binary_expression "cVar4 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002f838;" goto statement_identifier ;)) (expression_statement "uVar1 = uVar1 | 0x49;" (assignment_expression "uVar1 = uVar1 | 0x49" identifier = (binary_expression "uVar1 | 0x49" identifier | number_literal)) ;) }))) (expression_statement "cVar4 = *param_4;" (assignment_expression "cVar4 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }" { (expression_statement "uVar1 = ~param_3 & uVar1 & uVar3;" (assignment_expression "uVar1 = ~param_3 & uVar1 & uVar3" identifier = (binary_expression "~param_3 & uVar1 & uVar3" (binary_expression "~param_3 & uVar1" (unary_expression "~param_3" ~ identifier) & identifier) & identifier)) ;) (if_statement "if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" if (parenthesized_expression "(cVar4 == '-')" ( (binary_expression "cVar4 == '-'" identifier == (char_literal "'-'" ' character ')) )) (compound_statement "{\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }" { (labeled_statement "LAB_0002f914:\n          uVar6 = uVar6 | uVar1;" statement_identifier : (expression_statement "uVar6 = uVar6 | uVar1;" (assignment_expression "uVar6 = uVar6 | uVar1" identifier = (binary_expression "uVar6 | uVar1" identifier | identifier)) ;)) (expression_statement "param_1 = param_1 & ~uVar1;" (assignment_expression "param_1 = param_1 & ~uVar1" identifier = (binary_expression "param_1 & ~uVar1" identifier & (unary_expression "~uVar1" ~ identifier))) ;) }) (else_clause "else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" else (compound_statement "{\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" { (if_statement "if (cVar4 != '=') goto LAB_0002f88c;" if (parenthesized_expression "(cVar4 != '=')" ( (binary_expression "cVar4 != '='" identifier != (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_0002f88c;" goto statement_identifier ;)) (labeled_statement "LAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;" statement_identifier : (expression_statement "uVar6 = uVar6 | uVar3 & 0xfff;" (assignment_expression "uVar6 = uVar6 | uVar3 & 0xfff" identifier = (binary_expression "uVar6 | uVar3 & 0xfff" identifier | (binary_expression "uVar3 & 0xfff" identifier & number_literal))) ;)) (expression_statement "param_1 = param_1 & uVar5 | uVar1;" (assignment_expression "param_1 = param_1 & uVar5 | uVar1" identifier = (binary_expression "param_1 & uVar5 | uVar1" (binary_expression "param_1 & uVar5" identifier & identifier) | identifier)) ;) }))) }) (else_clause "else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" else (compound_statement "{\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" { (expression_statement "uVar1 = uVar1 & uVar3 & uVar2;" (assignment_expression "uVar1 = uVar1 & uVar3 & uVar2" identifier = (binary_expression "uVar1 & uVar3 & uVar2" (binary_expression "uVar1 & uVar3" identifier & identifier) & identifier)) ;) (if_statement "if (cVar4 == '-') goto LAB_0002f914;" if (parenthesized_expression "(cVar4 == '-')" ( (binary_expression "cVar4 == '-'" identifier == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_0002f914;" goto statement_identifier ;)) (if_statement "if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }" if (parenthesized_expression "(cVar4 == '=')" ( (binary_expression "cVar4 == '='" identifier == (char_literal "'='" ' character ')) )) (compound_statement "{\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }" { (expression_statement "uVar5 = uVar5 | ~uVar2;" (assignment_expression "uVar5 = uVar5 | ~uVar2" identifier = (binary_expression "uVar5 | ~uVar2" identifier | (unary_expression "~uVar2" ~ identifier))) ;) (expression_statement "uVar3 = ~uVar5;" (assignment_expression "uVar3 = ~uVar5" identifier = (unary_expression "~uVar5" ~ identifier)) ;) (goto_statement "goto LAB_0002f8e4;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" statement_identifier : (if_statement "if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" if (parenthesized_expression "(cVar4 == '+')" ( (binary_expression "cVar4 == '+'" identifier == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" { (expression_statement "uVar6 = uVar6 | uVar1;" (assignment_expression "uVar6 = uVar6 | uVar1" identifier = (binary_expression "uVar6 | uVar1" identifier | identifier)) ;) (expression_statement "param_1 = param_1 | uVar1;" (assignment_expression "param_1 = param_1 | uVar1" identifier = (binary_expression "param_1 | uVar1" identifier | identifier)) ;) }))) }))) (expression_statement "cVar4 = param_4[0x11];" (assignment_expression "cVar4 = param_4[0x11]" identifier = (subscript_expression "param_4[0x11]" identifier [ number_literal ])) ;) (expression_statement "param_4 = param_4 + 0x10;" (assignment_expression "param_4 = param_4 + 0x10" identifier = (binary_expression "param_4 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (if_statement "if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }" if (parenthesized_expression "(param_5 != (uint *)0x0)" ( (binary_expression "param_5 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_5 = uVar6;\n  }" { (expression_statement "*param_5 = uVar6;" (assignment_expression "*param_5 = uVar6" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (return_statement "return;" return ;) })))
(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 (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (unary_expression ~ IDENT) & IDENT) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ IDENT))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & IDENT) | IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & IDENT) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (unary_expression ~ IDENT))) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) }))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (return_statement return ;) })))
(function_definition "void mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "mode_adjust(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)" (identifier "mode_adjust") (parameter_list "(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  cVar4 = param_4[1];\n  param_1 = param_1 & 0xfff;\n  uVar6 = 0;\n  if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }\n  if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (expression_statement "cVar4 = param_4[1];" (assignment_expression "cVar4 = param_4[1]" (identifier "cVar4") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1 = param_1 & 0xfff;" (assignment_expression "param_1 = param_1 & 0xfff" (identifier "param_1") (= "=") (binary_expression "param_1 & 0xfff" (identifier "param_1") (& "&") (number_literal "0xfff"))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar4 != '\0') {\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');\n  }" ({ "{") (do_statement "do {\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    } while (cVar4 != '\0');" (do "do") (compound_statement "{\n      uVar2 = *(uint *)(param_4 + 4);\n      uVar1 = *(uint *)(param_4 + 8);\n      if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }\n      cVar4 = *param_4;\n      if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }\n      cVar4 = param_4[0x11];\n      param_4 = param_4 + 0x10;\n    }" ({ "{") (expression_statement "uVar2 = *(uint *)(param_4 + 4);" (assignment_expression "uVar2 = *(uint *)(param_4 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_4 + 4)" (* "*") (cast_expression "(uint *)(param_4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_4 + 8);" (assignment_expression "uVar1 = *(uint *)(param_4 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_4 + 8)" (* "*") (cast_expression "(uint *)(param_4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (param_2 == 0) {\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }\n      else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = 0;\n        if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar4 == '\x02') {\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }\n        else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" (if "if") (parenthesized_expression "(cVar4 == '\x02')" (( "(") (binary_expression "cVar4 == '\x02'" (identifier "cVar4") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n          uVar5 = param_1 & 0x49;\n          uVar3 = 0xffffffff;\n          if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }\n        }" ({ "{") (expression_statement "uVar5 = param_1 & 0x49;" (assignment_expression "uVar5 = param_1 & 0x49" (identifier "uVar5") (= "=") (binary_expression "param_1 & 0x49" (identifier "param_1") (& "&") (number_literal "0x49"))) (; ";")) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (uVar5 != 0) {\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar5 = 0;\n            uVar1 = uVar1 | 0x49;\n          }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = uVar1 | 0x49;" (assignment_expression "uVar1 = uVar1 | 0x49" (identifier "uVar1") (= "=") (binary_expression "uVar1 | 0x49" (identifier "uVar1") (| "|") (number_literal "0x49"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" (else "else") (compound_statement "{\n          uVar3 = 0xffffffff;\nLAB_0002f838:\n          uVar7 = 0x124;\n          if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }\n        }" ({ "{") (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (labeled_statement "LAB_0002f838:\n          uVar7 = 0x124;" (statement_identifier "LAB_0002f838") (: ":") (expression_statement "uVar7 = 0x124;" (assignment_expression "uVar7 = 0x124" (identifier "uVar7") (= "=") (number_literal "0x124")) (; ";"))) (if_statement "if (cVar4 == '\x03') {\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }" (if "if") (parenthesized_expression "(cVar4 == '\x03')" (( "(") (binary_expression "cVar4 == '\x03'" (identifier "cVar4") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n            uVar1 = param_1 & uVar1;\n            if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }\n            if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }\n            if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }\n            uVar1 = uVar7 | uVar1;\n          }" ({ "{") (expression_statement "uVar1 = param_1 & uVar1;" (assignment_expression "uVar1 = param_1 & uVar1" (identifier "uVar1") (= "=") (binary_expression "param_1 & uVar1" (identifier "param_1") (& "&") (identifier "uVar1"))) (; ";")) (if_statement "if ((uVar1 & 0x124) == 0) {\n              uVar7 = 0;\n            }" (if "if") (parenthesized_expression "((uVar1 & 0x124) == 0)" (( "(") (binary_expression "(uVar1 & 0x124) == 0" (parenthesized_expression "(uVar1 & 0x124)" (( "(") (binary_expression "uVar1 & 0x124" (identifier "uVar1") (& "&") (number_literal "0x124")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = 0;\n            }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((uVar1 & 0x92) != 0) {\n              uVar7 = uVar7 | 0x92;\n            }" (if "if") (parenthesized_expression "((uVar1 & 0x92) != 0)" (( "(") (binary_expression "(uVar1 & 0x92) != 0" (parenthesized_expression "(uVar1 & 0x92)" (( "(") (binary_expression "uVar1 & 0x92" (identifier "uVar1") (& "&") (number_literal "0x92")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = uVar7 | 0x92;\n            }" ({ "{") (expression_statement "uVar7 = uVar7 | 0x92;" (assignment_expression "uVar7 = uVar7 | 0x92" (identifier "uVar7") (= "=") (binary_expression "uVar7 | 0x92" (identifier "uVar7") (| "|") (number_literal "0x92"))) (; ";")) (} "}"))) (if_statement "if ((uVar1 & 0x49) != 0) {\n              uVar7 = uVar7 | 0x49;\n            }" (if "if") (parenthesized_expression "((uVar1 & 0x49) != 0)" (( "(") (binary_expression "(uVar1 & 0x49) != 0" (parenthesized_expression "(uVar1 & 0x49)" (( "(") (binary_expression "uVar1 & 0x49" (identifier "uVar1") (& "&") (number_literal "0x49")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = uVar7 | 0x49;\n            }" ({ "{") (expression_statement "uVar7 = uVar7 | 0x49;" (assignment_expression "uVar7 = uVar7 | 0x49" (identifier "uVar7") (= "=") (binary_expression "uVar7 | 0x49" (identifier "uVar7") (| "|") (number_literal "0x49"))) (; ";")) (} "}"))) (expression_statement "uVar1 = uVar7 | uVar1;" (assignment_expression "uVar1 = uVar7 | uVar1" (identifier "uVar1") (= "=") (binary_expression "uVar7 | uVar1" (identifier "uVar7") (| "|") (identifier "uVar1"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" (else "else") (compound_statement "{\n        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;\n        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;\n        if (cVar4 != '\x02') goto LAB_0002f838;\n        uVar1 = uVar1 | 0x49;\n      }" ({ "{") (expression_statement "uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;" (assignment_expression "uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00" (identifier "uVar5") (= "=") (binary_expression "~*(uint *)(param_4 + 0xc) & 0xc00" (unary_expression "~*(uint *)(param_4 + 0xc)" (~ "~") (pointer_expression "*(uint *)(param_4 + 0xc)" (* "*") (cast_expression "(uint *)(param_4 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")"))))) (& "&") (number_literal "0xc00"))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;" (assignment_expression "uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(param_4 + 0xc) | 0xfffff3ff" (pointer_expression "*(uint *)(param_4 + 0xc)" (* "*") (cast_expression "(uint *)(param_4 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")")))) (| "|") (number_literal "0xfffff3ff"))) (; ";")) (if_statement "if (cVar4 != '\x02') goto LAB_0002f838;" (if "if") (parenthesized_expression "(cVar4 != '\x02')" (( "(") (binary_expression "cVar4 != '\x02'" (identifier "cVar4") (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto LAB_0002f838;" (goto "goto") (statement_identifier "LAB_0002f838") (; ";"))) (expression_statement "uVar1 = uVar1 | 0x49;" (assignment_expression "uVar1 = uVar1 | 0x49" (identifier "uVar1") (= "=") (binary_expression "uVar1 | 0x49" (identifier "uVar1") (| "|") (number_literal "0x49"))) (; ";")) (} "}")))) (expression_statement "cVar4 = *param_4;" (assignment_expression "cVar4 = *param_4" (identifier "cVar4") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (if_statement "if (uVar2 == 0) {\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }\n      else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar1 = ~param_3 & uVar1 & uVar3;\n        if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }\n      }" ({ "{") (expression_statement "uVar1 = ~param_3 & uVar1 & uVar3;" (assignment_expression "uVar1 = ~param_3 & uVar1 & uVar3" (identifier "uVar1") (= "=") (binary_expression "~param_3 & uVar1 & uVar3" (binary_expression "~param_3 & uVar1" (unary_expression "~param_3" (~ "~") (identifier "param_3")) (& "&") (identifier "uVar1")) (& "&") (identifier "uVar3"))) (; ";")) (if_statement "if (cVar4 == '-') {\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }\n        else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" (if "if") (parenthesized_expression "(cVar4 == '-')" (( "(") (binary_expression "cVar4 == '-'" (identifier "cVar4") (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\nLAB_0002f914:\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 & ~uVar1;\n        }" ({ "{") (labeled_statement "LAB_0002f914:\n          uVar6 = uVar6 | uVar1;" (statement_identifier "LAB_0002f914") (: ":") (expression_statement "uVar6 = uVar6 | uVar1;" (assignment_expression "uVar6 = uVar6 | uVar1" (identifier "uVar6") (= "=") (binary_expression "uVar6 | uVar1" (identifier "uVar6") (| "|") (identifier "uVar1"))) (; ";"))) (expression_statement "param_1 = param_1 & ~uVar1;" (assignment_expression "param_1 = param_1 & ~uVar1" (identifier "param_1") (= "=") (binary_expression "param_1 & ~uVar1" (identifier "param_1") (& "&") (unary_expression "~uVar1" (~ "~") (identifier "uVar1")))) (; ";")) (} "}")) (else_clause "else {\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" (else "else") (compound_statement "{\n          if (cVar4 != '=') goto LAB_0002f88c;\nLAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;\n          param_1 = param_1 & uVar5 | uVar1;\n        }" ({ "{") (if_statement "if (cVar4 != '=') goto LAB_0002f88c;" (if "if") (parenthesized_expression "(cVar4 != '=')" (( "(") (binary_expression "cVar4 != '='" (identifier "cVar4") (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (goto_statement "goto LAB_0002f88c;" (goto "goto") (statement_identifier "LAB_0002f88c") (; ";"))) (labeled_statement "LAB_0002f8e4:\n          uVar6 = uVar6 | uVar3 & 0xfff;" (statement_identifier "LAB_0002f8e4") (: ":") (expression_statement "uVar6 = uVar6 | uVar3 & 0xfff;" (assignment_expression "uVar6 = uVar6 | uVar3 & 0xfff" (identifier "uVar6") (= "=") (binary_expression "uVar6 | uVar3 & 0xfff" (identifier "uVar6") (| "|") (binary_expression "uVar3 & 0xfff" (identifier "uVar3") (& "&") (number_literal "0xfff")))) (; ";"))) (expression_statement "param_1 = param_1 & uVar5 | uVar1;" (assignment_expression "param_1 = param_1 & uVar5 | uVar1" (identifier "param_1") (= "=") (binary_expression "param_1 & uVar5 | uVar1" (binary_expression "param_1 & uVar5" (identifier "param_1") (& "&") (identifier "uVar5")) (| "|") (identifier "uVar1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" (else "else") (compound_statement "{\n        uVar1 = uVar1 & uVar3 & uVar2;\n        if (cVar4 == '-') goto LAB_0002f914;\n        if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }\nLAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }\n      }" ({ "{") (expression_statement "uVar1 = uVar1 & uVar3 & uVar2;" (assignment_expression "uVar1 = uVar1 & uVar3 & uVar2" (identifier "uVar1") (= "=") (binary_expression "uVar1 & uVar3 & uVar2" (binary_expression "uVar1 & uVar3" (identifier "uVar1") (& "&") (identifier "uVar3")) (& "&") (identifier "uVar2"))) (; ";")) (if_statement "if (cVar4 == '-') goto LAB_0002f914;" (if "if") (parenthesized_expression "(cVar4 == '-')" (( "(") (binary_expression "cVar4 == '-'" (identifier "cVar4") (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto LAB_0002f914;" (goto "goto") (statement_identifier "LAB_0002f914") (; ";"))) (if_statement "if (cVar4 == '=') {\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }" (if "if") (parenthesized_expression "(cVar4 == '=')" (( "(") (binary_expression "cVar4 == '='" (identifier "cVar4") (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (compound_statement "{\n          uVar5 = uVar5 | ~uVar2;\n          uVar3 = ~uVar5;\n          goto LAB_0002f8e4;\n        }" ({ "{") (expression_statement "uVar5 = uVar5 | ~uVar2;" (assignment_expression "uVar5 = uVar5 | ~uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar5 | ~uVar2" (identifier "uVar5") (| "|") (unary_expression "~uVar2" (~ "~") (identifier "uVar2")))) (; ";")) (expression_statement "uVar3 = ~uVar5;" (assignment_expression "uVar3 = ~uVar5" (identifier "uVar3") (= "=") (unary_expression "~uVar5" (~ "~") (identifier "uVar5"))) (; ";")) (goto_statement "goto LAB_0002f8e4;" (goto "goto") (statement_identifier "LAB_0002f8e4") (; ";")) (} "}"))) (labeled_statement "LAB_0002f88c:\n        if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" (statement_identifier "LAB_0002f88c") (: ":") (if_statement "if (cVar4 == '+') {\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" (if "if") (parenthesized_expression "(cVar4 == '+')" (( "(") (binary_expression "cVar4 == '+'" (identifier "cVar4") (== "==") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")")) (compound_statement "{\n          uVar6 = uVar6 | uVar1;\n          param_1 = param_1 | uVar1;\n        }" ({ "{") (expression_statement "uVar6 = uVar6 | uVar1;" (assignment_expression "uVar6 = uVar6 | uVar1" (identifier "uVar6") (= "=") (binary_expression "uVar6 | uVar1" (identifier "uVar6") (| "|") (identifier "uVar1"))) (; ";")) (expression_statement "param_1 = param_1 | uVar1;" (assignment_expression "param_1 = param_1 | uVar1" (identifier "param_1") (= "=") (binary_expression "param_1 | uVar1" (identifier "param_1") (| "|") (identifier "uVar1"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "cVar4 = param_4[0x11];" (assignment_expression "cVar4 = param_4[0x11]" (identifier "cVar4") (= "=") (subscript_expression "param_4[0x11]" (identifier "param_4") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "param_4 = param_4 + 0x10;" (assignment_expression "param_4 = param_4 + 0x10" (identifier "param_4") (= "=") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (if_statement "if (param_5 != (uint *)0x0) {\n    *param_5 = uVar6;\n  }" (if "if") (parenthesized_expression "(param_5 != (uint *)0x0)" (( "(") (binary_expression "param_5 != (uint *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_5 = uVar6;\n  }" ({ "{") (expression_statement "*param_5 = uVar6;" (assignment_expression "*param_5 = uVar6" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (identifier)) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (return_statement))))

void MASKED(uint param_1,int param_2,uint param_3,char *param_4,uint *param_5)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  char cVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  
  cVar4 = param_4[1];
  param_1 = param_1 & 0xfff;
  uVar6 = 0;
  if (cVar4 != '\0') {
    do {
      uVar2 = *(uint *)(param_4 + 4);
      uVar1 = *(uint *)(param_4 + 8);
      if (param_2 == 0) {
        uVar5 = 0;
        if (cVar4 == '\x02') {
          uVar5 = param_1 & 0x49;
          uVar3 = 0xffffffff;
          if (uVar5 != 0) {
            uVar5 = 0;
            uVar1 = uVar1 | 0x49;
          }
        }
        else {
          uVar3 = 0xffffffff;
LAB_0002f838:
          uVar7 = 0x124;
          if (cVar4 == '\x03') {
            uVar1 = param_1 & uVar1;
            if ((uVar1 & 0x124) == 0) {
              uVar7 = 0;
            }
            if ((uVar1 & 0x92) != 0) {
              uVar7 = uVar7 | 0x92;
            }
            if ((uVar1 & 0x49) != 0) {
              uVar7 = uVar7 | 0x49;
            }
            uVar1 = uVar7 | uVar1;
          }
        }
      }
      else {
        uVar5 = ~*(uint *)(param_4 + 0xc) & 0xc00;
        uVar3 = *(uint *)(param_4 + 0xc) | 0xfffff3ff;
        if (cVar4 != '\x02') goto LAB_0002f838;
        uVar1 = uVar1 | 0x49;
      }
      cVar4 = *param_4;
      if (uVar2 == 0) {
        uVar1 = ~param_3 & uVar1 & uVar3;
        if (cVar4 == '-') {
LAB_0002f914:
          uVar6 = uVar6 | uVar1;
          param_1 = param_1 & ~uVar1;
        }
        else {
          if (cVar4 != '=') goto LAB_0002f88c;
LAB_0002f8e4:
          uVar6 = uVar6 | uVar3 & 0xfff;
          param_1 = param_1 & uVar5 | uVar1;
        }
      }
      else {
        uVar1 = uVar1 & uVar3 & uVar2;
        if (cVar4 == '-') goto LAB_0002f914;
        if (cVar4 == '=') {
          uVar5 = uVar5 | ~uVar2;
          uVar3 = ~uVar5;
          goto LAB_0002f8e4;
        }
LAB_0002f88c:
        if (cVar4 == '+') {
          uVar6 = uVar6 | uVar1;
          param_1 = param_1 | uVar1;
        }
      }
      cVar4 = param_4[0x11];
      param_4 = param_4 + 0x10;
    } while (cVar4 != '\0');
  }
  if (param_5 != (uint *)0x0) {
    *param_5 = uVar6;
  }
  return;
}

