
int mysleep(int hund)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  undefined4 *puVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte *pbVar11;
  int iVar12;
  uint uVar13;
  char *pcVar14;
  int *piVar15;
  int iVar16;
  byte bVar18;
  byte *pbVar17;
  int iVar19;
  undefined1 *puVar20;
  byte *pbVar21;
  char *pcVar22;
  undefined *puVar23;
  code *pcVar24;
  undefined1 auStack_70 [36];
  int iStack_4c;
  int iStack_44;
  undefined *puStack_40;
  code *pcStack_3c;
  pollfd pfd [1];
  
  puVar3 = PTR___stack_chk_guard_0012b14c;
  uVar4 = *(uint *)PTR___stack_chk_guard_0012b14c;
  if (hund != 0) {
    (*(code *)PTR_fflush_all_0012a244)();
  }
  pfd[0].fd = 0;
  pfd[0].events = 1;
  uVar10 = 1;
  iVar5 = safe_poll(pfd,1,hund * 10);
  if (uVar4 == *(uint *)puVar3) {
    return (uint)(0 < iVar5);
  }
  pcVar24 = place_cursor;
  puVar23 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  if ((int)uVar4 < 0) {
    uVar4 = 0;
  }
  puStack_40 = puVar3;
  piVar15 = *(int **)(puVar23 + 0x50f00);
  iStack_4c = *piVar15;
  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24);
  if (uVar6 <= uVar4) {
    uVar4 = uVar6 - 1;
  }
  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28);
  if ((int)uVar10 < 0) {
    uVar10 = 0;
  }
  if (uVar6 <= uVar10) {
    uVar10 = uVar6 - 1;
  }
  puVar20 = auStack_70;
  iStack_44 = hund;
  pcStack_3c = pcVar24;
  (**(code **)(puVar23 + 0x50a14))
            (puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1);
  (**(code **)(puVar23 + 0x50fb8))(puVar20,**(undefined4 **)(puVar23 + 0x50bf4));
  iVar5 = *piVar15;
  if (iStack_4c == iVar5) {
    return iVar5;
  }
  pcVar24 = *(code **)(puVar23 + 0x50e7c);
  (*pcVar24)();
  iVar5 = **(int **)(pcVar24 + 0x4ffd8);
  if (*(int *)(iVar5 + 0x2c) == 0) {
    iVar16 = *(int *)(iVar5 + 0x28);
    iVar19 = *(int *)(iVar5 + 0x24);
    query_screen_dimensions();
    puVar20 = (undefined1 *)
              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);
  }
  sync_cursor(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34));
  if (*(int *)(iVar5 + 0x24) == 1) {
    iVar16 = *(int *)(iVar5 + 0x34);
  }
  else {
    iVar16 = iVar5 + 0x478;
    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);
    uVar4 = 0;
    pbVar21 = *(byte **)(iVar5 + 0x48);
    do {
      uVar6 = *(uint *)(iVar5 + 0x38);
      uVar10 = 0;
      iVar19 = *(int *)(iVar5 + 0x54);
      bVar18 = 0x7e;
      pbVar17 = pbVar21;
      do {
        uVar13 = *(uint *)(iVar5 + 0x28);
        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;
        uVar8 = uVar10 + 1;
        uVar9 = uVar8;
        if (pbVar17 < *(byte **)(iVar5 + 4)) {
          bVar18 = *pbVar17;
          pbVar17 = pbVar17 + 1;
          if (bVar18 == 10) goto LAB_000da49c;
          pbVar11 = (byte *)(iVar16 + uVar10);
          if ((char)bVar18 < '\0') {
            if (bVar18 == 0x9b) {
              bVar18 = 0x2e;
            }
          }
          else if (bVar18 < 0x20) {
            if (bVar18 == 9) {
              if (iVar19 == 0) {
                trap(7);
              }
              bVar18 = 0x20;
              if ((int)uVar10 % iVar19 != iVar19 + -1) {
                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;
                iVar19 = *(int *)(iVar5 + 0x54);
                if (iVar19 == 0) {
                  trap(7);
                }
                if ((int)uVar8 % iVar19 != iVar19 + -1) {
                  do {
                    uVar10 = uVar8;
                    uVar8 = uVar10 + 1;
                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;
                    iVar19 = *(int *)(iVar5 + 0x54);
                    if (iVar19 == 0) {
                      trap(7);
                    }
                  } while ((int)uVar8 % iVar19 != iVar19 + -1);
                }
                pbVar11 = (byte *)(iVar16 + uVar8);
                bVar18 = 0x20;
                uVar9 = uVar10 + 2;
              }
            }
            else {
              *pbVar11 = 0x5e;
              pbVar11 = (byte *)(iVar16 + uVar8);
              bVar18 = bVar18 + 0x40;
              uVar9 = uVar10 + 2;
            }
          }
          else if (bVar18 == 0x7f) {
            *pbVar11 = 0x5e;
            uVar9 = uVar10 + 2;
            pbVar11 = (byte *)(iVar16 + uVar8);
            bVar18 = 0x3f;
          }
        }
        else {
          pbVar11 = (byte *)(iVar16 + uVar10);
        }
        *pbVar11 = bVar18;
        iVar19 = *(int *)(iVar5 + 0x54);
        uVar10 = uVar9;
        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {
          uVar10 = uVar9 - iVar19;
          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);
          uVar6 = uVar6 - iVar19;
        }
      } while (pbVar17 < *(byte **)(iVar5 + 4));
      uVar13 = *(uint *)(iVar5 + 0x28);
LAB_000da49c:
      if ((int)uVar10 <= (int)uVar6) {
        uVar6 = uVar10;
      }
      uVar10 = uVar10 - uVar6;
      pcVar22 = (char *)(iVar16 + uVar6);
      if (uVar10 < uVar13) {
        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);
        uVar13 = *(uint *)(iVar5 + 0x28);
      }
      pbVar17 = *(byte **)(iVar5 + 4);
      if ((pbVar21 < pbVar17) &&
         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),
         pbVar21 = pbVar17, iVar19 != 0)) {
        iVar5 = FUN_000da508();
        return iVar5;
      }
      uVar10 = uVar13 - 1;
      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));
      if (puVar20 == (undefined1 *)0x0) {
        uVar6 = uVar10;
        if ((int)uVar10 < 0) {
          iVar19 = 0;
LAB_000da5fc:
          bVar2 = false;
          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {
LAB_000da648:
            if ((int)uVar10 < iVar19) {
              iVar19 = 0;
            }
            goto LAB_000da520;
          }
          bVar1 = (int)uVar10 < iVar19;
        }
        else {
          iVar19 = 0;
          if (*pcVar22 == *pcVar14) {
            do {
              iVar19 = iVar19 + 1;
              if ((int)uVar10 < iVar19) goto LAB_000da5fc;
            } while (pcVar22[iVar19] == pcVar14[iVar19]);
          }
          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;
          do {
            uVar6 = uVar6 - 1;
            bVar1 = (int)uVar6 < iVar19;
            if (bVar1) break;
          } while (pcVar22[uVar6] == pcVar14[uVar6]);
          bVar2 = true;
          if (uVar10 < uVar6) {
            bVar1 = (int)uVar10 < iVar19;
            uVar6 = uVar10;
          }
        }
        if (bVar1) {
          iVar19 = 0;
          uVar6 = uVar10;
        }
        if (bVar2) {
          iVar12 = uVar6 - iVar19;
          goto LAB_000da524;
        }
      }
      else {
        iVar19 = 0;
LAB_000da520:
        iVar12 = uVar10 - iVar19;
LAB_000da524:
        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);
        place_cursor(uVar4,iVar19);
        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);
      }
      uVar4 = uVar4 + 1;
    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);
    iVar16 = *(int *)(iVar5 + 0x34);
  }
  place_cursor(*(int *)(iVar5 + 0x30),iVar16);
  *(int *)(iVar5 + 0x78) = *(int *)(iVar5 + 0x38);
  return *(int *)(iVar5 + 0x38);
}



uint FUN_000da1ac(int param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  undefined4 local_1c;
  undefined2 local_18;
  int local_14;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;
  if (param_1 != 0) {
    (*(code *)PTR_FUN_0012a244)();
  }
  local_1c = 0;
  local_18 = 1;
  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);
  if (local_14 == *(int *)puVar1) {
    return (uint)(0 < iVar2);
  }
  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
  return uVar3;
}


lui gp,0x5
addiu gp,gp,0x7fa4
addu gp,gp,t9
addiu sp,sp,-0x38
sw s1,0x30(sp)
lw s1,-0x7004(gp)
sw gp,0x10(sp)
sw s0,0x2c(sp)
or s0,a0,zero
sw ra,0x34(sp)
lw v0,0x0(s1)
sw v0,0x24(sp)
beq a0,zero,0x000da1f0
_lw t9,-0x7f0c(gp)
jalr t9
_nop
lw gp,0x10(sp)
sll a2,s0,0x2
lw t9,-0x7d70(gp)
li v0,0x1
sw zero,0x1c(sp)
addu a2,a2,s0
addiu a0,sp,0x1c
sh v0,0x20(sp)
li a1,0x1
bal 0x000f8568
_sll a2,a2,0x1
lw a0,0x24(sp)
slt v0,zero,v0
lw v1,0x0(s1)
bne a0,v1,0x000da240
_lw gp,0x10(sp)
lw ra,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x38
lw t9,-0x7088(gp)
jalr t9
_nop
(translation_unit "uint FUN_000da1ac(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}\n\n" (function_definition "uint FUN_000da1ac(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}" type_identifier (function_declarator "FUN_000da1ac(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined2 local_18;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_FUN_0012a244)();\n  }" { (expression_statement "(*(code *)PTR_FUN_0012a244)();" (call_expression "(*(code *)PTR_FUN_0012a244)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a244)" ( (pointer_expression "*(code *)PTR_FUN_0012a244" * (cast_expression "(code *)PTR_FUN_0012a244" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" identifier = number_literal) ;) (expression_statement "local_18 = 1;" (assignment_expression "local_18 = 1" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);" (assignment_expression "iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10)" identifier = (call_expression "FUN_000f8568(&local_1c,1,param_1 * 10)" identifier (argument_list "(&local_1c,1,param_1 * 10)" ( (pointer_expression "&local_1c" & identifier) , number_literal , (binary_expression "param_1 * 10" identifier * number_literal) )))) ;) (if_statement "if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar1)" ( (binary_expression "local_14 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (uint)(0 < iVar2);\n  }" { (return_statement "return (uint)(0 < iVar2);" return (call_expression "(uint)(0 < iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) ))) ;) })) (expression_statement "uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "int mysleep(int hund)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  int iVar12;\n  uint uVar13;\n  char *pcVar14;\n  int *piVar15;\n  int iVar16;\n  byte bVar18;\n  byte *pbVar17;\n  int iVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  char *pcVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  undefined1 auStack_70 [36];\n  int iStack_4c;\n  int iStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  pollfd pfd [1];\n  \n  puVar3 = PTR___stack_chk_guard_0012b14c;\n  uVar4 = *(uint *)PTR___stack_chk_guard_0012b14c;\n  if (hund != 0) {\n    (*(code *)PTR_fflush_all_0012a244)();\n  }\n  pfd[0].fd = 0;\n  pfd[0].events = 1;\n  uVar10 = 1;\n  iVar5 = safe_poll(pfd,1,hund * 10);\n  if (uVar4 == *(uint *)puVar3) {\n    return (uint)(0 < iVar5);\n  }\n  pcVar24 = place_cursor;\n  puVar23 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  if ((int)uVar4 < 0) {\n    uVar4 = 0;\n  }\n  puStack_40 = puVar3;\n  piVar15 = *(int **)(puVar23 + 0x50f00);\n  iStack_4c = *piVar15;\n  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24);\n  if (uVar6 <= uVar4) {\n    uVar4 = uVar6 - 1;\n  }\n  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28);\n  if ((int)uVar10 < 0) {\n    uVar10 = 0;\n  }\n  if (uVar6 <= uVar10) {\n    uVar10 = uVar6 - 1;\n  }\n  puVar20 = auStack_70;\n  iStack_44 = hund;\n  pcStack_3c = pcVar24;\n  (**(code **)(puVar23 + 0x50a14))\n            (puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1);\n  (**(code **)(puVar23 + 0x50fb8))(puVar20,**(undefined4 **)(puVar23 + 0x50bf4));\n  iVar5 = *piVar15;\n  if (iStack_4c == iVar5) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puVar23 + 0x50e7c);\n  (*pcVar24)();\n  iVar5 = **(int **)(pcVar24 + 0x4ffd8);\n  if (*(int *)(iVar5 + 0x2c) == 0) {\n    iVar16 = *(int *)(iVar5 + 0x28);\n    iVar19 = *(int *)(iVar5 + 0x24);\n    query_screen_dimensions();\n    puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);\n  }\n  sync_cursor(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34));\n  if (*(int *)(iVar5 + 0x24) == 1) {\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  else {\n    iVar16 = iVar5 + 0x478;\n    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);\n    uVar4 = 0;\n    pbVar21 = *(byte **)(iVar5 + 0x48);\n    do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  place_cursor(*(int *)(iVar5 + 0x30),iVar16);\n  *(int *)(iVar5 + 0x78) = *(int *)(iVar5 + 0x38);\n  return *(int *)(iVar5 + 0x38);\n}\n\n" (function_definition "int mysleep(int hund)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  int iVar12;\n  uint uVar13;\n  char *pcVar14;\n  int *piVar15;\n  int iVar16;\n  byte bVar18;\n  byte *pbVar17;\n  int iVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  char *pcVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  undefined1 auStack_70 [36];\n  int iStack_4c;\n  int iStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  pollfd pfd [1];\n  \n  puVar3 = PTR___stack_chk_guard_0012b14c;\n  uVar4 = *(uint *)PTR___stack_chk_guard_0012b14c;\n  if (hund != 0) {\n    (*(code *)PTR_fflush_all_0012a244)();\n  }\n  pfd[0].fd = 0;\n  pfd[0].events = 1;\n  uVar10 = 1;\n  iVar5 = safe_poll(pfd,1,hund * 10);\n  if (uVar4 == *(uint *)puVar3) {\n    return (uint)(0 < iVar5);\n  }\n  pcVar24 = place_cursor;\n  puVar23 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  if ((int)uVar4 < 0) {\n    uVar4 = 0;\n  }\n  puStack_40 = puVar3;\n  piVar15 = *(int **)(puVar23 + 0x50f00);\n  iStack_4c = *piVar15;\n  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24);\n  if (uVar6 <= uVar4) {\n    uVar4 = uVar6 - 1;\n  }\n  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28);\n  if ((int)uVar10 < 0) {\n    uVar10 = 0;\n  }\n  if (uVar6 <= uVar10) {\n    uVar10 = uVar6 - 1;\n  }\n  puVar20 = auStack_70;\n  iStack_44 = hund;\n  pcStack_3c = pcVar24;\n  (**(code **)(puVar23 + 0x50a14))\n            (puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1);\n  (**(code **)(puVar23 + 0x50fb8))(puVar20,**(undefined4 **)(puVar23 + 0x50bf4));\n  iVar5 = *piVar15;\n  if (iStack_4c == iVar5) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puVar23 + 0x50e7c);\n  (*pcVar24)();\n  iVar5 = **(int **)(pcVar24 + 0x4ffd8);\n  if (*(int *)(iVar5 + 0x2c) == 0) {\n    iVar16 = *(int *)(iVar5 + 0x28);\n    iVar19 = *(int *)(iVar5 + 0x24);\n    query_screen_dimensions();\n    puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);\n  }\n  sync_cursor(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34));\n  if (*(int *)(iVar5 + 0x24) == 1) {\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  else {\n    iVar16 = iVar5 + 0x478;\n    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);\n    uVar4 = 0;\n    pbVar21 = *(byte **)(iVar5 + 0x48);\n    do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  place_cursor(*(int *)(iVar5 + 0x30),iVar16);\n  *(int *)(iVar5 + 0x78) = *(int *)(iVar5 + 0x38);\n  return *(int *)(iVar5 + 0x38);\n}" primitive_type (function_declarator "mysleep(int hund)" identifier (parameter_list "(int hund)" ( (parameter_declaration "int hund" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  int iVar12;\n  uint uVar13;\n  char *pcVar14;\n  int *piVar15;\n  int iVar16;\n  byte bVar18;\n  byte *pbVar17;\n  int iVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  char *pcVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  undefined1 auStack_70 [36];\n  int iStack_4c;\n  int iStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  pollfd pfd [1];\n  \n  puVar3 = PTR___stack_chk_guard_0012b14c;\n  uVar4 = *(uint *)PTR___stack_chk_guard_0012b14c;\n  if (hund != 0) {\n    (*(code *)PTR_fflush_all_0012a244)();\n  }\n  pfd[0].fd = 0;\n  pfd[0].events = 1;\n  uVar10 = 1;\n  iVar5 = safe_poll(pfd,1,hund * 10);\n  if (uVar4 == *(uint *)puVar3) {\n    return (uint)(0 < iVar5);\n  }\n  pcVar24 = place_cursor;\n  puVar23 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  if ((int)uVar4 < 0) {\n    uVar4 = 0;\n  }\n  puStack_40 = puVar3;\n  piVar15 = *(int **)(puVar23 + 0x50f00);\n  iStack_4c = *piVar15;\n  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24);\n  if (uVar6 <= uVar4) {\n    uVar4 = uVar6 - 1;\n  }\n  uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28);\n  if ((int)uVar10 < 0) {\n    uVar10 = 0;\n  }\n  if (uVar6 <= uVar10) {\n    uVar10 = uVar6 - 1;\n  }\n  puVar20 = auStack_70;\n  iStack_44 = hund;\n  pcStack_3c = pcVar24;\n  (**(code **)(puVar23 + 0x50a14))\n            (puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1);\n  (**(code **)(puVar23 + 0x50fb8))(puVar20,**(undefined4 **)(puVar23 + 0x50bf4));\n  iVar5 = *piVar15;\n  if (iStack_4c == iVar5) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puVar23 + 0x50e7c);\n  (*pcVar24)();\n  iVar5 = **(int **)(pcVar24 + 0x4ffd8);\n  if (*(int *)(iVar5 + 0x2c) == 0) {\n    iVar16 = *(int *)(iVar5 + 0x28);\n    iVar19 = *(int *)(iVar5 + 0x24);\n    query_screen_dimensions();\n    puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);\n  }\n  sync_cursor(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34));\n  if (*(int *)(iVar5 + 0x24) == 1) {\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  else {\n    iVar16 = iVar5 + 0x478;\n    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);\n    uVar4 = 0;\n    pbVar21 = *(byte **)(iVar5 + 0x48);\n    do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  place_cursor(*(int *)(iVar5 + 0x30),iVar16);\n  *(int *)(iVar5 + 0x78) = *(int *)(iVar5 + 0x38);\n  return *(int *)(iVar5 + 0x38);\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "undefined1 auStack_70 [36];" type_identifier (array_declarator "auStack_70 [36]" identifier [ number_literal ]) ;) (declaration "int iStack_4c;" primitive_type identifier ;) (declaration "int iStack_44;" primitive_type identifier ;) (declaration "undefined *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (declaration "pollfd pfd [1];" type_identifier (array_declarator "pfd [1]" identifier [ number_literal ]) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "uVar4 = *(uint *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "uVar4 = *(uint *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(uint *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (hund != 0) {\n    (*(code *)PTR_fflush_all_0012a244)();\n  }" if (parenthesized_expression "(hund != 0)" ( (binary_expression "hund != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_fflush_all_0012a244)();\n  }" { (expression_statement "(*(code *)PTR_fflush_all_0012a244)();" (call_expression "(*(code *)PTR_fflush_all_0012a244)()" (parenthesized_expression "(*(code *)PTR_fflush_all_0012a244)" ( (pointer_expression "*(code *)PTR_fflush_all_0012a244" * (cast_expression "(code *)PTR_fflush_all_0012a244" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "pfd[0].fd = 0;" (assignment_expression "pfd[0].fd = 0" (field_expression "pfd[0].fd" (subscript_expression "pfd[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "pfd[0].events = 1;" (assignment_expression "pfd[0].events = 1" (field_expression "pfd[0].events" (subscript_expression "pfd[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = safe_poll(pfd,1,hund * 10);" (assignment_expression "iVar5 = safe_poll(pfd,1,hund * 10)" identifier = (call_expression "safe_poll(pfd,1,hund * 10)" identifier (argument_list "(pfd,1,hund * 10)" ( identifier , number_literal , (binary_expression "hund * 10" identifier * number_literal) )))) ;) (if_statement "if (uVar4 == *(uint *)puVar3) {\n    return (uint)(0 < iVar5);\n  }" if (parenthesized_expression "(uVar4 == *(uint *)puVar3)" ( (binary_expression "uVar4 == *(uint *)puVar3" identifier == (pointer_expression "*(uint *)puVar3" * (cast_expression "(uint *)puVar3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (uint)(0 < iVar5);\n  }" { (return_statement "return (uint)(0 < iVar5);" return (call_expression "(uint)(0 < iVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) ))) ;) })) (expression_statement "pcVar24 = place_cursor;" (assignment_expression "pcVar24 = place_cursor" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar23 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if ((int)uVar4 < 0) {\n    uVar4 = 0;\n  }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar4 = 0;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) (expression_statement "puStack_40 = puVar3;" (assignment_expression "puStack_40 = puVar3" identifier = identifier) ;) (expression_statement "piVar15 = *(int **)(puVar23 + 0x50f00);" (assignment_expression "piVar15 = *(int **)(puVar23 + 0x50f00)" identifier = (pointer_expression "*(int **)(puVar23 + 0x50f00)" * (cast_expression "(int **)(puVar23 + 0x50f00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x50f00)" ( (binary_expression "puVar23 + 0x50f00" identifier + number_literal) ))))) ;) (expression_statement "iStack_4c = *piVar15;" (assignment_expression "iStack_4c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24);" (assignment_expression "uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24)" identifier = (pointer_expression "*(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24)" * (cast_expression "(uint *)(**(int **)(puVar23 + 0x500b8) + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar23 + 0x500b8) + 0x24)" ( (binary_expression "**(int **)(puVar23 + 0x500b8) + 0x24" (pointer_expression "**(int **)(puVar23 + 0x500b8)" * (pointer_expression "*(int **)(puVar23 + 0x500b8)" * (cast_expression "(int **)(puVar23 + 0x500b8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x500b8)" ( (binary_expression "puVar23 + 0x500b8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (uVar6 <= uVar4) {\n    uVar4 = uVar6 - 1;\n  }" if (parenthesized_expression "(uVar6 <= uVar4)" ( (binary_expression "uVar6 <= uVar4" identifier <= identifier) )) (compound_statement "{\n    uVar4 = uVar6 - 1;\n  }" { (expression_statement "uVar4 = uVar6 - 1;" (assignment_expression "uVar4 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28);" (assignment_expression "uVar6 = *(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28)" identifier = (pointer_expression "*(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28)" * (cast_expression "(uint *)(**(int **)(puVar23 + 0x500b8) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar23 + 0x500b8) + 0x28)" ( (binary_expression "**(int **)(puVar23 + 0x500b8) + 0x28" (pointer_expression "**(int **)(puVar23 + 0x500b8)" * (pointer_expression "*(int **)(puVar23 + 0x500b8)" * (cast_expression "(int **)(puVar23 + 0x500b8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x500b8)" ( (binary_expression "puVar23 + 0x500b8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if ((int)uVar10 < 0) {\n    uVar10 = 0;\n  }" if (parenthesized_expression "((int)uVar10 < 0)" ( (binary_expression "(int)uVar10 < 0" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar10 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar6 <= uVar10) {\n    uVar10 = uVar6 - 1;\n  }" if (parenthesized_expression "(uVar6 <= uVar10)" ( (binary_expression "uVar6 <= uVar10" identifier <= identifier) )) (compound_statement "{\n    uVar10 = uVar6 - 1;\n  }" { (expression_statement "uVar10 = uVar6 - 1;" (assignment_expression "uVar10 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) })) (expression_statement "puVar20 = auStack_70;" (assignment_expression "puVar20 = auStack_70" identifier = identifier) ;) (expression_statement "iStack_44 = hund;" (assignment_expression "iStack_44 = hund" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar24;" (assignment_expression "pcStack_3c = pcVar24" identifier = identifier) ;) (expression_statement "(**(code **)(puVar23 + 0x50a14))\n            (puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1);" (call_expression "(**(code **)(puVar23 + 0x50a14))\n            (puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1)" (parenthesized_expression "(**(code **)(puVar23 + 0x50a14))" ( (pointer_expression "**(code **)(puVar23 + 0x50a14)" * (pointer_expression "*(code **)(puVar23 + 0x50a14)" * (cast_expression "(code **)(puVar23 + 0x50a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x50a14)" ( (binary_expression "puVar23 + 0x50a14" identifier + number_literal) ))))) )) (argument_list "(puVar20,1,0x21,*(int *)(puVar23 + 0x4ff40) + 0x12c0,uVar4 + 1,uVar10 + 1)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x4ff40) + 0x12c0" (pointer_expression "*(int *)(puVar23 + 0x4ff40)" * (cast_expression "(int *)(puVar23 + 0x4ff40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x4ff40)" ( (binary_expression "puVar23 + 0x4ff40" identifier + number_literal) )))) + number_literal) , (binary_expression "uVar4 + 1" identifier + number_literal) , (binary_expression "uVar10 + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar23 + 0x50fb8))(puVar20,**(undefined4 **)(puVar23 + 0x50bf4));" (call_expression "(**(code **)(puVar23 + 0x50fb8))(puVar20,**(undefined4 **)(puVar23 + 0x50bf4))" (parenthesized_expression "(**(code **)(puVar23 + 0x50fb8))" ( (pointer_expression "**(code **)(puVar23 + 0x50fb8)" * (pointer_expression "*(code **)(puVar23 + 0x50fb8)" * (cast_expression "(code **)(puVar23 + 0x50fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x50fb8)" ( (binary_expression "puVar23 + 0x50fb8" identifier + number_literal) ))))) )) (argument_list "(puVar20,**(undefined4 **)(puVar23 + 0x50bf4))" ( identifier , (pointer_expression "**(undefined4 **)(puVar23 + 0x50bf4)" * (pointer_expression "*(undefined4 **)(puVar23 + 0x50bf4)" * (cast_expression "(undefined4 **)(puVar23 + 0x50bf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x50bf4)" ( (binary_expression "puVar23 + 0x50bf4" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar5 = *piVar15;" (assignment_expression "iVar5 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iStack_4c == iVar5) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_4c == iVar5)" ( (binary_expression "iStack_4c == iVar5" identifier == identifier) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(puVar23 + 0x50e7c);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x50e7c)" identifier = (pointer_expression "*(code **)(puVar23 + 0x50e7c)" * (cast_expression "(code **)(puVar23 + 0x50e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x50e7c)" ( (binary_expression "puVar23 + 0x50e7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = **(int **)(pcVar24 + 0x4ffd8);" (assignment_expression "iVar5 = **(int **)(pcVar24 + 0x4ffd8)" identifier = (pointer_expression "**(int **)(pcVar24 + 0x4ffd8)" * (pointer_expression "*(int **)(pcVar24 + 0x4ffd8)" * (cast_expression "(int **)(pcVar24 + 0x4ffd8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x4ffd8)" ( (binary_expression "pcVar24 + 0x4ffd8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar5 + 0x2c) == 0) {\n    iVar16 = *(int *)(iVar5 + 0x28);\n    iVar19 = *(int *)(iVar5 + 0x24);\n    query_screen_dimensions();\n    puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar16 = *(int *)(iVar5 + 0x28);\n    iVar19 = *(int *)(iVar5 + 0x24);\n    query_screen_dimensions();\n    puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);\n  }" { (expression_statement "iVar16 = *(int *)(iVar5 + 0x28);" (assignment_expression "iVar16 = *(int *)(iVar5 + 0x28)" identifier = (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar19 = *(int *)(iVar5 + 0x24)" identifier = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "query_screen_dimensions();" (call_expression "query_screen_dimensions()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20);" (assignment_expression "puVar20 = (undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20)" identifier = (cast_expression "(undefined1 *)\n              (iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20)" ( (binary_expression "iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24) | (uint)puVar20" (binary_expression "iVar16 - *(int *)(iVar5 + 0x28) | iVar19 - *(int *)(iVar5 + 0x24)" (binary_expression "iVar16 - *(int *)(iVar5 + 0x28)" identifier - (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) ))))) | (binary_expression "iVar19 - *(int *)(iVar5 + 0x24)" identifier - (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))))) | (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) (expression_statement "sync_cursor(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34));" (call_expression "sync_cursor(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34))" identifier (argument_list "(*(char **)(iVar5 + 8),(int *)(iVar5 + 0x30),(int *)(iVar5 + 0x34))" ( (pointer_expression "*(char **)(iVar5 + 8)" * (cast_expression "(char **)(iVar5 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) , (cast_expression "(int *)(iVar5 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) ))) , (cast_expression "(int *)(iVar5 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x24) == 1) {\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }\n  else {\n    iVar16 = iVar5 + 0x478;\n    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);\n    uVar4 = 0;\n    pbVar21 = *(byte **)(iVar5 + 0x48);\n    do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x24) == 1)" ( (binary_expression "*(int *)(iVar5 + 0x24) == 1" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }" { (expression_statement "iVar16 = *(int *)(iVar5 + 0x34);" (assignment_expression "iVar16 = *(int *)(iVar5 + 0x34)" identifier = (pointer_expression "*(int *)(iVar5 + 0x34)" * (cast_expression "(int *)(iVar5 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar16 = iVar5 + 0x478;\n    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);\n    uVar4 = 0;\n    pbVar21 = *(byte **)(iVar5 + 0x48);\n    do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }" else (compound_statement "{\n    iVar16 = iVar5 + 0x478;\n    puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);\n    uVar4 = 0;\n    pbVar21 = *(byte **)(iVar5 + 0x48);\n    do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);\n    iVar16 = *(int *)(iVar5 + 0x34);\n  }" { (expression_statement "iVar16 = iVar5 + 0x478;" (assignment_expression "iVar16 = iVar5 + 0x478" identifier = (binary_expression "iVar5 + 0x478" identifier + number_literal)) ;) (expression_statement "puVar7 = *(undefined4 **)(pcVar24 + 0x50b14);" (assignment_expression "puVar7 = *(undefined4 **)(pcVar24 + 0x50b14)" identifier = (pointer_expression "*(undefined4 **)(pcVar24 + 0x50b14)" * (cast_expression "(undefined4 **)(pcVar24 + 0x50b14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x50b14)" ( (binary_expression "pcVar24 + 0x50b14" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "pbVar21 = *(byte **)(iVar5 + 0x48);" (assignment_expression "pbVar21 = *(byte **)(iVar5 + 0x48)" identifier = (pointer_expression "*(byte **)(iVar5 + 0x48)" * (cast_expression "(byte **)(iVar5 + 0x48)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(int *)(iVar5 + 0x24) - 1U);" do (compound_statement "{\n      uVar6 = *(uint *)(iVar5 + 0x38);\n      uVar10 = 0;\n      iVar19 = *(int *)(iVar5 + 0x54);\n      bVar18 = 0x7e;\n      pbVar17 = pbVar21;\n      do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));\n      uVar13 = *(uint *)(iVar5 + 0x28);\nLAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }\n      uVar10 = uVar10 - uVar6;\n      pcVar22 = (char *)(iVar16 + uVar6);\n      if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }\n      pbVar17 = *(byte **)(iVar5 + 4);\n      if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }\n      uVar10 = uVar13 - 1;\n      pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));\n      if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }\n      uVar4 = uVar4 + 1;\n    }" { (expression_statement "uVar6 = *(uint *)(iVar5 + 0x38);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x38)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x38)" * (cast_expression "(uint *)(iVar5 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar19 = *(int *)(iVar5 + 0x54);" (assignment_expression "iVar19 = *(int *)(iVar5 + 0x54)" identifier = (pointer_expression "*(int *)(iVar5 + 0x54)" * (cast_expression "(int *)(iVar5 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "bVar18 = 0x7e;" (assignment_expression "bVar18 = 0x7e" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar21;" (assignment_expression "pbVar17 = pbVar21" identifier = identifier) ;) (do_statement "do {\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      } while (pbVar17 < *(byte **)(iVar5 + 4));" do (compound_statement "{\n        uVar13 = *(uint *)(iVar5 + 0x28);\n        if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;\n        uVar8 = uVar10 + 1;\n        uVar9 = uVar8;\n        if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }\n        *pbVar11 = bVar18;\n        iVar19 = *(int *)(iVar5 + 0x54);\n        uVar10 = uVar9;\n        if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }\n      }" { (expression_statement "uVar13 = *(uint *)(iVar5 + 0x28);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x28)" * (cast_expression "(uint *)(iVar5 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 + uVar13 <= uVar10) goto LAB_000da49c;" if (parenthesized_expression "(iVar19 + uVar13 <= uVar10)" ( (binary_expression "iVar19 + uVar13 <= uVar10" (binary_expression "iVar19 + uVar13" identifier + identifier) <= identifier) )) (goto_statement "goto LAB_000da49c;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar10 + 1;" (assignment_expression "uVar8 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (pbVar17 < *(byte **)(iVar5 + 4)) {\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }\n        else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }" if (parenthesized_expression "(pbVar17 < *(byte **)(iVar5 + 4))" ( (binary_expression "pbVar17 < *(byte **)(iVar5 + 4)" identifier < (pointer_expression "*(byte **)(iVar5 + 4)" * (cast_expression "(byte **)(iVar5 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          bVar18 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (bVar18 == 10) goto LAB_000da49c;\n          pbVar11 = (byte *)(iVar16 + uVar10);\n          if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }\n        }" { (expression_statement "bVar18 = *pbVar17;" (assignment_expression "bVar18 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (bVar18 == 10) goto LAB_000da49c;" if (parenthesized_expression "(bVar18 == 10)" ( (binary_expression "bVar18 == 10" identifier == number_literal) )) (goto_statement "goto LAB_000da49c;" goto statement_identifier ;)) (expression_statement "pbVar11 = (byte *)(iVar16 + uVar10);" (assignment_expression "pbVar11 = (byte *)(iVar16 + uVar10)" identifier = (cast_expression "(byte *)(iVar16 + uVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar10)" ( (binary_expression "iVar16 + uVar10" identifier + identifier) )))) ;) (if_statement "if ((char)bVar18 < '\0') {\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }\n          else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }" if (parenthesized_expression "((char)bVar18 < '\0')" ( (binary_expression "(char)bVar18 < '\0'" (cast_expression "(char)bVar18" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }\n          }" { (if_statement "if (bVar18 == 0x9b) {\n              bVar18 = 0x2e;\n            }" if (parenthesized_expression "(bVar18 == 0x9b)" ( (binary_expression "bVar18 == 0x9b" identifier == number_literal) )) (compound_statement "{\n              bVar18 = 0x2e;\n            }" { (expression_statement "bVar18 = 0x2e;" (assignment_expression "bVar18 = 0x2e" identifier = number_literal) ;) })) }) (else_clause "else if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }" else (if_statement "if (bVar18 < 0x20) {\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }\n          else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }" if (parenthesized_expression "(bVar18 < 0x20)" ( (binary_expression "bVar18 < 0x20" identifier < number_literal) )) (compound_statement "{\n            if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }\n          }" { (if_statement "if (bVar18 == 9) {\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }\n            else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }" if (parenthesized_expression "(bVar18 == 9)" ( (binary_expression "bVar18 == 9" identifier == number_literal) )) (compound_statement "{\n              if (iVar19 == 0) {\n                trap(7);\n              }\n              bVar18 = 0x20;\n              if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }\n            }" { (if_statement "if (iVar19 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "bVar18 = 0x20;" (assignment_expression "bVar18 = 0x20" identifier = number_literal) ;) (if_statement "if ((int)uVar10 % iVar19 != iVar19 + -1) {\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }" if (parenthesized_expression "((int)uVar10 % iVar19 != iVar19 + -1)" ( (binary_expression "(int)uVar10 % iVar19 != iVar19 + -1" (binary_expression "(int)uVar10 % iVar19" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) % identifier) != (binary_expression "iVar19 + -1" identifier + number_literal)) )) (compound_statement "{\n                *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                iVar19 = *(int *)(iVar5 + 0x54);\n                if (iVar19 == 0) {\n                  trap(7);\n                }\n                if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }\n                pbVar11 = (byte *)(iVar16 + uVar8);\n                bVar18 = 0x20;\n                uVar9 = uVar10 + 2;\n              }" { (expression_statement "*(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;" (assignment_expression "*(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20" (pointer_expression "*(undefined1 *)(iVar5 + uVar8 + 0x477)" * (cast_expression "(undefined1 *)(iVar5 + uVar8 + 0x477)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + uVar8 + 0x477)" ( (binary_expression "iVar5 + uVar8 + 0x477" (binary_expression "iVar5 + uVar8" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar19 = *(int *)(iVar5 + 0x54);" (assignment_expression "iVar19 = *(int *)(iVar5 + 0x54)" identifier = (pointer_expression "*(int *)(iVar5 + 0x54)" * (cast_expression "(int *)(iVar5 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == 0) {\n                  trap(7);\n                }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                  trap(7);\n                }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if ((int)uVar8 % iVar19 != iVar19 + -1) {\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }" if (parenthesized_expression "((int)uVar8 % iVar19 != iVar19 + -1)" ( (binary_expression "(int)uVar8 % iVar19 != iVar19 + -1" (binary_expression "(int)uVar8 % iVar19" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) % identifier) != (binary_expression "iVar19 + -1" identifier + number_literal)) )) (compound_statement "{\n                  do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);\n                }" { (do_statement "do {\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  } while ((int)uVar8 % iVar19 != iVar19 + -1);" do (compound_statement "{\n                    uVar10 = uVar8;\n                    uVar8 = uVar10 + 1;\n                    *(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;\n                    iVar19 = *(int *)(iVar5 + 0x54);\n                    if (iVar19 == 0) {\n                      trap(7);\n                    }\n                  }" { (expression_statement "uVar10 = uVar8;" (assignment_expression "uVar10 = uVar8" identifier = identifier) ;) (expression_statement "uVar8 = uVar10 + 1;" (assignment_expression "uVar8 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20;" (assignment_expression "*(undefined1 *)(iVar5 + uVar8 + 0x477) = 0x20" (pointer_expression "*(undefined1 *)(iVar5 + uVar8 + 0x477)" * (cast_expression "(undefined1 *)(iVar5 + uVar8 + 0x477)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + uVar8 + 0x477)" ( (binary_expression "iVar5 + uVar8 + 0x477" (binary_expression "iVar5 + uVar8" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar19 = *(int *)(iVar5 + 0x54);" (assignment_expression "iVar19 = *(int *)(iVar5 + 0x54)" identifier = (pointer_expression "*(int *)(iVar5 + 0x54)" * (cast_expression "(int *)(iVar5 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == 0) {\n                      trap(7);\n                    }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                      trap(7);\n                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) }) while (parenthesized_expression "((int)uVar8 % iVar19 != iVar19 + -1)" ( (binary_expression "(int)uVar8 % iVar19 != iVar19 + -1" (binary_expression "(int)uVar8 % iVar19" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) % identifier) != (binary_expression "iVar19 + -1" identifier + number_literal)) )) ;) })) (expression_statement "pbVar11 = (byte *)(iVar16 + uVar8);" (assignment_expression "pbVar11 = (byte *)(iVar16 + uVar8)" identifier = (cast_expression "(byte *)(iVar16 + uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar8)" ( (binary_expression "iVar16 + uVar8" identifier + identifier) )))) ;) (expression_statement "bVar18 = 0x20;" (assignment_expression "bVar18 = 0x20" identifier = number_literal) ;) (expression_statement "uVar9 = uVar10 + 2;" (assignment_expression "uVar9 = uVar10 + 2" identifier = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) })) }) (else_clause "else {\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }" else (compound_statement "{\n              *pbVar11 = 0x5e;\n              pbVar11 = (byte *)(iVar16 + uVar8);\n              bVar18 = bVar18 + 0x40;\n              uVar9 = uVar10 + 2;\n            }" { (expression_statement "*pbVar11 = 0x5e;" (assignment_expression "*pbVar11 = 0x5e" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11 = (byte *)(iVar16 + uVar8);" (assignment_expression "pbVar11 = (byte *)(iVar16 + uVar8)" identifier = (cast_expression "(byte *)(iVar16 + uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar8)" ( (binary_expression "iVar16 + uVar8" identifier + identifier) )))) ;) (expression_statement "bVar18 = bVar18 + 0x40;" (assignment_expression "bVar18 = bVar18 + 0x40" identifier = (binary_expression "bVar18 + 0x40" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar10 + 2;" (assignment_expression "uVar9 = uVar10 + 2" identifier = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }" else (if_statement "if (bVar18 == 0x7f) {\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }" if (parenthesized_expression "(bVar18 == 0x7f)" ( (binary_expression "bVar18 == 0x7f" identifier == number_literal) )) (compound_statement "{\n            *pbVar11 = 0x5e;\n            uVar9 = uVar10 + 2;\n            pbVar11 = (byte *)(iVar16 + uVar8);\n            bVar18 = 0x3f;\n          }" { (expression_statement "*pbVar11 = 0x5e;" (assignment_expression "*pbVar11 = 0x5e" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "uVar9 = uVar10 + 2;" (assignment_expression "uVar9 = uVar10 + 2" identifier = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) (expression_statement "pbVar11 = (byte *)(iVar16 + uVar8);" (assignment_expression "pbVar11 = (byte *)(iVar16 + uVar8)" identifier = (cast_expression "(byte *)(iVar16 + uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar8)" ( (binary_expression "iVar16 + uVar8" identifier + identifier) )))) ;) (expression_statement "bVar18 = 0x3f;" (assignment_expression "bVar18 = 0x3f" identifier = number_literal) ;) })))))) }) (else_clause "else {\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }" else (compound_statement "{\n          pbVar11 = (byte *)(iVar16 + uVar10);\n        }" { (expression_statement "pbVar11 = (byte *)(iVar16 + uVar10);" (assignment_expression "pbVar11 = (byte *)(iVar16 + uVar10)" identifier = (cast_expression "(byte *)(iVar16 + uVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar10)" ( (binary_expression "iVar16 + uVar10" identifier + identifier) )))) ;) }))) (expression_statement "*pbVar11 = bVar18;" (assignment_expression "*pbVar11 = bVar18" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "iVar19 = *(int *)(iVar5 + 0x54);" (assignment_expression "iVar19 = *(int *)(iVar5 + 0x54)" identifier = (pointer_expression "*(int *)(iVar5 + 0x54)" * (cast_expression "(int *)(iVar5 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if ((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)) {\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }" if (parenthesized_expression "((iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9))" ( (binary_expression "(iVar19 <= (int)uVar6) && (iVar19 <= (int)uVar9)" (parenthesized_expression "(iVar19 <= (int)uVar6)" ( (binary_expression "iVar19 <= (int)uVar6" identifier <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar19 <= (int)uVar9)" ( (binary_expression "iVar19 <= (int)uVar9" identifier <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          uVar10 = uVar9 - iVar19;\n          (**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);\n          uVar6 = uVar6 - iVar19;\n        }" { (expression_statement "uVar10 = uVar9 - iVar19;" (assignment_expression "uVar10 = uVar9 - iVar19" identifier = (binary_expression "uVar9 - iVar19" identifier - identifier)) ;) (expression_statement "(**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9);" (call_expression "(**(code **)(pcVar24 + 0x50e48))(iVar16,iVar16 + iVar19,uVar9)" (parenthesized_expression "(**(code **)(pcVar24 + 0x50e48))" ( (pointer_expression "**(code **)(pcVar24 + 0x50e48)" * (pointer_expression "*(code **)(pcVar24 + 0x50e48)" * (cast_expression "(code **)(pcVar24 + 0x50e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x50e48)" ( (binary_expression "pcVar24 + 0x50e48" identifier + number_literal) ))))) )) (argument_list "(iVar16,iVar16 + iVar19,uVar9)" ( identifier , (binary_expression "iVar16 + iVar19" identifier + identifier) , identifier ))) ;) (expression_statement "uVar6 = uVar6 - iVar19;" (assignment_expression "uVar6 = uVar6 - iVar19" identifier = (binary_expression "uVar6 - iVar19" identifier - identifier)) ;) })) }) while (parenthesized_expression "(pbVar17 < *(byte **)(iVar5 + 4))" ( (binary_expression "pbVar17 < *(byte **)(iVar5 + 4)" identifier < (pointer_expression "*(byte **)(iVar5 + 4)" * (cast_expression "(byte **)(iVar5 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) )) ;) (expression_statement "uVar13 = *(uint *)(iVar5 + 0x28);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x28)" * (cast_expression "(uint *)(iVar5 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000da49c:\n      if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }" statement_identifier : (if_statement "if ((int)uVar10 <= (int)uVar6) {\n        uVar6 = uVar10;\n      }" if (parenthesized_expression "((int)uVar10 <= (int)uVar6)" ( (binary_expression "(int)uVar10 <= (int)uVar6" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar6 = uVar10;\n      }" { (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) }))) (expression_statement "uVar10 = uVar10 - uVar6;" (assignment_expression "uVar10 = uVar10 - uVar6" identifier = (binary_expression "uVar10 - uVar6" identifier - identifier)) ;) (expression_statement "pcVar22 = (char *)(iVar16 + uVar6);" (assignment_expression "pcVar22 = (char *)(iVar16 + uVar6)" identifier = (cast_expression "(char *)(iVar16 + uVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar6)" ( (binary_expression "iVar16 + uVar6" identifier + identifier) )))) ;) (if_statement "if (uVar10 < uVar13) {\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }" if (parenthesized_expression "(uVar10 < uVar13)" ( (binary_expression "uVar10 < uVar13" identifier < identifier) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);\n        uVar13 = *(uint *)(iVar5 + 0x28);\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10);" (call_expression "(**(code **)(pcVar24 + 0x50b90))(pcVar22 + uVar10,0x20,uVar13 - uVar10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x50b90))" ( (pointer_expression "**(code **)(pcVar24 + 0x50b90)" * (pointer_expression "*(code **)(pcVar24 + 0x50b90)" * (cast_expression "(code **)(pcVar24 + 0x50b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x50b90)" ( (binary_expression "pcVar24 + 0x50b90" identifier + number_literal) ))))) )) (argument_list "(pcVar22 + uVar10,0x20,uVar13 - uVar10)" ( (binary_expression "pcVar22 + uVar10" identifier + identifier) , number_literal , (binary_expression "uVar13 - uVar10" identifier - identifier) ))) ;) (expression_statement "uVar13 = *(uint *)(iVar5 + 0x28);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x28)" * (cast_expression "(uint *)(iVar5 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) ))))) ;) })) (expression_statement "pbVar17 = *(byte **)(iVar5 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar5 + 4)" identifier = (pointer_expression "*(byte **)(iVar5 + 4)" * (cast_expression "(byte **)(iVar5 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)) {\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }" if (parenthesized_expression "((pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0))" ( (binary_expression "(pbVar21 < pbVar17) &&\n         (iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)" (parenthesized_expression "(pbVar21 < pbVar17)" ( (binary_expression "pbVar21 < pbVar17" identifier < identifier) )) && (parenthesized_expression "(iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0)" ( (comma_expression "iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21),\n         pbVar21 = pbVar17, iVar19 != 0" (assignment_expression "iVar19 = (**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21)" identifier = (call_expression "(**(code **)(pcVar24 + 0x50b70))(pbVar21,10,(int)pbVar17 - (int)pbVar21)" (parenthesized_expression "(**(code **)(pcVar24 + 0x50b70))" ( (pointer_expression "**(code **)(pcVar24 + 0x50b70)" * (pointer_expression "*(code **)(pcVar24 + 0x50b70)" * (cast_expression "(code **)(pcVar24 + 0x50b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x50b70)" ( (binary_expression "pcVar24 + 0x50b70" identifier + number_literal) ))))) )) (argument_list "(pbVar21,10,(int)pbVar17 - (int)pbVar21)" ( identifier , number_literal , (binary_expression "(int)pbVar17 - (int)pbVar21" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , (comma_expression "pbVar21 = pbVar17, iVar19 != 0" (assignment_expression "pbVar21 = pbVar17" identifier = identifier) , (binary_expression "iVar19 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n        iVar5 = FUN_000da508();\n        return iVar5;\n      }" { (expression_statement "iVar5 = FUN_000da508();" (assignment_expression "iVar5 = FUN_000da508()" identifier = (call_expression "FUN_000da508()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar5;" return identifier ;) })) (expression_statement "uVar10 = uVar13 - 1;" (assignment_expression "uVar10 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c));" (assignment_expression "pcVar14 = (char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c))" identifier = (cast_expression "(char *)(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 * uVar13 + *(int *)(iVar5 + 0x4c))" ( (binary_expression "uVar4 * uVar13 + *(int *)(iVar5 + 0x4c)" (binary_expression "uVar4 * uVar13" identifier * identifier) + (pointer_expression "*(int *)(iVar5 + 0x4c)" * (cast_expression "(int *)(iVar5 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) )))) ;) (if_statement "if (puVar20 == (undefined1 *)0x0) {\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }\n      else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }" if (parenthesized_expression "(puVar20 == (undefined1 *)0x0)" ( (binary_expression "puVar20 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar6 = uVar10;\n        if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }\n        if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }\n        if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }\n      }" { (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (if_statement "if ((int)uVar10 < 0) {\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }\n        else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }" if (parenthesized_expression "((int)uVar10 < 0)" ( (binary_expression "(int)uVar10 < 0" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          iVar19 = 0;\nLAB_000da5fc:\n          bVar2 = false;\n          if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }\n          bVar1 = (int)uVar10 < iVar19;\n        }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000da5fc:\n          bVar2 = false;" statement_identifier : (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;)) (if_statement "if (*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)) {\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }" if (parenthesized_expression "(*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38))" ( (binary_expression "*(int *)(iVar5 + 0x78) != *(int *)(iVar5 + 0x38)" (pointer_expression "*(int *)(iVar5 + 0x78)" * (cast_expression "(int *)(iVar5 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x78)" ( (binary_expression "iVar5 + 0x78" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar5 + 0x38)" * (cast_expression "(int *)(iVar5 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }\n            goto LAB_000da520;\n          }" { (labeled_statement "LAB_000da648:\n            if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }" statement_identifier : (if_statement "if ((int)uVar10 < iVar19) {\n              iVar19 = 0;\n            }" if (parenthesized_expression "((int)uVar10 < iVar19)" ( (binary_expression "(int)uVar10 < iVar19" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n              iVar19 = 0;\n            }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000da520;" goto statement_identifier ;) })) (expression_statement "bVar1 = (int)uVar10 < iVar19;" (assignment_expression "bVar1 = (int)uVar10 < iVar19" identifier = (binary_expression "(int)uVar10 < iVar19" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) ;) }) (else_clause "else {\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }" else (compound_statement "{\n          iVar19 = 0;\n          if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }\n          if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;\n          do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);\n          bVar2 = true;\n          if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }\n        }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar22 == *pcVar14) {\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }" if (parenthesized_expression "(*pcVar22 == *pcVar14)" ( (binary_expression "*pcVar22 == *pcVar14" (pointer_expression "*pcVar22" * identifier) == (pointer_expression "*pcVar14" * identifier)) )) (compound_statement "{\n            do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);\n          }" { (do_statement "do {\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            } while (pcVar22[iVar19] == pcVar14[iVar19]);" do (compound_statement "{\n              iVar19 = iVar19 + 1;\n              if ((int)uVar10 < iVar19) goto LAB_000da5fc;\n            }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar10 < iVar19) goto LAB_000da5fc;" if (parenthesized_expression "((int)uVar10 < iVar19)" ( (binary_expression "(int)uVar10 < iVar19" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_000da5fc;" goto statement_identifier ;)) }) while (parenthesized_expression "(pcVar22[iVar19] == pcVar14[iVar19])" ( (binary_expression "pcVar22[iVar19] == pcVar14[iVar19]" (subscript_expression "pcVar22[iVar19]" identifier [ identifier ]) == (subscript_expression "pcVar14[iVar19]" identifier [ identifier ])) )) ;) })) (if_statement "if (pcVar14[uVar10] != pcVar22[uVar10]) goto LAB_000da648;" if (parenthesized_expression "(pcVar14[uVar10] != pcVar22[uVar10])" ( (binary_expression "pcVar14[uVar10] != pcVar22[uVar10]" (subscript_expression "pcVar14[uVar10]" identifier [ identifier ]) != (subscript_expression "pcVar22[uVar10]" identifier [ identifier ])) )) (goto_statement "goto LAB_000da648;" goto statement_identifier ;)) (do_statement "do {\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          } while (pcVar22[uVar6] == pcVar14[uVar6]);" do (compound_statement "{\n            uVar6 = uVar6 - 1;\n            bVar1 = (int)uVar6 < iVar19;\n            if (bVar1) break;\n          }" { (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "bVar1 = (int)uVar6 < iVar19;" (assignment_expression "bVar1 = (int)uVar6 < iVar19" identifier = (binary_expression "(int)uVar6 < iVar19" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) ;) (if_statement "if (bVar1) break;" if (parenthesized_expression "(bVar1)" ( identifier )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(pcVar22[uVar6] == pcVar14[uVar6])" ( (binary_expression "pcVar22[uVar6] == pcVar14[uVar6]" (subscript_expression "pcVar22[uVar6]" identifier [ identifier ]) == (subscript_expression "pcVar14[uVar6]" identifier [ identifier ])) )) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (if_statement "if (uVar10 < uVar6) {\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }" if (parenthesized_expression "(uVar10 < uVar6)" ( (binary_expression "uVar10 < uVar6" identifier < identifier) )) (compound_statement "{\n            bVar1 = (int)uVar10 < iVar19;\n            uVar6 = uVar10;\n          }" { (expression_statement "bVar1 = (int)uVar10 < iVar19;" (assignment_expression "bVar1 = (int)uVar10 < iVar19" identifier = (binary_expression "(int)uVar10 < iVar19" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) })) }))) (if_statement "if (bVar1) {\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n          iVar19 = 0;\n          uVar6 = uVar10;\n        }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) })) (if_statement "if (bVar2) {\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          iVar12 = uVar6 - iVar19;\n          goto LAB_000da524;\n        }" { (expression_statement "iVar12 = uVar6 - iVar19;" (assignment_expression "iVar12 = uVar6 - iVar19" identifier = (binary_expression "uVar6 - iVar19" identifier - identifier)) ;) (goto_statement "goto LAB_000da524;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }" else (compound_statement "{\n        iVar19 = 0;\nLAB_000da520:\n        iVar12 = uVar10 - iVar19;\nLAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);\n        place_cursor(uVar4,iVar19);\n        (**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000da520:\n        iVar12 = uVar10 - iVar19;" statement_identifier : (expression_statement "iVar12 = uVar10 - iVar19;" (assignment_expression "iVar12 = uVar10 - iVar19" identifier = (binary_expression "uVar10 - iVar19" identifier - identifier)) ;)) (labeled_statement "LAB_000da524:\n        (**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);" statement_identifier : (expression_statement "(**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1);" (call_expression "(**(code **)(pcVar24 + 0x50e24))(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1)" (parenthesized_expression "(**(code **)(pcVar24 + 0x50e24))" ( (pointer_expression "**(code **)(pcVar24 + 0x50e24)" * (pointer_expression "*(code **)(pcVar24 + 0x50e24)" * (cast_expression "(code **)(pcVar24 + 0x50e24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x50e24)" ( (binary_expression "pcVar24 + 0x50e24" identifier + number_literal) ))))) )) (argument_list "(pcVar14 + iVar19,pcVar22 + iVar19,iVar12 + 1)" ( (binary_expression "pcVar14 + iVar19" identifier + identifier) , (binary_expression "pcVar22 + iVar19" identifier + identifier) , (binary_expression "iVar12 + 1" identifier + number_literal) ))) ;)) (expression_statement "place_cursor(uVar4,iVar19);" (call_expression "place_cursor(uVar4,iVar19)" identifier (argument_list "(uVar4,iVar19)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7);" (call_expression "(**(code **)(pcVar24 + 0x50d10))(pcVar14 + iVar19,iVar12 + 1,1,*puVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x50d10))" ( (pointer_expression "**(code **)(pcVar24 + 0x50d10)" * (pointer_expression "*(code **)(pcVar24 + 0x50d10)" * (cast_expression "(code **)(pcVar24 + 0x50d10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x50d10)" ( (binary_expression "pcVar24 + 0x50d10" identifier + number_literal) ))))) )) (argument_list "(pcVar14 + iVar19,iVar12 + 1,1,*puVar7)" ( (binary_expression "pcVar14 + iVar19" identifier + identifier) , (binary_expression "iVar12 + 1" identifier + number_literal) , number_literal , (pointer_expression "*puVar7" * identifier) ))) ;) }))) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 < *(int *)(iVar5 + 0x24) - 1U)" ( (binary_expression "uVar4 < *(int *)(iVar5 + 0x24) - 1U" identifier < (binary_expression "*(int *)(iVar5 + 0x24) - 1U" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) - number_literal)) )) ;) (expression_statement "iVar16 = *(int *)(iVar5 + 0x34);" (assignment_expression "iVar16 = *(int *)(iVar5 + 0x34)" identifier = (pointer_expression "*(int *)(iVar5 + 0x34)" * (cast_expression "(int *)(iVar5 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))))) ;) }))) (expression_statement "place_cursor(*(int *)(iVar5 + 0x30),iVar16);" (call_expression "place_cursor(*(int *)(iVar5 + 0x30),iVar16)" identifier (argument_list "(*(int *)(iVar5 + 0x30),iVar16)" ( (pointer_expression "*(int *)(iVar5 + 0x30)" * (cast_expression "(int *)(iVar5 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 0x78) = *(int *)(iVar5 + 0x38);" (assignment_expression "*(int *)(iVar5 + 0x78) = *(int *)(iVar5 + 0x38)" (pointer_expression "*(int *)(iVar5 + 0x78)" * (cast_expression "(int *)(iVar5 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x78)" ( (binary_expression "iVar5 + 0x78" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar5 + 0x38)" * (cast_expression "(int *)(iVar5 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) ))))) ;) (return_statement "return *(int *)(iVar5 + 0x38);" return (pointer_expression "*(int *)(iVar5 + 0x38)" * (cast_expression "(int *)(iVar5 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) ;) })))
(translation_unit "uint FUN_000da1ac(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}\n\n" (function_definition "uint FUN_000da1ac(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}" type_identifier (function_declarator "FUN_000da1ac(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined2 local_18;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_FUN_0012a244)();\n  }" { (expression_statement "(*(code *)PTR_FUN_0012a244)();" (call_expression "(*(code *)PTR_FUN_0012a244)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a244)" ( (pointer_expression "*(code *)PTR_FUN_0012a244" * (cast_expression "(code *)PTR_FUN_0012a244" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" identifier = number_literal) ;) (expression_statement "local_18 = 1;" (assignment_expression "local_18 = 1" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);" (assignment_expression "iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10)" identifier = (call_expression "FUN_000f8568(&local_1c,1,param_1 * 10)" identifier (argument_list "(&local_1c,1,param_1 * 10)" ( (pointer_expression "&local_1c" & identifier) , number_literal , (binary_expression "param_1 * 10" identifier * number_literal) )))) ;) (if_statement "if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar1)" ( (binary_expression "local_14 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (uint)(0 < iVar2);\n  }" { (return_statement "return (uint)(0 < iVar2);" return (call_expression "(uint)(0 < iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) ))) ;) })) (expression_statement "uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000da1ac(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}" (type_identifier "uint") (function_declarator "FUN_000da1ac(int param_1)" (identifier "FUN_000da1ac") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 local_1c;\n  undefined2 local_18;\n  int local_14;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }\n  local_1c = 0;\n  local_18 = 1;\n  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);\n  if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }\n  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return uVar3;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (declaration "undefined2 local_18;" (type_identifier "undefined2") (identifier "local_18") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (if_statement "if (param_1 != 0) {\n    (*(code *)PTR_FUN_0012a244)();\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_FUN_0012a244)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a244)();" (call_expression "(*(code *)PTR_FUN_0012a244)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a244)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a244" (* "*") (cast_expression "(code *)PTR_FUN_0012a244" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a244"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" (identifier "local_1c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_18 = 1;" (assignment_expression "local_18 = 1" (identifier "local_18") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);" (assignment_expression "iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10)" (identifier "iVar2") (= "=") (call_expression "FUN_000f8568(&local_1c,1,param_1 * 10)" (identifier "FUN_000f8568") (argument_list "(&local_1c,1,param_1 * 10)" (( "(") (pointer_expression "&local_1c" (& "&") (identifier "local_1c")) (, ",") (number_literal "1") (, ",") (binary_expression "param_1 * 10" (identifier "param_1") (* "*") (number_literal "10")) () ")")))) (; ";")) (if_statement "if (local_14 == *(int *)puVar1) {\n    return (uint)(0 < iVar2);\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)puVar1)" (( "(") (binary_expression "local_14 == *(int *)puVar1" (identifier "local_14") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return (uint)(0 < iVar2);\n  }" ({ "{") (return_statement "return (uint)(0 < iVar2);" (return "return") (call_expression "(uint)(0 < iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

int function_1(int var_1)

{
  bool bVar1;
  bool bVar2;
  type_1 *puVar3;
  type_2 var_3;
  int var_4;
  type_2 var_6;
  type_3 *puVar7;
  type_2 var_18;
  type_2 var_19;
  type_2 var_7;
  type_4 *pbVar11;
  int var_25;
  type_2 var_14;
  char *var_24;
  int *piVar15;
  int var_11;
  type_4 var_16;
  type_4 *var_15;
  int var_12;
  type_5 *var_23;
  type_4 *var_21;
  char *var_20;
  type_1 *var_5;
  type_6 *var_9;
  type_5 auStack_70 [36];
  int var_8;
  int iStack_44;
  type_1 *puStack_40;
  type_6 *pcStack_3c;
  type_7 pfd [1];
  
  puVar3 = PTR___stack_chk_guard_0012b14c;
  var_3 = *(type_2 *)PTR___stack_chk_guard_0012b14c;
  if (var_1 != 0) {
    (*(type_6 *)PTR_fflush_all_0012a244)();
  }
  pfd[0].fd = 0;
  pfd[0].events = 1;
  var_7 = 1;
  var_4 = var_2(pfd,1,var_1 * 10);
  if (var_3 == *(type_2 *)puVar3) {
    return (type_2)(0 < var_4);
  }
  var_9 = var_26;
  var_5 = PTR___stack_chk_fail_0012b0c8;
  (*(type_6 *)PTR___stack_chk_fail_0012b0c8)();
  if ((int)var_3 < 0) {
    var_3 = 0;
  }
  puStack_40 = puVar3;
  piVar15 = *(int **)(var_5 + 0x50f00);
  var_8 = *piVar15;
  var_6 = *(type_2 *)(**(int **)(var_5 + 0x500b8) + 0x24);
  if (var_6 <= var_3) {
    var_3 = var_6 - 1;
  }
  var_6 = *(type_2 *)(**(int **)(var_5 + 0x500b8) + 0x28);
  if ((int)var_7 < 0) {
    var_7 = 0;
  }
  if (var_6 <= var_7) {
    var_7 = var_6 - 1;
  }
  var_23 = auStack_70;
  iStack_44 = var_1;
  pcStack_3c = var_9;
  (**(type_6 **)(var_5 + 0x50a14))
            (var_23,1,0x21,*(int *)(var_5 + 0x4ff40) + 0x12c0,var_3 + 1,var_7 + 1);
  (**(type_6 **)(var_5 + 0x50fb8))(var_23,**(type_3 **)(var_5 + 0x50bf4));
  var_4 = *piVar15;
  if (var_8 == var_4) {
    return var_4;
  }
  var_9 = *(type_6 **)(var_5 + 0x50e7c);
  (*var_9)();
  var_4 = **(int **)(var_9 + 0x4ffd8);
  if (*(int *)(var_4 + 0x2c) == 0) {
    var_11 = *(int *)(var_4 + 0x28);
    var_12 = *(int *)(var_4 + 0x24);
    var_10();
    var_23 = (type_5 *)
              (var_11 - *(int *)(var_4 + 0x28) | var_12 - *(int *)(var_4 + 0x24) | (type_2)var_23);
  }
  var_13(*(char **)(var_4 + 8),(int *)(var_4 + 0x30),(int *)(var_4 + 0x34));
  if (*(int *)(var_4 + 0x24) == 1) {
    var_11 = *(int *)(var_4 + 0x34);
  }
  else {
    var_11 = var_4 + 0x478;
    puVar7 = *(type_3 **)(var_9 + 0x50b14);
    var_3 = 0;
    var_21 = *(type_4 **)(var_4 + 0x48);
    do {
      var_6 = *(type_2 *)(var_4 + 0x38);
      var_7 = 0;
      var_12 = *(int *)(var_4 + 0x54);
      var_16 = 0x7e;
      var_15 = var_21;
      do {
        var_14 = *(type_2 *)(var_4 + 0x28);
        if (var_12 + var_14 <= var_7) goto LAB_000da49c;
        var_18 = var_7 + 1;
        var_19 = var_18;
        if (var_15 < *(type_4 **)(var_4 + 4)) {
          var_16 = *var_15;
          var_15 = var_15 + 1;
          if (var_16 == 10) goto LAB_000da49c;
          pbVar11 = (type_4 *)(var_11 + var_7);
          if ((char)var_16 < '\0') {
            if (var_16 == 0x9b) {
              var_16 = 0x2e;
            }
          }
          else if (var_16 < 0x20) {
            if (var_16 == 9) {
              if (var_12 == 0) {
                var_17(7);
              }
              var_16 = 0x20;
              if ((int)var_7 % var_12 != var_12 + -1) {
                *(type_5 *)(var_4 + var_18 + 0x477) = 0x20;
                var_12 = *(int *)(var_4 + 0x54);
                if (var_12 == 0) {
                  var_17(7);
                }
                if ((int)var_18 % var_12 != var_12 + -1) {
                  do {
                    var_7 = var_18;
                    var_18 = var_7 + 1;
                    *(type_5 *)(var_4 + var_18 + 0x477) = 0x20;
                    var_12 = *(int *)(var_4 + 0x54);
                    if (var_12 == 0) {
                      var_17(7);
                    }
                  } while ((int)var_18 % var_12 != var_12 + -1);
                }
                pbVar11 = (type_4 *)(var_11 + var_18);
                var_16 = 0x20;
                var_19 = var_7 + 2;
              }
            }
            else {
              *pbVar11 = 0x5e;
              pbVar11 = (type_4 *)(var_11 + var_18);
              var_16 = var_16 + 0x40;
              var_19 = var_7 + 2;
            }
          }
          else if (var_16 == 0x7f) {
            *pbVar11 = 0x5e;
            var_19 = var_7 + 2;
            pbVar11 = (type_4 *)(var_11 + var_18);
            var_16 = 0x3f;
          }
        }
        else {
          pbVar11 = (type_4 *)(var_11 + var_7);
        }
        *pbVar11 = var_16;
        var_12 = *(int *)(var_4 + 0x54);
        var_7 = var_19;
        if ((var_12 <= (int)var_6) && (var_12 <= (int)var_19)) {
          var_7 = var_19 - var_12;
          (**(type_6 **)(var_9 + 0x50e48))(var_11,var_11 + var_12,var_19);
          var_6 = var_6 - var_12;
        }
      } while (var_15 < *(type_4 **)(var_4 + 4));
      var_14 = *(type_2 *)(var_4 + 0x28);
LAB_000da49c:
      if ((int)var_7 <= (int)var_6) {
        var_6 = var_7;
      }
      var_7 = var_7 - var_6;
      var_20 = (char *)(var_11 + var_6);
      if (var_7 < var_14) {
        (**(type_6 **)(var_9 + 0x50b90))(var_20 + var_7,0x20,var_14 - var_7);
        var_14 = *(type_2 *)(var_4 + 0x28);
      }
      var_15 = *(type_4 **)(var_4 + 4);
      if ((var_21 < var_15) &&
         (var_12 = (**(type_6 **)(var_9 + 0x50b70))(var_21,10,(int)var_15 - (int)var_21),
         var_21 = var_15, var_12 != 0)) {
        var_4 = var_22();
        return var_4;
      }
      var_7 = var_14 - 1;
      var_24 = (char *)(var_3 * var_14 + *(int *)(var_4 + 0x4c));
      if (var_23 == (type_5 *)0x0) {
        var_6 = var_7;
        if ((int)var_7 < 0) {
          var_12 = 0;
LAB_000da5fc:
          bVar2 = false;
          if (*(int *)(var_4 + 0x78) != *(int *)(var_4 + 0x38)) {
LAB_000da648:
            if ((int)var_7 < var_12) {
              var_12 = 0;
            }
            goto LAB_000da520;
          }
          bVar1 = (int)var_7 < var_12;
        }
        else {
          var_12 = 0;
          if (*var_20 == *var_24) {
            do {
              var_12 = var_12 + 1;
              if ((int)var_7 < var_12) goto LAB_000da5fc;
            } while (var_20[var_12] == var_24[var_12]);
          }
          if (var_24[var_7] != var_20[var_7]) goto LAB_000da648;
          do {
            var_6 = var_6 - 1;
            bVar1 = (int)var_6 < var_12;
            if (bVar1) break;
          } while (var_20[var_6] == var_24[var_6]);
          bVar2 = true;
          if (var_7 < var_6) {
            bVar1 = (int)var_7 < var_12;
            var_6 = var_7;
          }
        }
        if (bVar1) {
          var_12 = 0;
          var_6 = var_7;
        }
        if (bVar2) {
          var_25 = var_6 - var_12;
          goto LAB_000da524;
        }
      }
      else {
        var_12 = 0;
LAB_000da520:
        var_25 = var_7 - var_12;
LAB_000da524:
        (**(type_6 **)(var_9 + 0x50e24))(var_24 + var_12,var_20 + var_12,var_25 + 1);
        var_26(var_3,var_12);
        (**(type_6 **)(var_9 + 0x50d10))(var_24 + var_12,var_25 + 1,1,*puVar7);
      }
      var_3 = var_3 + 1;
    } while (var_3 < *(int *)(var_4 + 0x24) - 1U);
    var_11 = *(int *)(var_4 + 0x34);
  }
  var_26(*(int *)(var_4 + 0x30),var_11);
  *(int *)(var_4 + 0x78) = *(int *)(var_4 + 0x38);
  return *(int *)(var_4 + 0x38);
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (return_statement (identifier)))))

uint MASKED(int param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  undefined4 local_1c;
  undefined2 local_18;
  int local_14;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  local_14 = *(int *)PTR___stack_chk_guard_0012b14c;
  if (param_1 != 0) {
    (*(code *)PTR_FUN_0012a244)();
  }
  local_1c = 0;
  local_18 = 1;
  iVar2 = FUN_000f8568(&local_1c,1,param_1 * 10);
  if (local_14 == *(int *)puVar1) {
    return (uint)(0 < iVar2);
  }
  uVar3 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
  return uVar3;
}

