
void opt_shift(int type,char *s)

{
  char *pcVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  long lVar5;
  int iVar6;
  undefined *puVar7;
  char *local_34;
  PARG parg;
  char cStack_25;
  char buf [16];
  
  puVar7 = PTR___stack_chk_guard_0004f374;
  iVar6 = *(int *)PTR___stack_chk_guard_0004f374;
  local_34 = s;
  if (type == 1) {
    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {
      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;
      error(PTR_DAT_0004ece4 + -0x507c,&parg);
    }
    else {
      (*(code *)PTR___sprintf_chk_0004f26c)
                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);
      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);
      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {
        pcVar3 = buf + (int)pcVar2;
        do {
          pcVar2 = pcVar3 + ~(uint)buf;
          if (pcVar3 == buf + 3) break;
          pcVar1 = pcVar3 + -2;
          pcVar3 = pcVar3 + -1;
        } while (*pcVar1 == '0');
      }
      buf[(int)pcVar2] = '\0';
      parg.p_string = buf;
      error(PTR_DAT_0004ece4 + -0x5060,&parg);
    }
  }
  else if ((type == 2) || (type == 0)) {
    if (*s == '.') {
      local_34 = s + 1;
      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);
      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;
      if (parg.p_string == (char *)0x0) {
        if (-1 < lVar5) {
          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;
        }
      }
      else {
        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);
      }
    }
    else {
      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);
      if (parg.p_string == (char *)0x0) {
        *(int *)PTR_shift_count_0004ef28 = iVar4;
        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;
      }
      else {
        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);
      }
    }
  }
  if (iVar6 != *(int *)puVar7) {
    puVar7 = PTR___stack_chk_fail_0004f354;
    (*(code *)PTR___stack_chk_fail_0004f354)();
    if (-1 < **(int **)(puVar7 + 0x23300)) {
      **(int **)(puVar7 + 0x230a0) =
           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;
    }
    return;
  }
  return;
}



void FUN_0002bc44(int param_1,char *param_2)

{
  char *pcVar1;
  char *pcVar2;
  char *pcVar3;
  undefined4 uVar4;
  int iVar5;
  char *pcVar6;
  undefined *puVar7;
  char *local_34;
  char *local_30 [2];
  char acStack_25 [17];
  int local_14;
  
  puVar7 = PTR___stack_chk_guard_0004f374;
  local_14 = *(int *)PTR___stack_chk_guard_0004f374;
  local_34 = param_2;
  if (param_1 == 1) {
    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {
      local_30[0] = *(char **)PTR_shift_count_0004ef28;
      error(PTR_DAT_0004ece4 + -0x507c,local_30);
    }
    else {
      pcVar6 = acStack_25 + 1;
      (*(code *)PTR___sprintf_chk_0004f26c)
                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)
      ;
      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);
      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {
        pcVar3 = pcVar6 + (int)pcVar2;
        do {
          pcVar2 = pcVar3 + ~(uint)pcVar6;
          if (pcVar3 == acStack_25 + 4) break;
          pcVar1 = pcVar3 + -2;
          pcVar3 = pcVar3 + -1;
        } while (*pcVar1 == '0');
      }
      (acStack_25 + 1)[(int)pcVar2] = '\0';
      local_30[0] = pcVar6;
      error(PTR_DAT_0004ece4 + -0x5060,local_30);
    }
  }
  else if ((param_1 == 2) || (param_1 == 0)) {
    if (*param_2 == '.') {
      local_34 = param_2 + 1;
      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);
      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;
      if (local_30[0] == (char *)0x0) {
        if (-1 < iVar5) {
          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;
        }
      }
      else {
        error(PTR_DAT_0004ece4 + -0x50ac,0);
      }
    }
    else {
      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);
      if (local_30[0] == (char *)0x0) {
        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;
        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;
      }
      else {
        error(PTR_DAT_0004ece4 + -0x5094,0);
      }
    }
  }
  if (local_14 != *(int *)puVar7) {
    puVar7 = PTR___stack_chk_fail_0004f354;
    (*(code *)PTR___stack_chk_fail_0004f354)();
    if (-1 < **(int **)(puVar7 + 0x23300)) {
      **(int **)(puVar7 + 0x230a0) =
           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;
    }
    return;
  }
  return;
}


lui gp,0x3
addiu gp,gp,-0x5074
addu gp,gp,t9
addiu sp,sp,-0x58
li v0,0x1
sw s0,0x4c(sp)
lw s0,-0x785c(gp)
sw gp,0x18(sp)
sw ra,0x54(sp)
sw s1,0x50(sp)
sw a1,0x24(sp)
lw v1,0x0(s0)
sw v1,0x44(sp)
beq a0,v0,0x0002bcb0
_li v0,0x2
beq a0,v0,0x0002bd6c
_lw v0,0x24(sp)
beq a0,zero,0x0002bd70
_li v1,0x2e
lw v1,0x44(sp)
lw v0,0x0(s0)
bne v1,v0,0x0002be7c
_lw ra,0x54(sp)
lw s1,0x50(sp)
lw s0,0x4c(sp)
jr ra
_addiu sp,sp,0x58
lw v0,-0x7a48(gp)
lw v0,0x0(v0)
bltz v0,0x0002bdb4
_lw a3,-0x7eec(gp)
addiu s1,sp,0x34
lw t9,-0x7964(gp)
li a2,0x10
li a1,0x1
sw v0,0x10(sp)
addiu a3,a3,-0x50e0
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
lw t9,-0x78c4(gp)
jalr t9
_or a0,s1,zero
sltiu v1,v0,0x3
lw gp,0x18(sp)
bne v1,zero,0x0002bd40
_or a0,v0,zero
addiu v1,sp,0x48
li a1,0x30
addu v1,v1,v0
lb v1,-0x15(v1)
bne v1,a1,0x0002bd40
_addu v0,s1,v0
addiu a2,sp,0x37
nor a1,zero,s1
b 0x0002bd38
_li a3,0x30
addiu v0,v0,-0x1
lb v1,-0x1(v0)
bne v1,a3,0x0002bd40
_nop
bne v0,a2,0x0002bd28
_addu a0,a1,v0
addiu v0,sp,0x48
lw t9,-0x7f9c(gp)
addiu a1,sp,0x28
sw s1,0x28(sp)
addu v0,v0,a0
lw a0,-0x7eec(gp)
addiu a0,a0,-0x5060
bal 0x0002ea34
_sb zero,-0x14(v0)
b 0x0002bc90
_lw gp,0x18(sp)
li v1,0x2e
lb a0,0x0(v0)
beq a0,v1,0x0002bdf8
_addiu a2,sp,0x28
lw a1,-0x7eec(gp)
lw t9,-0x7a4c(gp)
addiu a0,sp,0x24
bal 0x0002cd88
_addiu a1,a1,-0x50b0
lw v1,0x28(sp)
bne v1,zero,0x0002bddc
_lw gp,0x18(sp)
lw v1,-0x7ca8(gp)
sw v0,0x0(v1)
li v1,-0x1
lw v0,-0x7a48(gp)
b 0x0002bc90
_sw v1,0x0(v0)
lw v0,-0x7ca8(gp)
addiu a1,sp,0x28
lw a0,-0x7eec(gp)
lw t9,-0x7f9c(gp)
lw v0,0x0(v0)
addiu a0,a0,-0x507c
bal 0x0002ea34
_sw v0,0x28(sp)
b 0x0002bc90
_lw gp,0x18(sp)
lw a0,-0x7eec(gp)
or a1,zero,zero
lw t9,-0x7f9c(gp)
bal 0x0002ea34
_addiu a0,a0,-0x5094
b 0x0002bc90
_lw gp,0x18(sp)
lw a1,-0x7eec(gp)
addiu v0,v0,0x1
lw t9,-0x7d64(gp)
addiu a0,sp,0x24
sw v0,0x24(sp)
bal 0x0002d940
_addiu a1,a1,-0x50b0
lw gp,0x18(sp)
lw v1,0x28(sp)
lw a0,-0x7a48(gp)
bne v1,zero,0x0002be60
_sw v0,0x0(a0)
bltz v0,0x0002bc90
_lw v1,-0x7ec8(gp)
lw v1,0x0(v1)
mul v0,v0,v1
lui v1,0x431b
ori v1,v1,0xde83
mult v0,v1
sra v0,v0,0x1f
mfhi v1
sra v1,v1,0x12
subu v0,v1,v0
lw v1,-0x7ca8(gp)
b 0x0002bc90
_sw v0,0x0(v1)
lw a0,-0x7eec(gp)
or a1,zero,zero
lw t9,-0x7f9c(gp)
bal 0x0002ea34
_addiu a0,a0,-0x50ac
b 0x0002bc90
_lw gp,0x18(sp)
lw t9,-0x787c(gp)
jalr t9
_nop
(translation_unit "void FUN_0002bc44(int param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0002bc44(int param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0002bc44(int param_1,char *param_2)" identifier (parameter_list "(int param_1,char *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "char *local_30 [2];" primitive_type (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (declaration "char acStack_25 [17];" primitive_type (array_declarator "acStack_25 [17]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar7 = PTR___stack_chk_guard_0004f374;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0004f374" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0004f374;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0004f374" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004f374" * (cast_expression "(int *)PTR___stack_chk_guard_0004f374" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_34 = param_2;" (assignment_expression "local_34 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }" { (if_statement "if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" if (parenthesized_expression "(*(int *)PTR_shift_count_fraction_0004f188 < 0)" ( (binary_expression "*(int *)PTR_shift_count_fraction_0004f188 < 0" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }" { (expression_statement "local_30[0] = *(char **)PTR_shift_count_0004ef28;" (assignment_expression "local_30[0] = *(char **)PTR_shift_count_0004ef28" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)PTR_shift_count_0004ef28" * (cast_expression "(char **)PTR_shift_count_0004ef28" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "error(PTR_DAT_0004ece4 + -0x507c,local_30);" (call_expression "error(PTR_DAT_0004ece4 + -0x507c,local_30)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x507c,local_30)" ( (binary_expression "PTR_DAT_0004ece4 + -0x507c" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" else (compound_statement "{\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" { (expression_statement "pcVar6 = acStack_25 + 1;" (assignment_expression "pcVar6 = acStack_25 + 1" identifier = (binary_expression "acStack_25 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;" (call_expression "(*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0004f26c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0004f26c" * (cast_expression "(code *)PTR___sprintf_chk_0004f26c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" ( identifier , number_literal , number_literal , (binary_expression "PTR_DAT_0004ece4 + -0x50e0" identifier + number_literal) , (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6)" identifier = (cast_expression "(char *)(*(code *)PTR_strlen_0004f30c)(pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0004f30c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" ( (pointer_expression "*(code *)PTR_strlen_0004f30c" * (cast_expression "(code *)PTR_strlen_0004f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier ))))) ;) (if_statement "if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" if (parenthesized_expression "(((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0'))" ( (binary_expression "((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')" (parenthesized_expression "((char *)0x2 < pcVar2)" ( (binary_expression "(char *)0x2 < pcVar2" (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) && (parenthesized_expression "(acStack_25[(int)pcVar2] == '0')" ( (binary_expression "acStack_25[(int)pcVar2] == '0'" (subscript_expression "acStack_25[(int)pcVar2]" identifier [ (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" { (expression_statement "pcVar3 = pcVar6 + (int)pcVar2;" (assignment_expression "pcVar3 = pcVar6 + (int)pcVar2" identifier = (binary_expression "pcVar6 + (int)pcVar2" identifier + (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');" do (compound_statement "{\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        }" { (expression_statement "pcVar2 = pcVar3 + ~(uint)pcVar6;" (assignment_expression "pcVar2 = pcVar3 + ~(uint)pcVar6" identifier = (binary_expression "pcVar3 + ~(uint)pcVar6" identifier + (unary_expression "~(uint)pcVar6" ~ (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if (pcVar3 == acStack_25 + 4) break;" if (parenthesized_expression "(pcVar3 == acStack_25 + 4)" ( (binary_expression "pcVar3 == acStack_25 + 4" identifier == (binary_expression "acStack_25 + 4" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pcVar1 = pcVar3 + -2;" (assignment_expression "pcVar1 = pcVar3 + -2" identifier = (binary_expression "pcVar3 + -2" identifier + number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + -1;" (assignment_expression "pcVar3 = pcVar3 + -1" identifier = (binary_expression "pcVar3 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar1 == '0')" ( (binary_expression "*pcVar1 == '0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'0'" ' character ')) )) ;) })) (expression_statement "(acStack_25 + 1)[(int)pcVar2] = '\0';" (assignment_expression "(acStack_25 + 1)[(int)pcVar2] = '\0'" (subscript_expression "(acStack_25 + 1)[(int)pcVar2]" (parenthesized_expression "(acStack_25 + 1)" ( (binary_expression "acStack_25 + 1" identifier + number_literal) )) [ (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_30[0] = pcVar6;" (assignment_expression "local_30[0] = pcVar6" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "error(PTR_DAT_0004ece4 + -0x5060,local_30);" (call_expression "error(PTR_DAT_0004ece4 + -0x5060,local_30)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x5060,local_30)" ( (binary_expression "PTR_DAT_0004ece4 + -0x5060" identifier + number_literal) , identifier ))) ;) }))) }) (else_clause "else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" else (if_statement "if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" if (parenthesized_expression "((param_1 == 2) || (param_1 == 0))" ( (binary_expression "(param_1 == 2) || (param_1 == 0)" (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) || (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" { (if_statement "if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" if (parenthesized_expression "(*param_2 == '.')" ( (binary_expression "*param_2 == '.'" (pointer_expression "*param_2" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }" { (expression_statement "local_34 = param_2 + 1;" (assignment_expression "local_34 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);" (assignment_expression "iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" identifier = (call_expression "getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" identifier (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" ( (pointer_expression "&local_34" & identifier) , (binary_expression "PTR_DAT_0004ece4 + -0x50b0" identifier + number_literal) , identifier )))) ;) (expression_statement "*(int *)PTR_shift_count_fraction_0004f188 = iVar5;" (assignment_expression "*(int *)PTR_shift_count_fraction_0004f188 = iVar5" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" if (parenthesized_expression "(local_30[0] == (char *)0x0)" ( (binary_expression "local_30[0] == (char *)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }" { (if_statement "if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" { (expression_statement "*(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;" (assignment_expression "*(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (pointer_expression "*(int *)PTR_shift_count_0004ef28" * (cast_expression "(int *)PTR_shift_count_0004ef28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (parenthesized_expression "(iVar5 * *(int *)PTR_sc_width_0004ed08)" ( (binary_expression "iVar5 * *(int *)PTR_sc_width_0004ed08" identifier * (pointer_expression "*(int *)PTR_sc_width_0004ed08" * (cast_expression "(int *)PTR_sc_width_0004ed08" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) / number_literal)) ;) })) }) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" else (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" { (expression_statement "error(PTR_DAT_0004ece4 + -0x50ac,0);" (call_expression "error(PTR_DAT_0004ece4 + -0x50ac,0)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x50ac,0)" ( (binary_expression "PTR_DAT_0004ece4 + -0x50ac" identifier + number_literal) , number_literal ))) ;) }))) }) (else_clause "else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" else (compound_statement "{\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" { (expression_statement "uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);" (assignment_expression "uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0)" identifier = (call_expression "getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0)" identifier (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0)" ( (pointer_expression "&local_34" & identifier) , (binary_expression "PTR_DAT_0004ece4 + -0x50b0" identifier + number_literal) )))) ;) (if_statement "if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" if (parenthesized_expression "(local_30[0] == (char *)0x0)" ( (binary_expression "local_30[0] == (char *)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }" { (expression_statement "*(undefined4 *)PTR_shift_count_0004ef28 = uVar4;" (assignment_expression "*(undefined4 *)PTR_shift_count_0004ef28 = uVar4" (pointer_expression "*(undefined4 *)PTR_shift_count_0004ef28" * (cast_expression "(undefined4 *)PTR_shift_count_0004ef28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188" * (cast_expression "(undefined4 *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" else (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" { (expression_statement "error(PTR_DAT_0004ece4 + -0x5094,0);" (call_expression "error(PTR_DAT_0004ece4 + -0x5094,0)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x5094,0)" ( (binary_expression "PTR_DAT_0004ece4 + -0x5094" identifier + number_literal) , number_literal ))) ;) }))) }))) })))) (if_statement "if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" if (parenthesized_expression "(local_14 != *(int *)puVar7)" ( (binary_expression "local_14 != *(int *)puVar7" identifier != (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" { (expression_statement "puVar7 = PTR___stack_chk_fail_0004f354;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0004f354" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004f354)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004f354)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004f354)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004f354" * (cast_expression "(code *)PTR___stack_chk_fail_0004f354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" if (parenthesized_expression "(-1 < **(int **)(puVar7 + 0x23300))" ( (binary_expression "-1 < **(int **)(puVar7 + 0x23300)" number_literal < (pointer_expression "**(int **)(puVar7 + 0x23300)" * (pointer_expression "*(int **)(puVar7 + 0x23300)" * (cast_expression "(int **)(puVar7 + 0x23300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x23300)" ( (binary_expression "puVar7 + 0x23300" identifier + number_literal) )))))) )) (compound_statement "{\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" { (expression_statement "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;" (assignment_expression "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (pointer_expression "**(int **)(puVar7 + 0x230a0)" * (pointer_expression "*(int **)(puVar7 + 0x230a0)" * (cast_expression "(int **)(puVar7 + 0x230a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x230a0)" ( (binary_expression "puVar7 + 0x230a0" identifier + number_literal) ))))) = (binary_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (parenthesized_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80))" ( (binary_expression "**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)" (pointer_expression "**(int **)(puVar7 + 0x23300)" * (pointer_expression "*(int **)(puVar7 + 0x23300)" * (cast_expression "(int **)(puVar7 + 0x23300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x23300)" ( (binary_expression "puVar7 + 0x23300" identifier + number_literal) ))))) * (pointer_expression "**(int **)(puVar7 + 0x22e80)" * (pointer_expression "*(int **)(puVar7 + 0x22e80)" * (cast_expression "(int **)(puVar7 + 0x22e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x22e80)" ( (binary_expression "puVar7 + 0x22e80" identifier + number_literal) )))))) )) / number_literal)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void opt_shift(int type,char *s)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  long lVar5;\n  int iVar6;\n  undefined *puVar7;\n  char *local_34;\n  PARG parg;\n  char cStack_25;\n  char buf [16];\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  iVar6 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = s;\n  if (type == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }\n  }\n  else if ((type == 2) || (type == 0)) {\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }\n  if (iVar6 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void opt_shift(int type,char *s)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  long lVar5;\n  int iVar6;\n  undefined *puVar7;\n  char *local_34;\n  PARG parg;\n  char cStack_25;\n  char buf [16];\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  iVar6 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = s;\n  if (type == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }\n  }\n  else if ((type == 2) || (type == 0)) {\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }\n  if (iVar6 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "opt_shift(int type,char *s)" identifier (parameter_list "(int type,char *s)" ( (parameter_declaration "int type" primitive_type identifier) , (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  long lVar5;\n  int iVar6;\n  undefined *puVar7;\n  char *local_34;\n  PARG parg;\n  char cStack_25;\n  char buf [16];\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  iVar6 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = s;\n  if (type == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }\n  }\n  else if ((type == 2) || (type == 0)) {\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }\n  if (iVar6 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "PARG parg;" type_identifier identifier ;) (declaration "char cStack_25;" primitive_type identifier ;) (declaration "char buf [16];" primitive_type (array_declarator "buf [16]" identifier [ number_literal ]) ;) (expression_statement "puVar7 = PTR___stack_chk_guard_0004f374;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0004f374" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_0004f374;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_0004f374" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004f374" * (cast_expression "(int *)PTR___stack_chk_guard_0004f374" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_34 = s;" (assignment_expression "local_34 = s" identifier = identifier) ;) (if_statement "if (type == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }\n  }\n  else if ((type == 2) || (type == 0)) {\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }" if (parenthesized_expression "(type == 1)" ( (binary_expression "type == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }\n  }" { (if_statement "if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }\n    else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }" if (parenthesized_expression "(*(int *)PTR_shift_count_fraction_0004f188 < 0)" ( (binary_expression "*(int *)PTR_shift_count_fraction_0004f188 < 0" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n      parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,&parg);\n    }" { (expression_statement "parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28;" (assignment_expression "parg.p_string = (char *)*(undefined4 *)PTR_shift_count_0004ef28" (field_expression "parg.p_string" identifier . field_identifier) = (cast_expression "(char *)*(undefined4 *)PTR_shift_count_0004ef28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(undefined4 *)PTR_shift_count_0004ef28" * (cast_expression "(undefined4 *)PTR_shift_count_0004ef28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "error(PTR_DAT_0004ece4 + -0x507c,&parg);" (call_expression "error(PTR_DAT_0004ece4 + -0x507c,&parg)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x507c,&parg)" ( (binary_expression "PTR_DAT_0004ece4 + -0x507c" identifier + number_literal) , (pointer_expression "&parg" & identifier) ))) ;) }) (else_clause "else {\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }" else (compound_statement "{\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);\n      if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      buf[(int)pcVar2] = '\0';\n      parg.p_string = buf;\n      error(PTR_DAT_0004ece4 + -0x5060,&parg);\n    }" { (expression_statement "(*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188);" (call_expression "(*(code *)PTR___sprintf_chk_0004f26c)\n                (buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0004f26c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0004f26c" * (cast_expression "(code *)PTR___sprintf_chk_0004f26c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buf,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" ( identifier , number_literal , number_literal , (binary_expression "PTR_DAT_0004ece4 + -0x50e0" identifier + number_literal) , (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf);" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(buf)" identifier = (cast_expression "(char *)(*(code *)PTR_strlen_0004f30c)(buf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0004f30c)(buf)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" ( (pointer_expression "*(code *)PTR_strlen_0004f30c" * (cast_expression "(code *)PTR_strlen_0004f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buf)" ( identifier ))))) ;) (if_statement "if (((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')) {\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" if (parenthesized_expression "(((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0'))" ( (binary_expression "((char *)0x2 < pcVar2) && ((&cStack_25)[(int)pcVar2] == '0')" (parenthesized_expression "((char *)0x2 < pcVar2)" ( (binary_expression "(char *)0x2 < pcVar2" (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) && (parenthesized_expression "((&cStack_25)[(int)pcVar2] == '0')" ( (binary_expression "(&cStack_25)[(int)pcVar2] == '0'" (subscript_expression "(&cStack_25)[(int)pcVar2]" (parenthesized_expression "(&cStack_25)" ( (pointer_expression "&cStack_25" & identifier) )) [ (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n        pcVar3 = buf + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" { (expression_statement "pcVar3 = buf + (int)pcVar2;" (assignment_expression "pcVar3 = buf + (int)pcVar2" identifier = (binary_expression "buf + (int)pcVar2" identifier + (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');" do (compound_statement "{\n          pcVar2 = pcVar3 + ~(uint)buf;\n          if (pcVar3 == buf + 3) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        }" { (expression_statement "pcVar2 = pcVar3 + ~(uint)buf;" (assignment_expression "pcVar2 = pcVar3 + ~(uint)buf" identifier = (binary_expression "pcVar3 + ~(uint)buf" identifier + (unary_expression "~(uint)buf" ~ (cast_expression "(uint)buf" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if (pcVar3 == buf + 3) break;" if (parenthesized_expression "(pcVar3 == buf + 3)" ( (binary_expression "pcVar3 == buf + 3" identifier == (binary_expression "buf + 3" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pcVar1 = pcVar3 + -2;" (assignment_expression "pcVar1 = pcVar3 + -2" identifier = (binary_expression "pcVar3 + -2" identifier + number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + -1;" (assignment_expression "pcVar3 = pcVar3 + -1" identifier = (binary_expression "pcVar3 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar1 == '0')" ( (binary_expression "*pcVar1 == '0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'0'" ' character ')) )) ;) })) (expression_statement "buf[(int)pcVar2] = '\0';" (assignment_expression "buf[(int)pcVar2] = '\0'" (subscript_expression "buf[(int)pcVar2]" identifier [ (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "parg.p_string = buf;" (assignment_expression "parg.p_string = buf" (field_expression "parg.p_string" identifier . field_identifier) = identifier) ;) (expression_statement "error(PTR_DAT_0004ece4 + -0x5060,&parg);" (call_expression "error(PTR_DAT_0004ece4 + -0x5060,&parg)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x5060,&parg)" ( (binary_expression "PTR_DAT_0004ece4 + -0x5060" identifier + number_literal) , (pointer_expression "&parg" & identifier) ))) ;) }))) }) (else_clause "else if ((type == 2) || (type == 0)) {\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }" else (if_statement "if ((type == 2) || (type == 0)) {\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }" if (parenthesized_expression "((type == 2) || (type == 0))" ( (binary_expression "(type == 2) || (type == 0)" (parenthesized_expression "(type == 2)" ( (binary_expression "type == 2" identifier == number_literal) )) || (parenthesized_expression "(type == 0)" ( (binary_expression "type == 0" identifier == number_literal) ))) )) (compound_statement "{\n    if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }\n  }" { (if_statement "if (*s == '.') {\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }\n    else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }" if (parenthesized_expression "(*s == '.')" ( (binary_expression "*s == '.'" (pointer_expression "*s" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      local_34 = s + 1;\n      lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      *(long *)PTR_shift_count_fraction_0004f188 = lVar5;\n      if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }\n    }" { (expression_statement "local_34 = s + 1;" (assignment_expression "local_34 = s + 1" identifier = (binary_expression "s + 1" identifier + number_literal)) ;) (expression_statement "lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);" (assignment_expression "lVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int)" identifier = (call_expression "getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int)" identifier (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int)" ( (pointer_expression "&local_34" & identifier) , (binary_expression "PTR_DAT_0004ece4 + -0x50b0" identifier + number_literal) , (pointer_expression "&parg.p_int" & (field_expression "parg.p_int" identifier . field_identifier)) )))) ;) (expression_statement "*(long *)PTR_shift_count_fraction_0004f188 = lVar5;" (assignment_expression "*(long *)PTR_shift_count_fraction_0004f188 = lVar5" (pointer_expression "*(long *)PTR_shift_count_fraction_0004f188" * (cast_expression "(long *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (parg.p_string == (char *)0x0) {\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }" if (parenthesized_expression "(parg.p_string == (char *)0x0)" ( (binary_expression "parg.p_string == (char *)0x0" (field_expression "parg.p_string" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }" { (if_statement "if (-1 < lVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" if (parenthesized_expression "(-1 < lVar5)" ( (binary_expression "-1 < lVar5" number_literal < identifier) )) (compound_statement "{\n          *(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" { (expression_statement "*(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;" (assignment_expression "*(int *)PTR_shift_count_0004ef28 = (lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (pointer_expression "*(int *)PTR_shift_count_0004ef28" * (cast_expression "(int *)PTR_shift_count_0004ef28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(lVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (parenthesized_expression "(lVar5 * *(int *)PTR_sc_width_0004ed08)" ( (binary_expression "lVar5 * *(int *)PTR_sc_width_0004ed08" identifier * (pointer_expression "*(int *)PTR_sc_width_0004ed08" * (cast_expression "(int *)PTR_sc_width_0004ed08" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) / number_literal)) ;) })) }) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }" else (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);\n      }" { (expression_statement "error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0);" (call_expression "error(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x50ac,(PARG *)0x0)" ( (binary_expression "PTR_DAT_0004ece4 + -0x50ac" identifier + number_literal) , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) }))) }) (else_clause "else {\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }" else (compound_statement "{\n      iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);\n      if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }\n    }" { (expression_statement "iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int);" (assignment_expression "iVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int)" identifier = (call_expression "getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int)" identifier (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0,&parg.p_int)" ( (pointer_expression "&local_34" & identifier) , (binary_expression "PTR_DAT_0004ece4 + -0x50b0" identifier + number_literal) , (pointer_expression "&parg.p_int" & (field_expression "parg.p_int" identifier . field_identifier)) )))) ;) (if_statement "if (parg.p_string == (char *)0x0) {\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }" if (parenthesized_expression "(parg.p_string == (char *)0x0)" ( (binary_expression "parg.p_string == (char *)0x0" (field_expression "parg.p_string" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(int *)PTR_shift_count_0004ef28 = iVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }" { (expression_statement "*(int *)PTR_shift_count_0004ef28 = iVar4;" (assignment_expression "*(int *)PTR_shift_count_0004ef28 = iVar4" (pointer_expression "*(int *)PTR_shift_count_0004ef28" * (cast_expression "(int *)PTR_shift_count_0004ef28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188" * (cast_expression "(undefined4 *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }" else (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);\n      }" { (expression_statement "error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0);" (call_expression "error(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x5094,(PARG *)0x0)" ( (binary_expression "PTR_DAT_0004ece4 + -0x5094" identifier + number_literal) , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) }))) }))) })))) (if_statement "if (iVar6 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" if (parenthesized_expression "(iVar6 != *(int *)puVar7)" ( (binary_expression "iVar6 != *(int *)puVar7" identifier != (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" { (expression_statement "puVar7 = PTR___stack_chk_fail_0004f354;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0004f354" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004f354)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004f354)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004f354)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004f354" * (cast_expression "(code *)PTR___stack_chk_fail_0004f354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" if (parenthesized_expression "(-1 < **(int **)(puVar7 + 0x23300))" ( (binary_expression "-1 < **(int **)(puVar7 + 0x23300)" number_literal < (pointer_expression "**(int **)(puVar7 + 0x23300)" * (pointer_expression "*(int **)(puVar7 + 0x23300)" * (cast_expression "(int **)(puVar7 + 0x23300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x23300)" ( (binary_expression "puVar7 + 0x23300" identifier + number_literal) )))))) )) (compound_statement "{\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" { (expression_statement "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;" (assignment_expression "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (pointer_expression "**(int **)(puVar7 + 0x230a0)" * (pointer_expression "*(int **)(puVar7 + 0x230a0)" * (cast_expression "(int **)(puVar7 + 0x230a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x230a0)" ( (binary_expression "puVar7 + 0x230a0" identifier + number_literal) ))))) = (binary_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (parenthesized_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80))" ( (binary_expression "**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)" (pointer_expression "**(int **)(puVar7 + 0x23300)" * (pointer_expression "*(int **)(puVar7 + 0x23300)" * (cast_expression "(int **)(puVar7 + 0x23300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x23300)" ( (binary_expression "puVar7 + 0x23300" identifier + number_literal) ))))) * (pointer_expression "**(int **)(puVar7 + 0x22e80)" * (pointer_expression "*(int **)(puVar7 + 0x22e80)" * (cast_expression "(int **)(puVar7 + 0x22e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x22e80)" ( (binary_expression "puVar7 + 0x22e80" identifier + number_literal) )))))) )) / number_literal)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002bc44(int param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0002bc44(int param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0002bc44(int param_1,char *param_2)" identifier (parameter_list "(int param_1,char *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "char *local_30 [2];" primitive_type (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (declaration "char acStack_25 [17];" primitive_type (array_declarator "acStack_25 [17]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar7 = PTR___stack_chk_guard_0004f374;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0004f374" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0004f374;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0004f374" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004f374" * (cast_expression "(int *)PTR___stack_chk_guard_0004f374" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_34 = param_2;" (assignment_expression "local_34 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }" { (if_statement "if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" if (parenthesized_expression "(*(int *)PTR_shift_count_fraction_0004f188 < 0)" ( (binary_expression "*(int *)PTR_shift_count_fraction_0004f188 < 0" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }" { (expression_statement "local_30[0] = *(char **)PTR_shift_count_0004ef28;" (assignment_expression "local_30[0] = *(char **)PTR_shift_count_0004ef28" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)PTR_shift_count_0004ef28" * (cast_expression "(char **)PTR_shift_count_0004ef28" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "error(PTR_DAT_0004ece4 + -0x507c,local_30);" (call_expression "error(PTR_DAT_0004ece4 + -0x507c,local_30)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x507c,local_30)" ( (binary_expression "PTR_DAT_0004ece4 + -0x507c" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" else (compound_statement "{\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" { (expression_statement "pcVar6 = acStack_25 + 1;" (assignment_expression "pcVar6 = acStack_25 + 1" identifier = (binary_expression "acStack_25 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;" (call_expression "(*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0004f26c)" ( (pointer_expression "*(code *)PTR___sprintf_chk_0004f26c" * (cast_expression "(code *)PTR___sprintf_chk_0004f26c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" ( identifier , number_literal , number_literal , (binary_expression "PTR_DAT_0004ece4 + -0x50e0" identifier + number_literal) , (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6)" identifier = (cast_expression "(char *)(*(code *)PTR_strlen_0004f30c)(pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0004f30c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" ( (pointer_expression "*(code *)PTR_strlen_0004f30c" * (cast_expression "(code *)PTR_strlen_0004f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier ))))) ;) (if_statement "if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" if (parenthesized_expression "(((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0'))" ( (binary_expression "((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')" (parenthesized_expression "((char *)0x2 < pcVar2)" ( (binary_expression "(char *)0x2 < pcVar2" (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) && (parenthesized_expression "(acStack_25[(int)pcVar2] == '0')" ( (binary_expression "acStack_25[(int)pcVar2] == '0'" (subscript_expression "acStack_25[(int)pcVar2]" identifier [ (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" { (expression_statement "pcVar3 = pcVar6 + (int)pcVar2;" (assignment_expression "pcVar3 = pcVar6 + (int)pcVar2" identifier = (binary_expression "pcVar6 + (int)pcVar2" identifier + (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');" do (compound_statement "{\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        }" { (expression_statement "pcVar2 = pcVar3 + ~(uint)pcVar6;" (assignment_expression "pcVar2 = pcVar3 + ~(uint)pcVar6" identifier = (binary_expression "pcVar3 + ~(uint)pcVar6" identifier + (unary_expression "~(uint)pcVar6" ~ (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if (pcVar3 == acStack_25 + 4) break;" if (parenthesized_expression "(pcVar3 == acStack_25 + 4)" ( (binary_expression "pcVar3 == acStack_25 + 4" identifier == (binary_expression "acStack_25 + 4" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pcVar1 = pcVar3 + -2;" (assignment_expression "pcVar1 = pcVar3 + -2" identifier = (binary_expression "pcVar3 + -2" identifier + number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + -1;" (assignment_expression "pcVar3 = pcVar3 + -1" identifier = (binary_expression "pcVar3 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar1 == '0')" ( (binary_expression "*pcVar1 == '0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'0'" ' character ')) )) ;) })) (expression_statement "(acStack_25 + 1)[(int)pcVar2] = '\0';" (assignment_expression "(acStack_25 + 1)[(int)pcVar2] = '\0'" (subscript_expression "(acStack_25 + 1)[(int)pcVar2]" (parenthesized_expression "(acStack_25 + 1)" ( (binary_expression "acStack_25 + 1" identifier + number_literal) )) [ (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_30[0] = pcVar6;" (assignment_expression "local_30[0] = pcVar6" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "error(PTR_DAT_0004ece4 + -0x5060,local_30);" (call_expression "error(PTR_DAT_0004ece4 + -0x5060,local_30)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x5060,local_30)" ( (binary_expression "PTR_DAT_0004ece4 + -0x5060" identifier + number_literal) , identifier ))) ;) }))) }) (else_clause "else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" else (if_statement "if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" if (parenthesized_expression "((param_1 == 2) || (param_1 == 0))" ( (binary_expression "(param_1 == 2) || (param_1 == 0)" (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) || (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" { (if_statement "if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" if (parenthesized_expression "(*param_2 == '.')" ( (binary_expression "*param_2 == '.'" (pointer_expression "*param_2" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }" { (expression_statement "local_34 = param_2 + 1;" (assignment_expression "local_34 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);" (assignment_expression "iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" identifier = (call_expression "getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" identifier (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" ( (pointer_expression "&local_34" & identifier) , (binary_expression "PTR_DAT_0004ece4 + -0x50b0" identifier + number_literal) , identifier )))) ;) (expression_statement "*(int *)PTR_shift_count_fraction_0004f188 = iVar5;" (assignment_expression "*(int *)PTR_shift_count_fraction_0004f188 = iVar5" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" * (cast_expression "(int *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" if (parenthesized_expression "(local_30[0] == (char *)0x0)" ( (binary_expression "local_30[0] == (char *)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }" { (if_statement "if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" { (expression_statement "*(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;" (assignment_expression "*(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (pointer_expression "*(int *)PTR_shift_count_0004ef28" * (cast_expression "(int *)PTR_shift_count_0004ef28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (parenthesized_expression "(iVar5 * *(int *)PTR_sc_width_0004ed08)" ( (binary_expression "iVar5 * *(int *)PTR_sc_width_0004ed08" identifier * (pointer_expression "*(int *)PTR_sc_width_0004ed08" * (cast_expression "(int *)PTR_sc_width_0004ed08" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) / number_literal)) ;) })) }) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" else (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" { (expression_statement "error(PTR_DAT_0004ece4 + -0x50ac,0);" (call_expression "error(PTR_DAT_0004ece4 + -0x50ac,0)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x50ac,0)" ( (binary_expression "PTR_DAT_0004ece4 + -0x50ac" identifier + number_literal) , number_literal ))) ;) }))) }) (else_clause "else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" else (compound_statement "{\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" { (expression_statement "uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);" (assignment_expression "uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0)" identifier = (call_expression "getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0)" identifier (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0)" ( (pointer_expression "&local_34" & identifier) , (binary_expression "PTR_DAT_0004ece4 + -0x50b0" identifier + number_literal) )))) ;) (if_statement "if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" if (parenthesized_expression "(local_30[0] == (char *)0x0)" ( (binary_expression "local_30[0] == (char *)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }" { (expression_statement "*(undefined4 *)PTR_shift_count_0004ef28 = uVar4;" (assignment_expression "*(undefined4 *)PTR_shift_count_0004ef28 = uVar4" (pointer_expression "*(undefined4 *)PTR_shift_count_0004ef28" * (cast_expression "(undefined4 *)PTR_shift_count_0004ef28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188" * (cast_expression "(undefined4 *)PTR_shift_count_fraction_0004f188" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" else (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" { (expression_statement "error(PTR_DAT_0004ece4 + -0x5094,0);" (call_expression "error(PTR_DAT_0004ece4 + -0x5094,0)" identifier (argument_list "(PTR_DAT_0004ece4 + -0x5094,0)" ( (binary_expression "PTR_DAT_0004ece4 + -0x5094" identifier + number_literal) , number_literal ))) ;) }))) }))) })))) (if_statement "if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" if (parenthesized_expression "(local_14 != *(int *)puVar7)" ( (binary_expression "local_14 != *(int *)puVar7" identifier != (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" { (expression_statement "puVar7 = PTR___stack_chk_fail_0004f354;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0004f354" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004f354)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004f354)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004f354)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004f354" * (cast_expression "(code *)PTR___stack_chk_fail_0004f354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" if (parenthesized_expression "(-1 < **(int **)(puVar7 + 0x23300))" ( (binary_expression "-1 < **(int **)(puVar7 + 0x23300)" number_literal < (pointer_expression "**(int **)(puVar7 + 0x23300)" * (pointer_expression "*(int **)(puVar7 + 0x23300)" * (cast_expression "(int **)(puVar7 + 0x23300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x23300)" ( (binary_expression "puVar7 + 0x23300" identifier + number_literal) )))))) )) (compound_statement "{\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" { (expression_statement "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;" (assignment_expression "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (pointer_expression "**(int **)(puVar7 + 0x230a0)" * (pointer_expression "*(int **)(puVar7 + 0x230a0)" * (cast_expression "(int **)(puVar7 + 0x230a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x230a0)" ( (binary_expression "puVar7 + 0x230a0" identifier + number_literal) ))))) = (binary_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (parenthesized_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80))" ( (binary_expression "**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)" (pointer_expression "**(int **)(puVar7 + 0x23300)" * (pointer_expression "*(int **)(puVar7 + 0x23300)" * (cast_expression "(int **)(puVar7 + 0x23300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x23300)" ( (binary_expression "puVar7 + 0x23300" identifier + number_literal) ))))) * (pointer_expression "**(int **)(puVar7 + 0x22e80)" * (pointer_expression "*(int **)(puVar7 + 0x22e80)" * (cast_expression "(int **)(puVar7 + 0x22e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x22e80)" ( (binary_expression "puVar7 + 0x22e80" identifier + number_literal) )))))) )) / number_literal)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) ;) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) / LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) }))) }))) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) / LIT)) ;) })) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_0002bc44(int param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002bc44(int param_1,char *param_2)" (identifier "FUN_0002bc44") (parameter_list "(int param_1,char *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  char *local_34;\n  char *local_30 [2];\n  char acStack_25 [17];\n  int local_14;\n  \n  puVar7 = PTR___stack_chk_guard_0004f374;\n  local_14 = *(int *)PTR___stack_chk_guard_0004f374;\n  local_34 = param_2;\n  if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }\n  if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "char *local_34;" (primitive_type "char") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "char *local_30 [2];" (primitive_type "char") (pointer_declarator "*local_30 [2]" (* "*") (array_declarator "local_30 [2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "char acStack_25 [17];" (primitive_type "char") (array_declarator "acStack_25 [17]" (identifier "acStack_25") ([ "[") (number_literal "17") (] "]")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "puVar7 = PTR___stack_chk_guard_0004f374;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0004f374" (identifier "puVar7") (= "=") (identifier "PTR___stack_chk_guard_0004f374")) (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0004f374;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0004f374" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0004f374" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0004f374" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0004f374")))) (; ";")) (expression_statement "local_34 = param_2;" (assignment_expression "local_34 = param_2" (identifier "local_34") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_1 == 1) {\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }\n  else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 1)" (( "(") (binary_expression "param_1 == 1" (identifier "param_1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }\n  }" ({ "{") (if_statement "if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }\n    else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_shift_count_fraction_0004f188 < 0)" (( "(") (binary_expression "*(int *)PTR_shift_count_fraction_0004f188 < 0" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" (* "*") (cast_expression "(int *)PTR_shift_count_fraction_0004f188" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shift_count_fraction_0004f188"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      local_30[0] = *(char **)PTR_shift_count_0004ef28;\n      error(PTR_DAT_0004ece4 + -0x507c,local_30);\n    }" ({ "{") (expression_statement "local_30[0] = *(char **)PTR_shift_count_0004ef28;" (assignment_expression "local_30[0] = *(char **)PTR_shift_count_0004ef28" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(char **)PTR_shift_count_0004ef28" (* "*") (cast_expression "(char **)PTR_shift_count_0004ef28" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_shift_count_0004ef28")))) (; ";")) (expression_statement "error(PTR_DAT_0004ece4 + -0x507c,local_30);" (call_expression "error(PTR_DAT_0004ece4 + -0x507c,local_30)" (identifier "error") (argument_list "(PTR_DAT_0004ece4 + -0x507c,local_30)" (( "(") (binary_expression "PTR_DAT_0004ece4 + -0x507c" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x507c")) (, ",") (identifier "local_30") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" (else "else") (compound_statement "{\n      pcVar6 = acStack_25 + 1;\n      (*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;\n      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);\n      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }\n      (acStack_25 + 1)[(int)pcVar2] = '\0';\n      local_30[0] = pcVar6;\n      error(PTR_DAT_0004ece4 + -0x5060,local_30);\n    }" ({ "{") (expression_statement "pcVar6 = acStack_25 + 1;" (assignment_expression "pcVar6 = acStack_25 + 1" (identifier "pcVar6") (= "=") (binary_expression "acStack_25 + 1" (identifier "acStack_25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)\n      ;" (call_expression "(*(code *)PTR___sprintf_chk_0004f26c)\n                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" (parenthesized_expression "(*(code *)PTR___sprintf_chk_0004f26c)" (( "(") (pointer_expression "*(code *)PTR___sprintf_chk_0004f26c" (* "*") (cast_expression "(code *)PTR___sprintf_chk_0004f26c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___sprintf_chk_0004f26c"))) () ")")) (argument_list "(pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)" (( "(") (identifier "pcVar6") (, ",") (number_literal "1") (, ",") (number_literal "0x10") (, ",") (binary_expression "PTR_DAT_0004ece4 + -0x50e0" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x50e0")) (, ",") (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" (* "*") (cast_expression "(int *)PTR_shift_count_fraction_0004f188" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shift_count_fraction_0004f188"))) () ")"))) (; ";")) (expression_statement "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6)" (identifier "pcVar2") (= "=") (cast_expression "(char *)(*(code *)PTR_strlen_0004f30c)(pcVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_0004f30c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0004f30c" (* "*") (cast_expression "(code *)PTR_strlen_0004f30c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0004f30c"))) () ")")) (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))))) (; ";")) (if_statement "if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" (if "if") (parenthesized_expression "(((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0'))" (( "(") (binary_expression "((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')" (parenthesized_expression "((char *)0x2 < pcVar2)" (( "(") (binary_expression "(char *)0x2 < pcVar2" (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")) (< "<") (identifier "pcVar2")) () ")")) (&& "&&") (parenthesized_expression "(acStack_25[(int)pcVar2] == '0')" (( "(") (binary_expression "acStack_25[(int)pcVar2] == '0'" (subscript_expression "acStack_25[(int)pcVar2]" (identifier "acStack_25") ([ "[") (cast_expression "(int)pcVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar2")) (] "]")) (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        pcVar3 = pcVar6 + (int)pcVar2;\n        do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');\n      }" ({ "{") (expression_statement "pcVar3 = pcVar6 + (int)pcVar2;" (assignment_expression "pcVar3 = pcVar6 + (int)pcVar2" (identifier "pcVar3") (= "=") (binary_expression "pcVar6 + (int)pcVar2" (identifier "pcVar6") (+ "+") (cast_expression "(int)pcVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar2")))) (; ";")) (do_statement "do {\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        } while (*pcVar1 == '0');" (do "do") (compound_statement "{\n          pcVar2 = pcVar3 + ~(uint)pcVar6;\n          if (pcVar3 == acStack_25 + 4) break;\n          pcVar1 = pcVar3 + -2;\n          pcVar3 = pcVar3 + -1;\n        }" ({ "{") (expression_statement "pcVar2 = pcVar3 + ~(uint)pcVar6;" (assignment_expression "pcVar2 = pcVar3 + ~(uint)pcVar6" (identifier "pcVar2") (= "=") (binary_expression "pcVar3 + ~(uint)pcVar6" (identifier "pcVar3") (+ "+") (unary_expression "~(uint)pcVar6" (~ "~") (cast_expression "(uint)pcVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar6"))))) (; ";")) (if_statement "if (pcVar3 == acStack_25 + 4) break;" (if "if") (parenthesized_expression "(pcVar3 == acStack_25 + 4)" (( "(") (binary_expression "pcVar3 == acStack_25 + 4" (identifier "pcVar3") (== "==") (binary_expression "acStack_25 + 4" (identifier "acStack_25") (+ "+") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar1 = pcVar3 + -2;" (assignment_expression "pcVar1 = pcVar3 + -2" (identifier "pcVar1") (= "=") (binary_expression "pcVar3 + -2" (identifier "pcVar3") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "pcVar3 = pcVar3 + -1;" (assignment_expression "pcVar3 = pcVar3 + -1" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + -1" (identifier "pcVar3") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar1 == '0')" (( "(") (binary_expression "*pcVar1 == '0'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "(acStack_25 + 1)[(int)pcVar2] = '\0';" (assignment_expression "(acStack_25 + 1)[(int)pcVar2] = '\0'" (subscript_expression "(acStack_25 + 1)[(int)pcVar2]" (parenthesized_expression "(acStack_25 + 1)" (( "(") (binary_expression "acStack_25 + 1" (identifier "acStack_25") (+ "+") (number_literal "1")) () ")")) ([ "[") (cast_expression "(int)pcVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar2")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_30[0] = pcVar6;" (assignment_expression "local_30[0] = pcVar6" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "error(PTR_DAT_0004ece4 + -0x5060,local_30);" (call_expression "error(PTR_DAT_0004ece4 + -0x5060,local_30)" (identifier "error") (argument_list "(PTR_DAT_0004ece4 + -0x5060,local_30)" (( "(") (binary_expression "PTR_DAT_0004ece4 + -0x5060" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x5060")) (, ",") (identifier "local_30") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" (else "else") (if_statement "if ((param_1 == 2) || (param_1 == 0)) {\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" (if "if") (parenthesized_expression "((param_1 == 2) || (param_1 == 0))" (( "(") (binary_expression "(param_1 == 2) || (param_1 == 0)" (parenthesized_expression "(param_1 == 2)" (( "(") (binary_expression "param_1 == 2" (identifier "param_1") (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }\n  }" ({ "{") (if_statement "if (*param_2 == '.') {\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }\n    else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" (if "if") (parenthesized_expression "(*param_2 == '.')" (( "(") (binary_expression "*param_2 == '.'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n      local_34 = param_2 + 1;\n      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);\n      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;\n      if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }\n    }" ({ "{") (expression_statement "local_34 = param_2 + 1;" (assignment_expression "local_34 = param_2 + 1" (identifier "local_34") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);" (assignment_expression "iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" (identifier "iVar5") (= "=") (call_expression "getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" (identifier "getfraction") (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (binary_expression "PTR_DAT_0004ece4 + -0x50b0" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x50b0")) (, ",") (identifier "local_30") () ")")))) (; ";")) (expression_statement "*(int *)PTR_shift_count_fraction_0004f188 = iVar5;" (assignment_expression "*(int *)PTR_shift_count_fraction_0004f188 = iVar5" (pointer_expression "*(int *)PTR_shift_count_fraction_0004f188" (* "*") (cast_expression "(int *)PTR_shift_count_fraction_0004f188" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shift_count_fraction_0004f188"))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (local_30[0] == (char *)0x0) {\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" (if "if") (parenthesized_expression "(local_30[0] == (char *)0x0)" (( "(") (binary_expression "local_30[0] == (char *)0x0" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }\n      }" ({ "{") (if_statement "if (-1 < iVar5) {\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;\n        }" ({ "{") (expression_statement "*(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;" (assignment_expression "*(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (pointer_expression "*(int *)PTR_shift_count_0004ef28" (* "*") (cast_expression "(int *)PTR_shift_count_0004ef28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shift_count_0004ef28"))) (= "=") (binary_expression "(iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000" (parenthesized_expression "(iVar5 * *(int *)PTR_sc_width_0004ed08)" (( "(") (binary_expression "iVar5 * *(int *)PTR_sc_width_0004ed08" (identifier "iVar5") (* "*") (pointer_expression "*(int *)PTR_sc_width_0004ed08" (* "*") (cast_expression "(int *)PTR_sc_width_0004ed08" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sc_width_0004ed08")))) () ")")) (/ "/") (number_literal "1000000"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" (else "else") (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x50ac,0);\n      }" ({ "{") (expression_statement "error(PTR_DAT_0004ece4 + -0x50ac,0);" (call_expression "error(PTR_DAT_0004ece4 + -0x50ac,0)" (identifier "error") (argument_list "(PTR_DAT_0004ece4 + -0x50ac,0)" (( "(") (binary_expression "PTR_DAT_0004ece4 + -0x50ac" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x50ac")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" (else "else") (compound_statement "{\n      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);\n      if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }\n    }" ({ "{") (expression_statement "uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);" (assignment_expression "uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0)" (identifier "uVar4") (= "=") (call_expression "getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0)" (identifier "getnum") (argument_list "(&local_34,PTR_DAT_0004ece4 + -0x50b0)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (binary_expression "PTR_DAT_0004ece4 + -0x50b0" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x50b0")) () ")")))) (; ";")) (if_statement "if (local_30[0] == (char *)0x0) {\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }\n      else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" (if "if") (parenthesized_expression "(local_30[0] == (char *)0x0)" (( "(") (binary_expression "local_30[0] == (char *)0x0" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;\n        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;\n      }" ({ "{") (expression_statement "*(undefined4 *)PTR_shift_count_0004ef28 = uVar4;" (assignment_expression "*(undefined4 *)PTR_shift_count_0004ef28 = uVar4" (pointer_expression "*(undefined4 *)PTR_shift_count_0004ef28" (* "*") (cast_expression "(undefined4 *)PTR_shift_count_0004ef28" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shift_count_0004ef28"))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_shift_count_fraction_0004f188" (* "*") (cast_expression "(undefined4 *)PTR_shift_count_fraction_0004f188" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shift_count_fraction_0004f188"))) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" (else "else") (compound_statement "{\n        error(PTR_DAT_0004ece4 + -0x5094,0);\n      }" ({ "{") (expression_statement "error(PTR_DAT_0004ece4 + -0x5094,0);" (call_expression "error(PTR_DAT_0004ece4 + -0x5094,0)" (identifier "error") (argument_list "(PTR_DAT_0004ece4 + -0x5094,0)" (( "(") (binary_expression "PTR_DAT_0004ece4 + -0x5094" (identifier "PTR_DAT_0004ece4") (+ "+") (number_literal "-0x5094")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}"))))) (if_statement "if (local_14 != *(int *)puVar7) {\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(local_14 != *(int *)puVar7)" (( "(") (binary_expression "local_14 != *(int *)puVar7" (identifier "local_14") (!= "!=") (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7")))) () ")")) (compound_statement "{\n    puVar7 = PTR___stack_chk_fail_0004f354;\n    (*(code *)PTR___stack_chk_fail_0004f354)();\n    if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }\n    return;\n  }" ({ "{") (expression_statement "puVar7 = PTR___stack_chk_fail_0004f354;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0004f354" (identifier "puVar7") (= "=") (identifier "PTR___stack_chk_fail_0004f354")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0004f354)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004f354)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004f354)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0004f354" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0004f354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0004f354"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (-1 < **(int **)(puVar7 + 0x23300)) {\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" (if "if") (parenthesized_expression "(-1 < **(int **)(puVar7 + 0x23300))" (( "(") (binary_expression "-1 < **(int **)(puVar7 + 0x23300)" (number_literal "-1") (< "<") (pointer_expression "**(int **)(puVar7 + 0x23300)" (* "*") (pointer_expression "*(int **)(puVar7 + 0x23300)" (* "*") (cast_expression "(int **)(puVar7 + 0x23300)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x23300)" (( "(") (binary_expression "puVar7 + 0x23300" (identifier "puVar7") (+ "+") (number_literal "0x23300")) () ")")))))) () ")")) (compound_statement "{\n      **(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;\n    }" ({ "{") (expression_statement "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;" (assignment_expression "**(int **)(puVar7 + 0x230a0) =\n           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (pointer_expression "**(int **)(puVar7 + 0x230a0)" (* "*") (pointer_expression "*(int **)(puVar7 + 0x230a0)" (* "*") (cast_expression "(int **)(puVar7 + 0x230a0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x230a0)" (( "(") (binary_expression "puVar7 + 0x230a0" (identifier "puVar7") (+ "+") (number_literal "0x230a0")) () ")"))))) (= "=") (binary_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000" (parenthesized_expression "(**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80))" (( "(") (binary_expression "**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)" (pointer_expression "**(int **)(puVar7 + 0x23300)" (* "*") (pointer_expression "*(int **)(puVar7 + 0x23300)" (* "*") (cast_expression "(int **)(puVar7 + 0x23300)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x23300)" (( "(") (binary_expression "puVar7 + 0x23300" (identifier "puVar7") (+ "+") (number_literal "0x23300")) () ")"))))) (* "*") (pointer_expression "**(int **)(puVar7 + 0x22e80)" (* "*") (pointer_expression "*(int **)(puVar7 + 0x22e80)" (* "*") (cast_expression "(int **)(puVar7 + 0x22e80)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x22e80)" (( "(") (binary_expression "puVar7 + 0x22e80" (identifier "puVar7") (+ "+") (number_literal "0x22e80")) () ")")))))) () ")")) (/ "/") (number_literal "1000000"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (char_literal (character)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (break_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: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (number_literal)))))) (return_statement))) (return_statement))))

void MASKED(int param_1,char *param_2)

{
  char *pcVar1;
  char *pcVar2;
  char *pcVar3;
  undefined4 uVar4;
  int iVar5;
  char *pcVar6;
  undefined *puVar7;
  char *local_34;
  char *local_30 [2];
  char acStack_25 [17];
  int local_14;
  
  puVar7 = PTR___stack_chk_guard_0004f374;
  local_14 = *(int *)PTR___stack_chk_guard_0004f374;
  local_34 = param_2;
  if (param_1 == 1) {
    if (*(int *)PTR_shift_count_fraction_0004f188 < 0) {
      local_30[0] = *(char **)PTR_shift_count_0004ef28;
      error(PTR_DAT_0004ece4 + -0x507c,local_30);
    }
    else {
      pcVar6 = acStack_25 + 1;
      (*(code *)PTR___sprintf_chk_0004f26c)
                (pcVar6,1,0x10,PTR_DAT_0004ece4 + -0x50e0,*(int *)PTR_shift_count_fraction_0004f188)
      ;
      pcVar2 = (char *)(*(code *)PTR_strlen_0004f30c)(pcVar6);
      if (((char *)0x2 < pcVar2) && (acStack_25[(int)pcVar2] == '0')) {
        pcVar3 = pcVar6 + (int)pcVar2;
        do {
          pcVar2 = pcVar3 + ~(uint)pcVar6;
          if (pcVar3 == acStack_25 + 4) break;
          pcVar1 = pcVar3 + -2;
          pcVar3 = pcVar3 + -1;
        } while (*pcVar1 == '0');
      }
      (acStack_25 + 1)[(int)pcVar2] = '\0';
      local_30[0] = pcVar6;
      error(PTR_DAT_0004ece4 + -0x5060,local_30);
    }
  }
  else if ((param_1 == 2) || (param_1 == 0)) {
    if (*param_2 == '.') {
      local_34 = param_2 + 1;
      iVar5 = getfraction(&local_34,PTR_DAT_0004ece4 + -0x50b0,local_30);
      *(int *)PTR_shift_count_fraction_0004f188 = iVar5;
      if (local_30[0] == (char *)0x0) {
        if (-1 < iVar5) {
          *(int *)PTR_shift_count_0004ef28 = (iVar5 * *(int *)PTR_sc_width_0004ed08) / 1000000;
        }
      }
      else {
        error(PTR_DAT_0004ece4 + -0x50ac,0);
      }
    }
    else {
      uVar4 = getnum(&local_34,PTR_DAT_0004ece4 + -0x50b0);
      if (local_30[0] == (char *)0x0) {
        *(undefined4 *)PTR_shift_count_0004ef28 = uVar4;
        *(undefined4 *)PTR_shift_count_fraction_0004f188 = 0xffffffff;
      }
      else {
        error(PTR_DAT_0004ece4 + -0x5094,0);
      }
    }
  }
  if (local_14 != *(int *)puVar7) {
    puVar7 = PTR___stack_chk_fail_0004f354;
    (*(code *)PTR___stack_chk_fail_0004f354)();
    if (-1 < **(int **)(puVar7 + 0x23300)) {
      **(int **)(puVar7 + 0x230a0) =
           (**(int **)(puVar7 + 0x23300) * **(int **)(puVar7 + 0x22e80)) / 1000000;
    }
    return;
  }
  return;
}

