
void base32_encode(char *in,size_t inlen,char *out,size_t outlen)

{
  if (inlen == 0) {
    if (outlen != 0) {
      *out = '\0';
    }
  }
  else if (outlen != 0) {
    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];
    if (outlen != 1) {
      FUN_00068034();
      return;
    }
    return;
  }
  return;
}



/* WARNING: Removing unreachable block (ram,0x00067fc0) */

void base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)

{
  bool bVar1;
  byte bVar2;
  undefined *puVar3;
  undefined1 uVar5;
  uint uVar4;
  
  puVar3 = PTR_DAT_000b758c;
  if (param_2 == 0) {
    if (param_4 != 0) {
      *param_3 = 0;
    }
  }
  else if (param_4 != 0) {
    bVar2 = *param_1;
    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];
    if (param_4 != 1) {
      do {
        if (param_2 == 1) {
          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];
          if (param_4 == 2) {
            return;
          }
          param_3[2] = 0x3d;
          if (param_4 == 3) {
            return;
          }
          param_3[3] = 0x3d;
          if (param_4 == 4) {
            return;
          }
          uVar5 = 0x3d;
          param_2 = 0;
        }
        else {
          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];
          if (param_4 == 2) {
            return;
          }
          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];
          if (param_4 == 3) {
            return;
          }
          if (param_2 == 2) {
            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];
            if (param_4 == 4) {
              return;
            }
            uVar5 = 0x3d;
            param_2 = 0;
          }
          else {
            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]
            ;
            if (param_4 == 4) {
              return;
            }
            param_2 = param_2 + -3;
            if (param_2 == 0) {
              uVar4 = 0;
            }
            else {
              uVar4 = (uint)(param_1[3] >> 7);
            }
            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];
          }
        }
        param_3[4] = uVar5;
        if (param_4 == 5) {
          return;
        }
        if (param_2 == 0) {
          param_3[5] = 0x3d;
          if (param_4 == 6) {
            return;
          }
          uVar5 = 0x3d;
          param_2 = 0;
        }
        else {
          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];
          if (param_4 == 6) {
            return;
          }
          param_2 = param_2 + -1;
          if (param_2 == 0) {
            uVar4 = 0;
          }
          else {
            uVar4 = (uint)(param_1[4] >> 5);
          }
          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];
        }
        param_3[6] = uVar5;
        if (param_4 == 7) {
          return;
        }
        if (param_2 == 0) {
          param_3[7] = 0x3d;
          if (param_4 == 8) {
            return;
          }
LAB_00068140:
          param_3[8] = 0;
          return;
        }
        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];
        if (param_4 + -8 == 0) {
          return;
        }
        param_2 = param_2 + -1;
        if (param_2 == 0) goto LAB_00068140;
        param_1 = param_1 + 5;
        bVar2 = *param_1;
        bVar1 = param_4 != 9;
        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];
        param_3 = param_3 + 8;
        param_4 = param_4 + -8;
      } while (bVar1);
    }
    return;
  }
  return;
}


lui gp,0x5
addiu gp,gp,0x7534
addu gp,gp,t9
beq a1,zero,0x00068114
_nop
beq a3,zero,0x00068120
_lw t0,-0x7ea4(gp)
addiu sp,sp,-0x8
sw s1,0x4(sp)
sw s0,0x0(sp)
lbu v0,0x0(a0)
srl v1,v0,0x3
addiu t0,t0,0x10c0
addu v1,v1,t0
lbu v1,0x0(v1)
sb v1,0x0(a2)
li v1,0x1
beq a3,v1,0x0006815c
_or s0,zero,zero
or v1,t0,zero
li t3,0x3
li t1,0x2
li t4,0x4
li t7,0x3d
li t2,0x3d
li t5,0x5
li t6,0x6
li t8,0x7
b 0x00068034
_li t9,0x9
andi t0,t0,0x1f
addu t0,t0,v1
lbu t0,0x0(t0)
beq a3,t1,0x0006815c
_sb t0,0x1(a2)
bne v0,zero,0x00068064
_nop
beq a3,t3,0x0006815c
_sb t2,0x2(a2)
beq a3,t4,0x0006815c
_sb t2,0x3(a2)
b 0x000680d0
_or a1,t7,zero
b 0x000680c0
_or a1,s0,zero
beq a3,t6,0x0006815c
_sb t2,0x5(a2)
beq v0,zero,0x00067fdc
_or a1,t7,zero
b 0x000680fc
_lbu a1,0x3(a0)
or t0,s0,zero
addu a1,a1,t0
andi a1,a1,0x1f
addu a1,a1,v1
lb a1,0x0(a1)
beq a3,t8,0x0006815c
_sb a1,0x6(a2)
beq v0,zero,0x00068128
_addiu s1,a3,-0x8
addiu a2,a2,0x8
lbu a1,0x4(a0)
andi a1,a1,0x1f
addu a1,a1,v1
lbu a1,0x0(a1)
beq s1,zero,0x0006815c
_sb a1,-0x1(a2)
addiu a1,v0,-0x1
beq a1,zero,0x00068140
_nop
addiu a0,a0,0x5
lbu v0,0x0(a0)
srl t0,v0,0x3
addu t0,t0,v1
lbu t0,0x0(t0)
beq a3,t9,0x0006815c
_sb t0,0x0(a2)
or a3,s1,zero
sll t0,v0,0x2
addiu v0,a1,-0x1
beq v0,zero,0x00067f74
_nop
lbu v0,0x1(a0)
srl v0,v0,0x6
addu v0,v0,t0
andi v0,v0,0x1f
addu v0,v0,v1
lbu v0,0x0(v0)
beq a3,t1,0x0006815c
_sb v0,0x1(a2)
lbu v0,0x1(a0)
ext v0,v0,0x1,0x5
addu v0,v0,v1
lbu v0,0x0(v0)
beq a3,t3,0x0006815c
_sb v0,0x2(a2)
lbu v0,0x1(a0)
beq a1,t1,0x00068148
_sll v0,v0,0x4
lbu t0,0x2(a0)
srl t0,t0,0x4
addu v0,t0,v0
andi v0,v0,0x1f
addu v0,v0,v1
lbu v0,0x0(v0)
beq a3,t4,0x0006815c
_sb v0,0x3(a2)
lbu t0,0x2(a0)
addiu v0,a1,-0x3
beq v0,zero,0x00067fa8
_sll t0,t0,0x1
lbu a1,0x3(a0)
srl a1,a1,0x7
addu t0,t0,a1
andi t0,t0,0x1f
addu t0,t0,v1
lb a1,0x0(t0)
beq a3,t5,0x0006815c
_sb a1,0x4(a2)
beq v0,zero,0x00067fb0
_nop
lbu a1,0x3(a0)
ext a1,a1,0x2,0x5
addu a1,a1,v1
lbu a1,0x0(a1)
beq a3,t6,0x0006815c
_sb a1,0x5(a2)
lbu a1,0x3(a0)
addiu v0,v0,-0x1
beq v0,zero,0x00067fc8
_sll a1,a1,0x3
lbu t0,0x4(a0)
b 0x00067fcc
_srl t0,t0,0x5
beq a3,zero,0x00068120
_nop
sb zero,0x0(a2)
jr ra
_nop
addiu a2,a2,0x8
li v0,0x3d
sb v0,-0x1(a2)
li v0,0x8
beq a3,v0,0x00068160
_lw s1,0x4(sp)
b 0x0006815c
_sb zero,0x0(a2)
andi v0,v0,0x1f
addu v0,v0,v1
lbu v0,0x0(v0)
bne a3,t4,0x0006816c
_sb v0,0x3(a2)
lw s1,0x4(sp)
lw s0,0x0(sp)
jr ra
_addiu sp,sp,0x8
or a1,t7,zero
b 0x000680d0
_or v0,zero,zero
(translation_unit "/* WARNING: Removing unreachable block (ram,0x00067fc0) */\n\nvoid base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)\n\n{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)\n\n{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)" identifier (parameter_list "(byte *param_1,int param_2,undefined1 *param_3,int param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "puVar3 = PTR_DAT_000b758c;" (assignment_expression "puVar3 = PTR_DAT_000b758c" identifier = identifier) ;) (if_statement "if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }" { (if_statement "if (param_4 != 0) {\n      *param_3 = 0;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      *param_3 = 0;\n    }" { (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) })) }) (else_clause "else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" else (if_statement "if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" { (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];" (assignment_expression "*param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0]" (pointer_expression "*param_3" * identifier) = (subscript_expression "PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0]" identifier [ (binary_expression "(bVar2 >> 3) + 0x10c0" (parenthesized_expression "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }" if (parenthesized_expression "(param_4 != 1)" ( (binary_expression "param_4 != 1" identifier != number_literal) )) (compound_statement "{\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }" { (do_statement "do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);" do (compound_statement "{\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      }" { (if_statement "if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }" { (expression_statement "param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];" (assignment_expression "param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)bVar2 * 4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)bVar2 * 4 & 0x1f)" ( (binary_expression "(uint)bVar2 * 4 & 0x1f" (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 2) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 2)" ( (binary_expression "param_4 == 2" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_3[2] = 0x3d;" (assignment_expression "param_3[2] = 0x3d" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 3) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 3)" ( (binary_expression "param_4 == 3" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_3[3] = 0x3d;" (assignment_expression "param_3[3] = 0x3d" (subscript_expression "param_3[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 4) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 4)" ( (binary_expression "param_4 == 4" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" identifier = number_literal) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" else (compound_statement "{\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" { (expression_statement "param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];" (assignment_expression "param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f)" ( (binary_expression "(uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f" (binary_expression "(uint)(param_1[1] >> 6) + (uint)bVar2 * 4" (call_expression "(uint)(param_1[1] >> 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[1] >> 6)" ( (binary_expression "param_1[1] >> 6" (subscript_expression "param_1[1]" identifier [ number_literal ]) >> number_literal) ))) + (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 2) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 2)" ( (binary_expression "param_4 == 2" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];" (assignment_expression "param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0]" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (subscript_expression "puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0]" identifier [ (binary_expression "(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0" (parenthesized_expression "(((uint)param_1[1] << 0x1a) >> 0x1b)" ( (binary_expression "((uint)param_1[1] << 0x1a) >> 0x1b" (parenthesized_expression "((uint)param_1[1] << 0x1a)" ( (binary_expression "(uint)param_1[1] << 0x1a" (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) << number_literal) )) >> number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 3) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 3)" ( (binary_expression "param_4 == 3" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (if_statement "if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }" { (expression_statement "param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];" (assignment_expression "param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (subscript_expression "param_3[3]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[1] * 0x10 & 0x1f)" ( (binary_expression "(uint)param_1[1] * 0x10 & 0x1f" (binary_expression "(uint)param_1[1] * 0x10" (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) * number_literal) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 4) {\n              return;\n            }" if (parenthesized_expression "(param_4 == 4)" ( (binary_expression "param_4 == 4" identifier == number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" identifier = number_literal) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" else (compound_statement "{\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" { (expression_statement "param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;" (assignment_expression "param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (subscript_expression "param_3[3]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f)" ( (binary_expression "(uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f" (binary_expression "(uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10" (call_expression "(uint)(param_1[2] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[2] >> 4)" ( (binary_expression "param_1[2] >> 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) >> number_literal) ))) + (binary_expression "(uint)param_1[1] * 0x10" (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) * number_literal)) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 4) {\n              return;\n            }" if (parenthesized_expression "(param_4 == 4)" ( (binary_expression "param_4 == 4" identifier == number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = param_2 + -3;" (assignment_expression "param_2 = param_2 + -3" identifier = (binary_expression "param_2 + -3" identifier + number_literal)) ;) (if_statement "if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar4 = 0;\n            }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" else (compound_statement "{\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" { (expression_statement "uVar4 = (uint)(param_1[3] >> 7);" (assignment_expression "uVar4 = (uint)(param_1[3] >> 7)" identifier = (call_expression "(uint)(param_1[3] >> 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[3] >> 7)" ( (binary_expression "param_1[3] >> 7" (subscript_expression "param_1[3]" identifier [ number_literal ]) >> number_literal) )))) ;) }))) (expression_statement "uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];" (assignment_expression "uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0]" identifier = (subscript_expression "puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[2] * 2 + uVar4 & 0x1f)" ( (binary_expression "(uint)param_1[2] * 2 + uVar4 & 0x1f" (binary_expression "(uint)param_1[2] * 2 + uVar4" (binary_expression "(uint)param_1[2] * 2" (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) * number_literal) + identifier) & number_literal) )) + number_literal) ])) ;) }))) }))) (expression_statement "param_3[4] = uVar5;" (assignment_expression "param_3[4] = uVar5" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_4 == 5) {\n          return;\n        }" if (parenthesized_expression "(param_4 == 5)" ( (binary_expression "param_4 == 5" identifier == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }" { (expression_statement "param_3[5] = 0x3d;" (assignment_expression "param_3[5] = 0x3d" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 6) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 6)" ( (binary_expression "param_4 == 6" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" identifier = number_literal) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" else (compound_statement "{\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" { (expression_statement "param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];" (assignment_expression "param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0]" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (subscript_expression "puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0]" identifier [ (binary_expression "(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0" (parenthesized_expression "(((uint)param_1[3] << 0x19) >> 0x1b)" ( (binary_expression "((uint)param_1[3] << 0x19) >> 0x1b" (parenthesized_expression "((uint)param_1[3] << 0x19)" ( (binary_expression "(uint)param_1[3] << 0x19" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) << number_literal) )) >> number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 6) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 6)" ( (binary_expression "param_4 == 6" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = param_2 + -1;" (assignment_expression "param_2 = param_2 + -1" identifier = (binary_expression "param_2 + -1" identifier + number_literal)) ;) (if_statement "if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar4 = 0;\n          }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" else (compound_statement "{\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" { (expression_statement "uVar4 = (uint)(param_1[4] >> 5);" (assignment_expression "uVar4 = (uint)(param_1[4] >> 5)" identifier = (call_expression "(uint)(param_1[4] >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[4] >> 5)" ( (binary_expression "param_1[4] >> 5" (subscript_expression "param_1[4]" identifier [ number_literal ]) >> number_literal) )))) ;) }))) (expression_statement "uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];" (assignment_expression "uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0]" identifier = (subscript_expression "puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[3] * 8 + uVar4 & 0x1f)" ( (binary_expression "(uint)param_1[3] * 8 + uVar4 & 0x1f" (binary_expression "(uint)param_1[3] * 8 + uVar4" (binary_expression "(uint)param_1[3] * 8" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) * number_literal) + identifier) & number_literal) )) + number_literal) ])) ;) }))) (expression_statement "param_3[6] = uVar5;" (assignment_expression "param_3[6] = uVar5" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_4 == 7) {\n          return;\n        }" if (parenthesized_expression "(param_4 == 7)" ( (binary_expression "param_4 == 7" identifier == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }" { (expression_statement "param_3[7] = 0x3d;" (assignment_expression "param_3[7] = 0x3d" (subscript_expression "param_3[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 8) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 8)" ( (binary_expression "param_4 == 8" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00068140:\n          param_3[8] = 0;" statement_identifier : (expression_statement "param_3[8] = 0;" (assignment_expression "param_3[8] = 0" (subscript_expression "param_3[8]" identifier [ number_literal ]) = number_literal) ;)) (return_statement "return;" return ;) })) (expression_statement "param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];" (assignment_expression "param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0]" (subscript_expression "param_3[7]" identifier [ number_literal ]) = (subscript_expression "puVar3[(param_1[4] & 0x1f) + 0x10c0]" identifier [ (binary_expression "(param_1[4] & 0x1f) + 0x10c0" (parenthesized_expression "(param_1[4] & 0x1f)" ( (binary_expression "param_1[4] & 0x1f" (subscript_expression "param_1[4]" identifier [ number_literal ]) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 + -8 == 0) {\n          return;\n        }" if (parenthesized_expression "(param_4 + -8 == 0)" ( (binary_expression "param_4 + -8 == 0" (binary_expression "param_4 + -8" identifier + number_literal) == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = param_2 + -1;" (assignment_expression "param_2 = param_2 + -1" identifier = (binary_expression "param_2 + -1" identifier + number_literal)) ;) (if_statement "if (param_2 == 0) goto LAB_00068140;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00068140;" goto statement_identifier ;)) (expression_statement "param_1 = param_1 + 5;" (assignment_expression "param_1 = param_1 + 5" identifier = (binary_expression "param_1 + 5" identifier + number_literal)) ;) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = param_4 != 9;" (assignment_expression "bVar1 = param_4 != 9" identifier = (binary_expression "param_4 != 9" identifier != number_literal)) ;) (expression_statement "param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];" (assignment_expression "param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0]" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (subscript_expression "puVar3[(bVar2 >> 3) + 0x10c0]" identifier [ (binary_expression "(bVar2 >> 3) + 0x10c0" (parenthesized_expression "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )) + number_literal) ])) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + -8;" (assignment_expression "param_4 = param_4 + -8" identifier = (binary_expression "param_4 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) })) (return_statement "return;" return ;) })))) (return_statement "return;" return ;) })))
(translation_unit "void base32_encode(char *in,size_t inlen,char *out,size_t outlen)\n\n{\n  if (inlen == 0) {\n    if (outlen != 0) {\n      *out = '\0';\n    }\n  }\n  else if (outlen != 0) {\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void base32_encode(char *in,size_t inlen,char *out,size_t outlen)\n\n{\n  if (inlen == 0) {\n    if (outlen != 0) {\n      *out = '\0';\n    }\n  }\n  else if (outlen != 0) {\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "base32_encode(char *in,size_t inlen,char *out,size_t outlen)" identifier (parameter_list "(char *in,size_t inlen,char *out,size_t outlen)" ( (parameter_declaration "char *in" primitive_type (pointer_declarator "*in" * identifier)) , (parameter_declaration "size_t inlen" primitive_type identifier) , (parameter_declaration "char *out" primitive_type (pointer_declarator "*out" * identifier)) , (parameter_declaration "size_t outlen" primitive_type identifier) ))) (compound_statement "{\n  if (inlen == 0) {\n    if (outlen != 0) {\n      *out = '\0';\n    }\n  }\n  else if (outlen != 0) {\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }\n  return;\n}" { (if_statement "if (inlen == 0) {\n    if (outlen != 0) {\n      *out = '\0';\n    }\n  }\n  else if (outlen != 0) {\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(inlen == 0)" ( (binary_expression "inlen == 0" identifier == number_literal) )) (compound_statement "{\n    if (outlen != 0) {\n      *out = '\0';\n    }\n  }" { (if_statement "if (outlen != 0) {\n      *out = '\0';\n    }" if (parenthesized_expression "(outlen != 0)" ( (binary_expression "outlen != 0" identifier != number_literal) )) (compound_statement "{\n      *out = '\0';\n    }" { (expression_statement "*out = '\0';" (assignment_expression "*out = '\0'" (pointer_expression "*out" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) }) (else_clause "else if (outlen != 0) {\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }" else (if_statement "if (outlen != 0) {\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(outlen != 0)" ( (binary_expression "outlen != 0" identifier != number_literal) )) (compound_statement "{\n    *out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];\n    if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }\n    return;\n  }" { (expression_statement "*out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0];" (assignment_expression "*out = PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0]" (pointer_expression "*out" * identifier) = (subscript_expression "PTR_DAT_000b758c[((byte)*in >> 3) + 0x10c0]" identifier [ (binary_expression "((byte)*in >> 3) + 0x10c0" (parenthesized_expression "((byte)*in >> 3)" ( (binary_expression "(byte)*in >> 3" (binary_expression "(byte)*in" (parenthesized_expression "(byte)" ( identifier )) * identifier) >> number_literal) )) + number_literal) ])) ;) (if_statement "if (outlen != 1) {\n      FUN_00068034();\n      return;\n    }" if (parenthesized_expression "(outlen != 1)" ( (binary_expression "outlen != 1" identifier != number_literal) )) (compound_statement "{\n      FUN_00068034();\n      return;\n    }" { (expression_statement "FUN_00068034();" (call_expression "FUN_00068034()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))) (return_statement "return;" return ;) })))
(translation_unit "void base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)\n\n{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)\n\n{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)" identifier (parameter_list "(byte *param_1,int param_2,undefined1 *param_3,int param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "puVar3 = PTR_DAT_000b758c;" (assignment_expression "puVar3 = PTR_DAT_000b758c" identifier = identifier) ;) (if_statement "if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }" { (if_statement "if (param_4 != 0) {\n      *param_3 = 0;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      *param_3 = 0;\n    }" { (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) })) }) (else_clause "else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" else (if_statement "if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" { (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];" (assignment_expression "*param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0]" (pointer_expression "*param_3" * identifier) = (subscript_expression "PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0]" identifier [ (binary_expression "(bVar2 >> 3) + 0x10c0" (parenthesized_expression "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }" if (parenthesized_expression "(param_4 != 1)" ( (binary_expression "param_4 != 1" identifier != number_literal) )) (compound_statement "{\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }" { (do_statement "do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);" do (compound_statement "{\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      }" { (if_statement "if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }" { (expression_statement "param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];" (assignment_expression "param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)bVar2 * 4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)bVar2 * 4 & 0x1f)" ( (binary_expression "(uint)bVar2 * 4 & 0x1f" (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 2) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 2)" ( (binary_expression "param_4 == 2" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_3[2] = 0x3d;" (assignment_expression "param_3[2] = 0x3d" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 3) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 3)" ( (binary_expression "param_4 == 3" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_3[3] = 0x3d;" (assignment_expression "param_3[3] = 0x3d" (subscript_expression "param_3[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 4) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 4)" ( (binary_expression "param_4 == 4" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" identifier = number_literal) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" else (compound_statement "{\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" { (expression_statement "param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];" (assignment_expression "param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f)" ( (binary_expression "(uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f" (binary_expression "(uint)(param_1[1] >> 6) + (uint)bVar2 * 4" (call_expression "(uint)(param_1[1] >> 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[1] >> 6)" ( (binary_expression "param_1[1] >> 6" (subscript_expression "param_1[1]" identifier [ number_literal ]) >> number_literal) ))) + (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 2) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 2)" ( (binary_expression "param_4 == 2" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];" (assignment_expression "param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0]" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (subscript_expression "puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0]" identifier [ (binary_expression "(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0" (parenthesized_expression "(((uint)param_1[1] << 0x1a) >> 0x1b)" ( (binary_expression "((uint)param_1[1] << 0x1a) >> 0x1b" (parenthesized_expression "((uint)param_1[1] << 0x1a)" ( (binary_expression "(uint)param_1[1] << 0x1a" (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) << number_literal) )) >> number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 3) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 3)" ( (binary_expression "param_4 == 3" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (if_statement "if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }" { (expression_statement "param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];" (assignment_expression "param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (subscript_expression "param_3[3]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[1] * 0x10 & 0x1f)" ( (binary_expression "(uint)param_1[1] * 0x10 & 0x1f" (binary_expression "(uint)param_1[1] * 0x10" (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) * number_literal) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 4) {\n              return;\n            }" if (parenthesized_expression "(param_4 == 4)" ( (binary_expression "param_4 == 4" identifier == number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" identifier = number_literal) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" else (compound_statement "{\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" { (expression_statement "param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;" (assignment_expression "param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (subscript_expression "param_3[3]" identifier [ number_literal ]) = (subscript_expression "puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f)" ( (binary_expression "(uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f" (binary_expression "(uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10" (call_expression "(uint)(param_1[2] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[2] >> 4)" ( (binary_expression "param_1[2] >> 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) >> number_literal) ))) + (binary_expression "(uint)param_1[1] * 0x10" (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) * number_literal)) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 4) {\n              return;\n            }" if (parenthesized_expression "(param_4 == 4)" ( (binary_expression "param_4 == 4" identifier == number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = param_2 + -3;" (assignment_expression "param_2 = param_2 + -3" identifier = (binary_expression "param_2 + -3" identifier + number_literal)) ;) (if_statement "if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar4 = 0;\n            }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" else (compound_statement "{\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" { (expression_statement "uVar4 = (uint)(param_1[3] >> 7);" (assignment_expression "uVar4 = (uint)(param_1[3] >> 7)" identifier = (call_expression "(uint)(param_1[3] >> 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[3] >> 7)" ( (binary_expression "param_1[3] >> 7" (subscript_expression "param_1[3]" identifier [ number_literal ]) >> number_literal) )))) ;) }))) (expression_statement "uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];" (assignment_expression "uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0]" identifier = (subscript_expression "puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[2] * 2 + uVar4 & 0x1f)" ( (binary_expression "(uint)param_1[2] * 2 + uVar4 & 0x1f" (binary_expression "(uint)param_1[2] * 2 + uVar4" (binary_expression "(uint)param_1[2] * 2" (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) * number_literal) + identifier) & number_literal) )) + number_literal) ])) ;) }))) }))) (expression_statement "param_3[4] = uVar5;" (assignment_expression "param_3[4] = uVar5" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_4 == 5) {\n          return;\n        }" if (parenthesized_expression "(param_4 == 5)" ( (binary_expression "param_4 == 5" identifier == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }" { (expression_statement "param_3[5] = 0x3d;" (assignment_expression "param_3[5] = 0x3d" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 6) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 6)" ( (binary_expression "param_4 == 6" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" identifier = number_literal) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" else (compound_statement "{\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" { (expression_statement "param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];" (assignment_expression "param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0]" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (subscript_expression "puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0]" identifier [ (binary_expression "(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0" (parenthesized_expression "(((uint)param_1[3] << 0x19) >> 0x1b)" ( (binary_expression "((uint)param_1[3] << 0x19) >> 0x1b" (parenthesized_expression "((uint)param_1[3] << 0x19)" ( (binary_expression "(uint)param_1[3] << 0x19" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) << number_literal) )) >> number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 == 6) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 6)" ( (binary_expression "param_4 == 6" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = param_2 + -1;" (assignment_expression "param_2 = param_2 + -1" identifier = (binary_expression "param_2 + -1" identifier + number_literal)) ;) (if_statement "if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar4 = 0;\n          }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" else (compound_statement "{\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" { (expression_statement "uVar4 = (uint)(param_1[4] >> 5);" (assignment_expression "uVar4 = (uint)(param_1[4] >> 5)" identifier = (call_expression "(uint)(param_1[4] >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[4] >> 5)" ( (binary_expression "param_1[4] >> 5" (subscript_expression "param_1[4]" identifier [ number_literal ]) >> number_literal) )))) ;) }))) (expression_statement "uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];" (assignment_expression "uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0]" identifier = (subscript_expression "puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0]" identifier [ (binary_expression "((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[3] * 8 + uVar4 & 0x1f)" ( (binary_expression "(uint)param_1[3] * 8 + uVar4 & 0x1f" (binary_expression "(uint)param_1[3] * 8 + uVar4" (binary_expression "(uint)param_1[3] * 8" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) * number_literal) + identifier) & number_literal) )) + number_literal) ])) ;) }))) (expression_statement "param_3[6] = uVar5;" (assignment_expression "param_3[6] = uVar5" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_4 == 7) {\n          return;\n        }" if (parenthesized_expression "(param_4 == 7)" ( (binary_expression "param_4 == 7" identifier == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }" { (expression_statement "param_3[7] = 0x3d;" (assignment_expression "param_3[7] = 0x3d" (subscript_expression "param_3[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4 == 8) {\n            return;\n          }" if (parenthesized_expression "(param_4 == 8)" ( (binary_expression "param_4 == 8" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00068140:\n          param_3[8] = 0;" statement_identifier : (expression_statement "param_3[8] = 0;" (assignment_expression "param_3[8] = 0" (subscript_expression "param_3[8]" identifier [ number_literal ]) = number_literal) ;)) (return_statement "return;" return ;) })) (expression_statement "param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];" (assignment_expression "param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0]" (subscript_expression "param_3[7]" identifier [ number_literal ]) = (subscript_expression "puVar3[(param_1[4] & 0x1f) + 0x10c0]" identifier [ (binary_expression "(param_1[4] & 0x1f) + 0x10c0" (parenthesized_expression "(param_1[4] & 0x1f)" ( (binary_expression "param_1[4] & 0x1f" (subscript_expression "param_1[4]" identifier [ number_literal ]) & number_literal) )) + number_literal) ])) ;) (if_statement "if (param_4 + -8 == 0) {\n          return;\n        }" if (parenthesized_expression "(param_4 + -8 == 0)" ( (binary_expression "param_4 + -8 == 0" (binary_expression "param_4 + -8" identifier + number_literal) == number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = param_2 + -1;" (assignment_expression "param_2 = param_2 + -1" identifier = (binary_expression "param_2 + -1" identifier + number_literal)) ;) (if_statement "if (param_2 == 0) goto LAB_00068140;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00068140;" goto statement_identifier ;)) (expression_statement "param_1 = param_1 + 5;" (assignment_expression "param_1 = param_1 + 5" identifier = (binary_expression "param_1 + 5" identifier + number_literal)) ;) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = param_4 != 9;" (assignment_expression "bVar1 = param_4 != 9" identifier = (binary_expression "param_4 != 9" identifier != number_literal)) ;) (expression_statement "param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];" (assignment_expression "param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0]" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (subscript_expression "puVar3[(bVar2 >> 3) + 0x10c0]" identifier [ (binary_expression "(bVar2 >> 3) + 0x10c0" (parenthesized_expression "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )) + number_literal) ])) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + -8;" (assignment_expression "param_4 = param_4 + -8" identifier = (binary_expression "param_4 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) })) (return_statement "return;" return ;) })))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) & LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) ))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) & LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) )) >> LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) & LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) ))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) & LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + IDENT) & LIT) )) + LIT) ])) ;) }))) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) )) >> LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + IDENT) & LIT) )) + LIT) ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (return_statement return ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (return_statement return ;) })))) (return_statement return ;) })))
(function_definition "void base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)\n\n{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "base32_encode(byte *param_1,int param_2,undefined1 *param_3,int param_4)" (identifier "base32_encode") (parameter_list "(byte *param_1,int param_2,undefined1 *param_3,int param_4)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined1 *param_3" (type_identifier "undefined1") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  uint uVar4;\n  \n  puVar3 = PTR_DAT_000b758c;\n  if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 uVar5;" (type_identifier "undefined1") (identifier "uVar5") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "puVar3 = PTR_DAT_000b758c;" (assignment_expression "puVar3 = PTR_DAT_000b758c" (identifier "puVar3") (= "=") (identifier "PTR_DAT_000b758c")) (; ";")) (if_statement "if (param_2 == 0) {\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }\n  else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_4 != 0) {\n      *param_3 = 0;\n    }\n  }" ({ "{") (if_statement "if (param_4 != 0) {\n      *param_3 = 0;\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *param_3 = 0;\n    }" ({ "{") (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" (else "else") (if_statement "if (param_4 != 0) {\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bVar2 = *param_1;\n    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];\n    if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }\n    return;\n  }" ({ "{") (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" (identifier "bVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];" (assignment_expression "*param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (subscript_expression "PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0]" (identifier "PTR_DAT_000b758c") ([ "[") (binary_expression "(bVar2 >> 3) + 0x10c0" (parenthesized_expression "(bVar2 >> 3)" (( "(") (binary_expression "bVar2 >> 3" (identifier "bVar2") (>> ">>") (number_literal "3")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 != 1) {\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }" (if "if") (parenthesized_expression "(param_4 != 1)" (( "(") (binary_expression "param_4 != 1" (identifier "param_4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);\n    }" ({ "{") (do_statement "do {\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      } while (bVar1);" (do "do") (compound_statement "{\n        if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }\n        param_3[4] = uVar5;\n        if (param_4 == 5) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }\n        param_3[6] = uVar5;\n        if (param_4 == 7) {\n          return;\n        }\n        if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }\n        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];\n        if (param_4 + -8 == 0) {\n          return;\n        }\n        param_2 = param_2 + -1;\n        if (param_2 == 0) goto LAB_00068140;\n        param_1 = param_1 + 5;\n        bVar2 = *param_1;\n        bVar1 = param_4 != 9;\n        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];\n        param_3 = param_3 + 8;\n        param_4 = param_4 + -8;\n      }" ({ "{") (if_statement "if (param_2 == 1) {\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" (if "if") (parenthesized_expression "(param_2 == 1)" (( "(") (binary_expression "param_2 == 1" (identifier "param_2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = 0x3d;\n          if (param_4 == 3) {\n            return;\n          }\n          param_3[3] = 0x3d;\n          if (param_4 == 4) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }" ({ "{") (expression_statement "param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];" (assignment_expression "param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0]" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "((uint)bVar2 * 4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)bVar2 * 4 & 0x1f)" (( "(") (binary_expression "(uint)bVar2 * 4 & 0x1f" (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (* "*") (number_literal "4")) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 == 2) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 2)" (( "(") (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_3[2] = 0x3d;" (assignment_expression "param_3[2] = 0x3d" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x3d")) (; ";")) (if_statement "if (param_4 == 3) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 3)" (( "(") (binary_expression "param_4 == 3" (identifier "param_4") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_3[3] = 0x3d;" (assignment_expression "param_3[3] = 0x3d" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x3d")) (; ";")) (if_statement "if (param_4 == 4) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 4)" (( "(") (binary_expression "param_4 == 4" (identifier "param_4") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" (identifier "uVar5") (= "=") (number_literal "0x3d")) (; ";")) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" (identifier "param_2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" (else "else") (compound_statement "{\n          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];\n          if (param_4 == 2) {\n            return;\n          }\n          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];\n          if (param_4 == 3) {\n            return;\n          }\n          if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }\n        }" ({ "{") (expression_statement "param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];" (assignment_expression "param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0]" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f)" (( "(") (binary_expression "(uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f" (binary_expression "(uint)(param_1[1] >> 6) + (uint)bVar2 * 4" (call_expression "(uint)(param_1[1] >> 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[1] >> 6)" (( "(") (binary_expression "param_1[1] >> 6" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (>> ">>") (number_literal "6")) () ")"))) (+ "+") (binary_expression "(uint)bVar2 * 4" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (* "*") (number_literal "4"))) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 == 2) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 2)" (( "(") (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];" (assignment_expression "param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0]" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0" (parenthesized_expression "(((uint)param_1[1] << 0x1a) >> 0x1b)" (( "(") (binary_expression "((uint)param_1[1] << 0x1a) >> 0x1b" (parenthesized_expression "((uint)param_1[1] << 0x1a)" (( "(") (binary_expression "(uint)param_1[1] << 0x1a" (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "0x1a")) () ")")) (>> ">>") (number_literal "0x1b")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 == 3) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 3)" (( "(") (binary_expression "param_4 == 3" (identifier "param_4") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_2 == 2) {\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }\n          else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" (if "if") (parenthesized_expression "(param_2 == 2)" (( "(") (binary_expression "param_2 == 2" (identifier "param_2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];\n            if (param_4 == 4) {\n              return;\n            }\n            uVar5 = 0x3d;\n            param_2 = 0;\n          }" ({ "{") (expression_statement "param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];" (assignment_expression "param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[1] * 0x10 & 0x1f)" (( "(") (binary_expression "(uint)param_1[1] * 0x10 & 0x1f" (binary_expression "(uint)param_1[1] * 0x10" (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (* "*") (number_literal "0x10")) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 == 4) {\n              return;\n            }" (if "if") (parenthesized_expression "(param_4 == 4)" (( "(") (binary_expression "param_4 == 4" (identifier "param_4") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n              return;\n            }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" (identifier "uVar5") (= "=") (number_literal "0x3d")) (; ";")) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" (identifier "param_2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" (else "else") (compound_statement "{\n            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;\n            if (param_4 == 4) {\n              return;\n            }\n            param_2 = param_2 + -3;\n            if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }\n            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];\n          }" ({ "{") (expression_statement "param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]\n            ;" (assignment_expression "param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f)" (( "(") (binary_expression "(uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f" (binary_expression "(uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10" (call_expression "(uint)(param_1[2] >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[2] >> 4)" (( "(") (binary_expression "param_1[2] >> 4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (>> ">>") (number_literal "4")) () ")"))) (+ "+") (binary_expression "(uint)param_1[1] * 0x10" (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (* "*") (number_literal "0x10"))) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 == 4) {\n              return;\n            }" (if "if") (parenthesized_expression "(param_4 == 4)" (( "(") (binary_expression "param_4 == 4" (identifier "param_4") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n              return;\n            }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_2 = param_2 + -3;" (assignment_expression "param_2 = param_2 + -3" (identifier "param_2") (= "=") (binary_expression "param_2 + -3" (identifier "param_2") (+ "+") (number_literal "-3"))) (; ";")) (if_statement "if (param_2 == 0) {\n              uVar4 = 0;\n            }\n            else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar4 = 0;\n            }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" (else "else") (compound_statement "{\n              uVar4 = (uint)(param_1[3] >> 7);\n            }" ({ "{") (expression_statement "uVar4 = (uint)(param_1[3] >> 7);" (assignment_expression "uVar4 = (uint)(param_1[3] >> 7)" (identifier "uVar4") (= "=") (call_expression "(uint)(param_1[3] >> 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[3] >> 7)" (( "(") (binary_expression "param_1[3] >> 7" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (>> ">>") (number_literal "7")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];" (assignment_expression "uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0]" (identifier "uVar5") (= "=") (subscript_expression "puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[2] * 2 + uVar4 & 0x1f)" (( "(") (binary_expression "(uint)param_1[2] * 2 + uVar4 & 0x1f" (binary_expression "(uint)param_1[2] * 2 + uVar4" (binary_expression "(uint)param_1[2] * 2" (cast_expression "(uint)param_1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (* "*") (number_literal "2")) (+ "+") (identifier "uVar4")) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "param_3[4] = uVar5;" (assignment_expression "param_3[4] = uVar5" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (param_4 == 5) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 == 5)" (( "(") (binary_expression "param_4 == 5" (identifier "param_4") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }\n        else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          param_3[5] = 0x3d;\n          if (param_4 == 6) {\n            return;\n          }\n          uVar5 = 0x3d;\n          param_2 = 0;\n        }" ({ "{") (expression_statement "param_3[5] = 0x3d;" (assignment_expression "param_3[5] = 0x3d" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0x3d")) (; ";")) (if_statement "if (param_4 == 6) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 6)" (( "(") (binary_expression "param_4 == 6" (identifier "param_4") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar5 = 0x3d;" (assignment_expression "uVar5 = 0x3d" (identifier "uVar5") (= "=") (number_literal "0x3d")) (; ";")) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" (identifier "param_2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" (else "else") (compound_statement "{\n          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];\n          if (param_4 == 6) {\n            return;\n          }\n          param_2 = param_2 + -1;\n          if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }\n          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];\n        }" ({ "{") (expression_statement "param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];" (assignment_expression "param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0]" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0" (parenthesized_expression "(((uint)param_1[3] << 0x19) >> 0x1b)" (( "(") (binary_expression "((uint)param_1[3] << 0x19) >> 0x1b" (parenthesized_expression "((uint)param_1[3] << 0x19)" (( "(") (binary_expression "(uint)param_1[3] << 0x19" (cast_expression "(uint)param_1[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "0x19")) () ")")) (>> ">>") (number_literal "0x1b")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 == 6) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 6)" (( "(") (binary_expression "param_4 == 6" (identifier "param_4") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_2 = param_2 + -1;" (assignment_expression "param_2 = param_2 + -1" (identifier "param_2") (= "=") (binary_expression "param_2 + -1" (identifier "param_2") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (param_2 == 0) {\n            uVar4 = 0;\n          }\n          else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar4 = 0;\n          }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" (else "else") (compound_statement "{\n            uVar4 = (uint)(param_1[4] >> 5);\n          }" ({ "{") (expression_statement "uVar4 = (uint)(param_1[4] >> 5);" (assignment_expression "uVar4 = (uint)(param_1[4] >> 5)" (identifier "uVar4") (= "=") (call_expression "(uint)(param_1[4] >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[4] >> 5)" (( "(") (binary_expression "param_1[4] >> 5" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (>> ">>") (number_literal "5")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];" (assignment_expression "uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0]" (identifier "uVar5") (= "=") (subscript_expression "puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0" (parenthesized_expression "((uint)param_1[3] * 8 + uVar4 & 0x1f)" (( "(") (binary_expression "(uint)param_1[3] * 8 + uVar4 & 0x1f" (binary_expression "(uint)param_1[3] * 8 + uVar4" (binary_expression "(uint)param_1[3] * 8" (cast_expression "(uint)param_1[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (* "*") (number_literal "8")) (+ "+") (identifier "uVar4")) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (} "}")))) (expression_statement "param_3[6] = uVar5;" (assignment_expression "param_3[6] = uVar5" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (param_4 == 7) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 == 7)" (( "(") (binary_expression "param_4 == 7" (identifier "param_4") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          param_3[7] = 0x3d;\n          if (param_4 == 8) {\n            return;\n          }\nLAB_00068140:\n          param_3[8] = 0;\n          return;\n        }" ({ "{") (expression_statement "param_3[7] = 0x3d;" (assignment_expression "param_3[7] = 0x3d" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0x3d")) (; ";")) (if_statement "if (param_4 == 8) {\n            return;\n          }" (if "if") (parenthesized_expression "(param_4 == 8)" (( "(") (binary_expression "param_4 == 8" (identifier "param_4") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_00068140:\n          param_3[8] = 0;" (statement_identifier "LAB_00068140") (: ":") (expression_statement "param_3[8] = 0;" (assignment_expression "param_3[8] = 0" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];" (assignment_expression "param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0]" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar3[(param_1[4] & 0x1f) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "(param_1[4] & 0x1f) + 0x10c0" (parenthesized_expression "(param_1[4] & 0x1f)" (( "(") (binary_expression "param_1[4] & 0x1f" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (if_statement "if (param_4 + -8 == 0) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 + -8 == 0)" (( "(") (binary_expression "param_4 + -8 == 0" (binary_expression "param_4 + -8" (identifier "param_4") (+ "+") (number_literal "-8")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_2 = param_2 + -1;" (assignment_expression "param_2 = param_2 + -1" (identifier "param_2") (= "=") (binary_expression "param_2 + -1" (identifier "param_2") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (param_2 == 0) goto LAB_00068140;" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00068140;" (goto "goto") (statement_identifier "LAB_00068140") (; ";"))) (expression_statement "param_1 = param_1 + 5;" (assignment_expression "param_1 = param_1 + 5" (identifier "param_1") (= "=") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar2 = *param_1;" (assignment_expression "bVar2 = *param_1" (identifier "bVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "bVar1 = param_4 != 9;" (assignment_expression "bVar1 = param_4 != 9" (identifier "bVar1") (= "=") (binary_expression "param_4 != 9" (identifier "param_4") (!= "!=") (number_literal "9"))) (; ";")) (expression_statement "param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];" (assignment_expression "param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0]" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar3[(bVar2 >> 3) + 0x10c0]" (identifier "puVar3") ([ "[") (binary_expression "(bVar2 >> 3) + 0x10c0" (parenthesized_expression "(bVar2 >> 3)" (( "(") (binary_expression "bVar2 >> 3" (identifier "bVar2") (>> ">>") (number_literal "3")) () ")")) (+ "+") (number_literal "0x10c0")) (] "]"))) (; ";")) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" (identifier "param_3") (= "=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "param_4 = param_4 + -8;" (assignment_expression "param_4 = param_4 + -8" (identifier "param_4") (= "=") (binary_expression "param_4 + -8" (identifier "param_4") (+ "+") (number_literal "-8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *var_3,size_t var_1,char *out,size_t var_2)

{
  if (var_1 == 0) {
    if (var_2 != 0) {
      *out = '\0';
    }
  }
  else if (var_2 != 0) {
    *out = PTR_DAT_000b758c[((byte)*var_3 >> 3) + 0x10c0];
    if (var_2 != 1) {
      var_4();
      return;
    }
    return;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (identifier)) right: (number_literal))) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (identifier)) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))))) (return_statement))))) (return_statement))))

/* WARNING: Removing unreachable block (ram,0x00067fc0) */

void MASKED(byte *param_1,int param_2,undefined1 *param_3,int param_4)

{
  bool bVar1;
  byte bVar2;
  undefined *puVar3;
  undefined1 uVar5;
  uint uVar4;
  
  puVar3 = PTR_DAT_000b758c;
  if (param_2 == 0) {
    if (param_4 != 0) {
      *param_3 = 0;
    }
  }
  else if (param_4 != 0) {
    bVar2 = *param_1;
    *param_3 = PTR_DAT_000b758c[(bVar2 >> 3) + 0x10c0];
    if (param_4 != 1) {
      do {
        if (param_2 == 1) {
          param_3[1] = puVar3[((uint)bVar2 * 4 & 0x1f) + 0x10c0];
          if (param_4 == 2) {
            return;
          }
          param_3[2] = 0x3d;
          if (param_4 == 3) {
            return;
          }
          param_3[3] = 0x3d;
          if (param_4 == 4) {
            return;
          }
          uVar5 = 0x3d;
          param_2 = 0;
        }
        else {
          param_3[1] = puVar3[((uint)(param_1[1] >> 6) + (uint)bVar2 * 4 & 0x1f) + 0x10c0];
          if (param_4 == 2) {
            return;
          }
          param_3[2] = puVar3[(((uint)param_1[1] << 0x1a) >> 0x1b) + 0x10c0];
          if (param_4 == 3) {
            return;
          }
          if (param_2 == 2) {
            param_3[3] = puVar3[((uint)param_1[1] * 0x10 & 0x1f) + 0x10c0];
            if (param_4 == 4) {
              return;
            }
            uVar5 = 0x3d;
            param_2 = 0;
          }
          else {
            param_3[3] = puVar3[((uint)(param_1[2] >> 4) + (uint)param_1[1] * 0x10 & 0x1f) + 0x10c0]
            ;
            if (param_4 == 4) {
              return;
            }
            param_2 = param_2 + -3;
            if (param_2 == 0) {
              uVar4 = 0;
            }
            else {
              uVar4 = (uint)(param_1[3] >> 7);
            }
            uVar5 = puVar3[((uint)param_1[2] * 2 + uVar4 & 0x1f) + 0x10c0];
          }
        }
        param_3[4] = uVar5;
        if (param_4 == 5) {
          return;
        }
        if (param_2 == 0) {
          param_3[5] = 0x3d;
          if (param_4 == 6) {
            return;
          }
          uVar5 = 0x3d;
          param_2 = 0;
        }
        else {
          param_3[5] = puVar3[(((uint)param_1[3] << 0x19) >> 0x1b) + 0x10c0];
          if (param_4 == 6) {
            return;
          }
          param_2 = param_2 + -1;
          if (param_2 == 0) {
            uVar4 = 0;
          }
          else {
            uVar4 = (uint)(param_1[4] >> 5);
          }
          uVar5 = puVar3[((uint)param_1[3] * 8 + uVar4 & 0x1f) + 0x10c0];
        }
        param_3[6] = uVar5;
        if (param_4 == 7) {
          return;
        }
        if (param_2 == 0) {
          param_3[7] = 0x3d;
          if (param_4 == 8) {
            return;
          }
LAB_00068140:
          param_3[8] = 0;
          return;
        }
        param_3[7] = puVar3[(param_1[4] & 0x1f) + 0x10c0];
        if (param_4 + -8 == 0) {
          return;
        }
        param_2 = param_2 + -1;
        if (param_2 == 0) goto LAB_00068140;
        param_1 = param_1 + 5;
        bVar2 = *param_1;
        bVar1 = param_4 != 9;
        param_3[8] = puVar3[(bVar2 >> 3) + 0x10c0];
        param_3 = param_3 + 8;
        param_4 = param_4 + -8;
      } while (bVar1);
    }
    return;
  }
  return;
}

